Size: a a a

2020 September 17

DB

Dima Boger in PiterPy Meetup
я почему-то спроецировал гуникорн воркеры на селери воркеры и был уверен что это может быть кастомный класс
источник

DB

Dima Boger in PiterPy Meetup
но доку к этому не нашёл
источник

SS

Sergey Sokolov in PiterPy Meetup
Dima Boger
я почему-то спроецировал гуникорн воркеры на селери воркеры и был уверен что это может быть кастомный класс
Хмм
источник

SS

Sergey Sokolov in PiterPy Meetup
Чёт так себе звучит
источник

SS

Sergey Sokolov in PiterPy Meetup
Sergey Sokolov
Я только теоретически думал как это сделать, подумал тогда, что можно найти селерёвый энтрипоинт и запускать в одном потоке условный сервер, а в другом — воркер
Ну то где-то штука типа celery -A project worker разворачивается в питон-код
источник

DB

Dima Boger in PiterPy Meetup
Короче да, я просто добавил bootsteps.StartStopStep и на start докинул запуск сервера в треде
источник

DB

Dima Boger in PiterPy Meetup
Кстати, может быть я вообще не в ту степь пошёл, но у меня задача — собирать кастомные прометеус-метрики с приложения. Некоторые из этих прометеус-метрик изменяются в celery-тасках, и мне надо с воркеров собирать эти метрики.

Ничего лучше, чем просто запустить сервер, отдающий метрики, рядом с воркером в отдельном треде я не придумал 👀

Была ещё идея выгребать метрики отдельным мини-приложением из result-бекенда, но идея с тредом мне нравится больше
источник

SS

Sergey Sokolov in PiterPy Meetup
А метрики какие именно
По логам и системым штукам не достаточно?
источник

DB

Dima Boger in PiterPy Meetup
ну прям прометеус-метрики, я хочу их видеть в прометеусе

не очень технические, т.е. кастомные, завязаны на бизнес-логику
источник

DB

Dima Boger in PiterPy Meetup
качество пролетающих журавлей над петербургом, например
источник

SS

Sergey Sokolov in PiterPy Meetup
🤔
Не очень понимаю сферическое в вакууме (и не очень понимаю шо такое прометеус-метрики) но энивей
А отдельный микросервис для метрик почему не сделать тогда?
источник

DB

Dima Boger in PiterPy Meetup
Ну это надо городить какую-то магию поверх prometheus_client. Т.е. есть уже готовый prometheus_client, который знает о разных типах метрик, умеет с ними работать (не даст сделать фигню, даёт интерфейс) и шарить их между процессами.

Если я буду писать свой микросервис для сбора-отдачи метрик (экспортер), мне надо будет придумывать механизм передачи этих метрик (через резалт-бекенд / http запросы / отдельную очередь), разворачивать этот сервис и всякое такое. Звучит сильно дороже чем просто херакнуть в тред рядом
источник

AN

Aleksey Nakoryakov in PiterPy Meetup
Я вроде видел где-то библиотечку с prometheus метриками для селери. И да, она запускает фласк в отдельном треде

Или мы сами такое делали..
источник

DB

Dima Boger in PiterPy Meetup
Aleksey Nakoryakov
Я вроде видел где-то библиотечку с prometheus метриками для селери. И да, она запускает фласк в отдельном треде

Или мы сами такое делали..
А вы собирали метрики самой celery или какие-то свои кастомные метрики, которые редактировались внутри тасок?

celery_exporter'ы есть, но они собирают текущее состояние celery читая celery events
источник

AN

Aleksey Nakoryakov in PiterPy Meetup
А нет. Это был не селери. Это был воркер на асинке, который кролика слушал. Prometheus client позволяет запустить в отдельном треде фласк, и там оттопыривать метрики. И да, мы туда писали свои кастомные метрики
источник

AN

Aleksey Nakoryakov in PiterPy Meetup
Все эти библиотеки построены вокруг того же клиента, и скорее всего можно дотянуться до их регистри, и дописать туда свои метрики
источник

AN

Aleksey Nakoryakov in PiterPy Meetup
А нет. Для селери они все сделаны как отдельные сервисы (
this has been implemented as a standalone-service
источник
2020 September 18

A

Anatoly in PiterPy Meetup
Привет всем)
Нужно ли оборачивать в транзакцию простой select id from table  запрос в БД? Может ли быть вообще в этом необходимость?
источник

ED

Eugene Denisov in PiterPy Meetup
Anatoly
Привет всем)
Нужно ли оборачивать в транзакцию простой select id from table  запрос в БД? Может ли быть вообще в этом необходимость?
Одиночные запросы сама СУБД оборачивает.
источник

S

Stan in PiterPy Meetup
Anatoly
Привет всем)
Нужно ли оборачивать в транзакцию простой select id from table  запрос в БД? Может ли быть вообще в этом необходимость?
Встречный вопрос: в чём профит от оборачивания операции чтения в транзакцию?
источник