Size: a a a

2020 November 12

VA

Vadim Apenko in aiogram [ru]
Я для себя писал такой файлик. Это пост метрики в базу
источник

VA

Vadim Apenko in aiogram [ru]
Вот пример использования
источник

VA

Vadim Apenko in aiogram [ru]
Ну и вот пример из графаны. Тут кучка моих сервисов собраны
источник

ЕП

Евгений Петров... in aiogram [ru]
Vadim Apenko
Ну и вот пример из графаны. Тут кучка моих сервисов собраны
А что именно мониторишь?
источник

g

green_glitched_cat in aiogram [ru]
Vadim Apenko
Итак. Метрики

В основе всего лежит InfluxDB. Это база данных, которая жёстко привязана ко времени.
В базу записываются точки, поинты. У каждого поинта есть временная отметка, Имя метрики, в которую он записан, и несколько полей, одни называются Теги (tags), вторые Поля (fields). И там, и там может быть много именованных значений, или ни одного (хотя бы одно поле должно быть)

Теперь Графана.
В ней указывается временной срез, метрики, условия, по которым она вытаскивает данные из Influx и показывает в каком-то виде. График, таблица, число... не важно.

Твоя задача настроить связку InfluxDB + Grafana

Затем в боте ты подключаешь библиотеку aioinflux и из неё хватаешь Класс InfluxDBClient...

Следующим сообщением продолжим
Не в курсе, либы для InfluxDB под котлин и голанг нет? А то ещё пару проектов на них...
источник

VA

Vadim Apenko in aiogram [ru]
Евгений Петров
А что именно мониторишь?
Ну допустим у меня есть файлопомойка sfh.hldns.ru
написана на пайтоне с помощью aiohttp и по ней я мониторю количество и размер загрузок, количество и размер скачиваний, скорости и тд
источник

VA

Vadim Apenko in aiogram [ru]
Есть пара тройка ботов, по которым тоже собираю индивидуальные метрики использования и\или ошибок
источник

ЕП

Евгений Петров... in aiogram [ru]
Ну например в ботах: мониторишь использование конкретных команд (событийно)? Или просто в разные точки времени что-то считаешь, типа, сколько сейчас айдишников в базе
источник

VA

Vadim Apenko in aiogram [ru]
green_glitched_cat
Не в курсе, либы для InfluxDB под котлин и голанг нет? А то ещё пару проектов на них...
Не знаю. Но можно постить метрики прям через http или api без либ
источник

g

green_glitched_cat in aiogram [ru]
Vadim Apenko
Не знаю. Но можно постить метрики прям через http или api без либ
Это influxDB так умеет? Я просто ниразу ей не пользовался :(
источник

VA

Vadim Apenko in aiogram [ru]
Евгений Петров
Ну например в ботах: мониторишь использование конкретных команд (событийно)? Или просто в разные точки времени что-то считаешь, типа, сколько сейчас айдишников в базе
Смотря какой бот.
Само собой метрики на события и ошибки.
Метрики на начало и окончание воркфлоу, чтоб понимать сколько людей начали процедуру, и не закончили.
Ну и прочее. Для каждого бота индивидуально.
Для продающих ботов классно собирать всякие DAU/MAU/WAU/ACU/ARPU
источник

VA

Vadim Apenko in aiogram [ru]
green_glitched_cat
Это influxDB так умеет? Я просто ниразу ей не пользовался :(
Да
источник

ЕП

Евгений Петров... in aiogram [ru]
Vadim Apenko
Смотря какой бот.
Само собой метрики на события и ошибки.
Метрики на начало и окончание воркфлоу, чтоб понимать сколько людей начали процедуру, и не закончили.
Ну и прочее. Для каждого бота индивидуально.
Для продающих ботов классно собирать всякие DAU/MAU/WAU/ACU/ARPU
Круто, спасибо!
источник

g

green_glitched_cat in aiogram [ru]
Воу, крутотень. Надо будет попробовать.
источник

g

green_glitched_cat in aiogram [ru]
Спасибо огромное :)
источник

VA

Vadim Apenko in aiogram [ru]
green_glitched_cat
Воу, крутотень. Надо будет попробовать.
Обычно через SQL кладут и всё)
источник

VA

Vadim Apenko in aiogram [ru]
Собственно библиотека aioinflux под капотом юзает именно sql
источник

g

green_glitched_cat in aiogram [ru]
Да я вот как раз думал, что юзать. Думал просто настроить датасорс под ту бд, которая юзается в боте, а там уже сделать таблицы с метриками
источник

g

green_glitched_cat in aiogram [ru]
У меня просто тут различный зоопарк, от постгреса до монги
источник

VA

Vadim Apenko in aiogram [ru]
green_glitched_cat
Воу, крутотень. Надо будет попробовать.
Но учти, в моём примере нет явного таймпоинта. У меня всё в одной временной зоне. Если у тебя не так, то придётся в функцию push_metric добавить ещё вызов datetime.utcnow()
источник