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

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

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