Перейти к основному содержимому

Добавление пользовательских метрик для панели мониторинга «Метрики»

Предусловия​

Подготовьте файл 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.

Последовательность выполнения​

  1. Выполните подключение к БД meta:

    psql -h <host.example> -p <port.example> -U <user.example> kintsugi.example.test

    Описание параметров:

    • <host.example> – адрес базы данных метаинформации;
    • <port.example> – порт базы данных;
    • <user.example> – имя пользователя;
    • kintsugi.example.test – база данных метаинформации.
  2. Выполните процедуру добавления пользовательских метрик:

    BEGIN;

    \set declare_json `cat custom.json`
    CALL install_sql_metrics_bundle(:'bundle_json'::JSONB);

    COMMIT;
примечание

Если объект мониторинга уже был создан в Kintsugi (DBCM), то на вкладке Метрики в таблице Управление метриками откройте окно Редактировать метрики с лимитами и включите добавленные пользовательские метрики.

Для новых объектов мониторинга добавленные пользовательские метрики будут активны по умолчанию.

Результат​

Пользовательские метрики успешно добавлены в Kintsugi (DBCM).