Добавление пользовательских метрик для панели мониторинга «Метрики»#
Предусловия#
Подготовьте файл custom.json в соответствии с описанной ниже структурой:
{
"bundle_type": "sql_metrics",
"title": {
"en": "Custom metrics for PostgreSQL and compatible systems",
"ru": "Пользовательские метрики для PostgreSQL и совместимых систем"
},
"sql_sources": [
{
"title": {
"en": "Custom metrics group",
"ru": "Пользовательская группа метрик"
},
"db_depended": false,
"statements": [
{
"dbms_type_key": "postgresql",
"dbms_versions": {
"from": [
11
],
"to": null
},
"sql_text": "select value, datname from table"
}
],
"metrics": [
{
"metric_key": "custom_metric_test",
"title": {
"en": "Custom metrics title",
"ru": "Пользовательский заголовок метрики"
},
"description": {
"en": "Custom metrics description",
"ru": "Пользовательский описание метрики"
},
"label_columns": ["datname"],
"value_column": "val",
"value_type": "gauge",
"promql_text": "custom_metric_test{$LABELS}",
"value_processing": {
"engine": "kintsugi_base",
"functions": [
{
"function": "rate",
"time_range": "1m"
},
{
"function": "ceil"
}
]
}
}
]
}
]
}
Описание группы параметров sql_sources:
dbms_type_key– название группы пользовательских метрик;db_depended– индикатор зависимости метрики от наблюдаемой БД.
Описание группы параметров statements:
dbms_versions– версии наблюдаемых БД, поддерживаемые данным запросом;sql_text– запрос для сбора метрик с наблюдаемой БД.
Описание группы параметров metrics:
metric_key– уникальный ключ метрики;title– название пользовательской метрики;description– описание пользовательской метрики;label_columns– список меток пользовательской метрики;value_column– значение пользовательской метрики;value_type– тип значения пользовательской метрики;promql_text– PromQL-запрос для пользовательской метрики.
Требования к параметрам группы синтаксиса metrics:
ключ метрики
metric_keyначинается с префиксаcustom_;список меток
label_columnsвыбирается на основе столбцов возвращаемых запросомsql_text;значение
value_columnвыбирается на основе столбца возвращаемого запросомsql_text;запрос
promql_textне содержит функции rate, irate, floor, ceil.
Описание группы параметров value_processing:
function– функция для агрегации значений пользовательской метрики;time_range– интервал для агрегации значений пользовательской метрики.
Требования к параметрам группы синтаксису value_processing:
поддерживаемые функции
function: rate, irate, floor, ceil;интервал
time_rangeвыбирается от 1 минуты. При необходимости подсчета значений на более коротком интервале необходима консультация с администратором Kintsugi.
Последовательность выполнения#
Выполните подключение к БД
meta:psql -h <host.example> -p <port.example> -U <user.example> kintsugi.example.testОписание параметров:
<host.example>– адрес базы данных метаинформации;<port.example>– порт базы данных;<user.example>– имя пользователя;kintsugi.example.test– база данных метаинформации.
Выполните процедуру добавления пользовательских метрик:
BEGIN; \set declare_json `cat custom.json` CALL install_sql_metrics_bundle(:'bundle_json'::JSONB); COMMIT;
Примечание
Если объект мониторинга уже был создан в Kintsugi (DBCM), то на вкладке Метрики в таблице Управление метриками откройте окно Редактировать метрики с лимитами и включите добавленные пользовательские метрики.
Для новых объектов мониторинга добавленные пользовательские метрики будут активны по умолчанию.
Результат#
Пользовательские метрики успешно добавлены в Kintsugi (DBCM).