You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Роль cartridge.roles.metrics включает мониторинг и хелсчеки в кластерном приложении. Сам модуль metrics можно достать с помощью cartridge.service_registry.get('metrics'), что даёт возможность добавлять свои метрики к дефолтным.
Проблема
Внешние модули не имеют однозначного экспорта метрик. Приложение должно само получить метрики и подключить их к экспорту.
Взять, например, Tarantool Cartridge. issues единственные были добавлены напрямую в metrics. Если в будуших версиях cartridge поменяется формат/тип/экспорт issues, то придется менять метрики и все места, где они используются.
Предложение
Каждый модуль описывает роль my-app.roles.metrics и ставит cartridge.roles.metrics в зависимости. metrics будет доступен через service_registry картриджа.
Варианты подключения роли:
Новые метрики зависят от основной роли, так как используют внутреннюю функциональность. Разработчик приложения решает, включать её или нет.
В init роли можно создать все необходимые коллекторы и подключиться к диагностике модуля. Например обернуть вызываемую извне функцию в summary коллектор для сбора персентилей или добавить http метрики для пользовательского REST API.
apply, validate и stop пока не используются.
Преимущества:
Единое место сбора всех метрик для модуля удобно для дальнейшей разработки.
Неинвазивный подход: изменения в имеющемся коде минимальны или отсутствуют.
Конфигурируемость.
Недостатки:
Нужна документация по процессу написания роли.
Диагностика должна закладываться с учётом подключения к мониторингу через роль.
В cartridge.cfg{} приложения нужно указывать все такие роли.
Дополнение:
Секцию конфига metrics можно расширить подсекцией modules, которая будет описывать какие метрики нужно собирать с модулей, какие -- нет.
Uh oh!
There was an error while loading. Please reload this page.
Роль
cartridge.roles.metrics
включает мониторинг и хелсчеки в кластерном приложении. Сам модульmetrics
можно достать с помощьюcartridge.service_registry.get('metrics')
, что даёт возможность добавлять свои метрики к дефолтным.Проблема
Внешние модули не имеют однозначного экспорта метрик. Приложение должно само получить метрики и подключить их к экспорту.
Взять, например, Tarantool Cartridge.
issues
единственные были добавлены напрямую вmetrics
. Если в будуших версияхcartridge
поменяется формат/тип/экспортissues
, то придется менять метрики и все места, где они используются.Предложение
Каждый модуль описывает роль
my-app.roles.metrics
и ставитcartridge.roles.metrics
в зависимости.metrics
будет доступен черезservice_registry
картриджа.Варианты подключения роли:
В
init
роли можно создать все необходимые коллекторы и подключиться к диагностике модуля. Например обернуть вызываемую извне функцию в summary коллектор для сбора персентилей или добавить http метрики для пользовательского REST API.apply
,validate
иstop
пока не используются.Преимущества:
Недостатки:
cartridge.cfg{}
приложения нужно указывать все такие роли.Дополнение:
Секцию конфига
metrics
можно расширить подсекциейmodules
, которая будет описывать какие метрики нужно собирать с модулей, какие -- нет.В таком случае,
validate
иapply
можно использовать для работы с этой секцией.Пример:
init.lua
my-app.roles.metrics
topology
Тикеты, которые можно покрыть:
Tarantool memcached statistics -- #161
Vshard metrics -- #79
Cartridge metrics -- #80 (closed, but can be extended)
The text was updated successfully, but these errors were encountered: