Перейти к основному содержимому
Версия: 2.0 (WIP)

Самомониторинг ПАМИР

Памир — набор микросервисов и сопутствующих компонентов, для которых в решении самомониторинга собрана единая сервисно-ресурсная модель, настроен сбор системных и прикладных метрик, а также подготовлены специализированные дашборды для основных сервисов, PostgreSQL и OpenSearch.

Самомониторинг Памир охватывает:

  • собственные микросервисы Памир: СРМ, Мониторинг, Аутентификация, Notification, Docker Tool, Task Tool, License;
  • сторонние и дополнительные сервисы;
  • PostgreSQL ПАМИР с детализацией до базы данных, схемы и таблицы;
  • OpenSearch;
  • лицензирование, состояние контейнеров, системные ресурсы, сетевую и дисковую активность.

Памир строит для ПАМИР сервисно-ресурсную модель, а мониторинг использует эту модель как основу для привязки метрик, индикаторов здоровья и навигации между дашбордами.

Уровни модели СРМ

Памир

├── ✅ Памир микросервис
│ │
│ ├── ✅ Мониторинг
│ ├── ✅ СРМ
│ ├── ✅ Аутентификация
│ ├── ✅ Notification
│ ├── ✅ Docker Tool
│ ├── ✅ Task Tool
│ ├── ✅ License
│ ├── ✅ Сторонние
│ └── ✅ Дополнительные

└── ✅ PostgreSQL Памир

└── ✅ База данных

└── ✅ Схема

└── ✅ Таблица

✅ — отмечены уровни, включённые в шаблоны самомониторинга ПАМИР.
Ниже приведены описания уровней модели.

Памир

Атрибуты:

  • Название: имя корневой КЕ ПАМИР.
  • Наименование КЕ: отображаемое имя на дашбордах и графе.
  • Конфигурация: исходная конфигурация объекта.

Памир микросервис

Атрибуты:

  • Название: имя сервиса.
  • Наименование КЕ: отображаемое имя на дашбордах и графе.
  • Title: дополнительное отображаемое название.
  • Количество нод: число нод сервиса.
  • Maintainer: ответственный за сопровождение.
  • Проект: проект, к которому относится сервис.
  • Версия: версия сервиса.
  • Вендор: поставщик или производитель решения.
  • Конфигурация: исходная конфигурация объекта.

PostgreSQL Памир

Атрибуты:

  • Название: имя экземпляра PostgreSQL.
  • Наименование КЕ: отображаемое имя на дашбордах и графе.
  • Instance: адрес подключения к экземпляру PostgreSQL.
  • auth_module: модуль аутентификации экспортёра.
  • Версия: версия PostgreSQL.
  • Логин: логин подключения экспортёра.
  • База данных: целевая БД.
  • IP адрес: IP-адрес сервера БД.
  • Конфигурация: исходная конфигурация объекта.

База данных

Атрибуты:

  • Название: имя базы данных.
  • Наименование КЕ: отображаемое имя на дашбордах и графе.
  • Конфигурация: исходная конфигурация объекта.

Схема

Атрибуты:

  • Название: имя схемы.
  • Наименование КЕ: отображаемое имя на дашбордах и графе.
  • Конфигурация: исходная конфигурация объекта.

Таблица

Атрибуты:

  • Сервер СУБД: экземпляр PostgreSQL, на котором находится таблица.
  • База данных: база данных таблицы.
  • Схема базы данных: схема таблицы.
  • Название: имя таблицы.
  • Наименование КЕ: отображаемое имя на дашбордах и графе.
  • Конфигурация: исходная конфигурация объекта.

Логика построения СРМ

Корневая TКЕ pamir связывается по связи типа асоциация с TКЕ микросервисами и PostgreSQL.
Для микросервисов базовым типом является ТКЕ pamir_microservice. Отдельные выборки шаблона выделяют:

  • Основные сервисы: auth, monitoring, task-tool, docker-tool, notification, license, srm, docker-tool, auth, monitoring, srm, task-tool, license, notification, srm, monitoring;
  • группу Сторонние: сервисы проекта PAMIR, не входящие в основной набор ПАМИР;
  • группу Дополнительные: сервисы, которые не входят в проект PAMIR.

PostgreSQL Памир строится как отдельная ассоциированная КЕ patgresql_pamir, от которой по композиции формируются:

  • База данных
  • Схема
  • Таблица

Пример TQL-шаблона: pamir_tql

Пример графа СРМ: pamir_srm_graph

СРМ как основа мониторинга

СРМ определяет, к какой КЕ относятся метрики и на каком уровне их показывать:

  • на уровне Памир — общая сводка по системе;
  • на уровне Памир микросервис — статус и ресурсы конкретного сервиса;
  • на уровне Сторонние / Дополнительные — наблюдение за сервисами;
  • на уровне PostgreSQL Памир — состояние СУБД;

Механизм сбора метрик

Сбор метрик осуществляется через:

  • pamir-agent для системных метрик узла;
  • cadvisor для контейнерных метрик;
  • docker-state-exporter для статуса контейнеров;
  • postgres_exporter для базовых метрик PostgreSQL;
  • sql_exporter для Vacuum & Freeze метрик PostgreSQL;
  • elasticsearch-exporter для OpenSearch.

Метрики по уровню СРМ

Уровень СРМ: Памир

Примеры метрик:

  • node_cpu_seconds_total: время CPU по режимам, используемое для расчёта загрузки процессора узла.
  • node_memory_MemTotal_bytes, node_memory_MemAvailable_bytes: общий и доступный объём оперативной памяти.
  • node_filesystem_avail_bytes, node_filesystem_size_bytes: свободный и общий объём файловой системы.
  • container_cpu_usage_seconds_total: загрузка CPU контейнеров.
  • container_memory_working_set_bytes: потребление памяти контейнерами.
  • container_state_status: состояние контейнеров.
  • container_state_health_status: результат health-check контейнеров.
  • license_usage: использование лицензий.
  • up: доступность таргетов и экспортёров.
  • ALERTS: активные алерты.
  • pg_stat_activity_count: подключения к PostgreSQL.
  • pg_locks_count: блокировки PostgreSQL.
  • sql_pg_relation_size: размер таблиц БД.

Метрики показывают утилизацию узла, состояние сервисов, сводку мониторинга и состояние PostgreSQL.
pamir


Уровень СРМ: Памир микросервис

Примеры метрик:

  • container_state_status: состояние контейнера.
  • container_state_health_status: состояние health-check контейнера.
  • container_start_time_seconds: время запуска контейнера.
  • container_cpu_usage_seconds_total: загрузка CPU контейнера.
  • container_memory_working_set_bytes: рабочая память контейнера.
  • process_resident_memory_bytes, process_virtual_memory_bytes: RSS и виртуальная память процесса.
  • process_open_fds, process_max_fds: текущие и максимальные файловые дескрипторы.
  • container_network_receive_bytes_total, container_network_transmit_bytes_total: входящий и исходящий трафик.
  • container_fs_reads_bytes_total, container_fs_writes_bytes_total: чтение и запись по файловой системе.

Для python-сервисов дополнительно используются:

  • python_gc_collections_total: частота запусков сборщика мусора.
  • python_gc_objects_collected_total: количество собранных объектов.
  • python_gc_objects_uncollectable_total: количество несобираемых объектов.

Для сервисов с лицензированием дополнительно используются:

  • license_usage: текущее использование лицензии.
  • license_allow: разрешённый лимит лицензии.
  • license_overdraft: допустимый овердрафт лицензии.
  • license_expiration_time: срок действия лицензии.

Метрики микросервисов показывают статус контейнера, uptime, CPU, память, процессные показатели, сеть, диск и дополнительные python или лицензионные метрики.
pamir_python


Уровень СРМ: PostgreSQL Памир

Примеры метрик:

  • pg_up: доступность PostgreSQL.
  • pg_stat_activity_count: число клиентских сессий.
  • pg_stat_activity_max_tx_duration: максимальная длительность активной транзакции.
  • pg_locks_count: активные блокировки.
  • pg_stat_database_xact_commit, pg_stat_database_xact_rollback: commit и rollback транзакций.
  • pg_stat_database_tup_fetched, pg_stat_database_tup_inserted, pg_stat_database_tup_updated, pg_stat_database_tup_deleted, pg_stat_database_tup_returned: табличные операции.
  • pg_settings_max_connections: лимит соединений.
  • pg_settings_work_mem_bytes, pg_settings_maintenance_work_mem_bytes, pg_settings_shared_buffers_bytes, pg_settings_effective_cache_size_bytes: параметры памяти.
  • pg_settings_seq_page_cost, pg_settings_random_page_cost: параметры планировщика.
  • pg_settings_max_worker_processes, pg_settings_max_wal_size_bytes: параметры выполнения и WAL.
  • pg_database_size_bytes: размер базы данных.
  • sql_pg_relation_size: размер таблиц.

Метрики PostgreSQL показывают подключения, табличные операции, транзакции, блокировки, параметры экземпляра и размеры объектов.
postgresql


Примеры метрик:

  • sql_frozen_transaction: freeze horizon, число vacuum-операций и время с последнего vacuum.
  • sql_dead_tuples: число live/dead tuples, порог autovacuum, признак необходимости autovacuum.
  • sql_cleanup_analyze_stats: vacuum, autovacuum и время после их последних запусков.
  • sql_state_transactioncs: количество клиентских сессий по состояниям.

Метрики Vacuum & Freeze показывают состояние обслуживания таблиц PostgreSQL и позволяет контролировать риск wraparound и рост dead tuples.
postgresql_vacuum_freeze


Уровень СРМ: OpenSearch

Примеры метрик:

  • elasticsearch_clusterinfo_up: доступность кластера.
  • elasticsearch_cluster_health_status: статус кластера.
  • elasticsearch_cluster_health_number_of_nodes, elasticsearch_cluster_health_number_of_data_nodes: количество нод.
  • elasticsearch_cluster_health_active_shards, elasticsearch_cluster_health_unassigned_shards: состояние шардов.
  • elasticsearch_filesystem_data_available_bytes, elasticsearch_filesystem_data_size_bytes: дисковое пространство.
  • elasticsearch_jvm_memory_used_bytes, elasticsearch_jvm_memory_max_bytes: использование JVM.
  • elasticsearch_process_cpu_percent: загрузка CPU процесса.
  • elasticsearch_indices_docs: количество документов.
  • elasticsearch_indices_store_size_bytes: размер индексов.
  • elasticsearch_indices_translog_size_in_bytes: размер translog.
  • elasticsearch_indices_search_query_total: поисковые запросы.
  • elasticsearch_indices_indexing_index_total: операции индексации.

Метрики OpenSearch показывают состояние кластера, диска, JVM, индексов и текущую нагрузку.
opensearch

Индикаторы здоровья

PostgreSQL не отвечает

Показывает недоступность PostgreSQL.
Уровень СРМ: PostgreSQL
Метрика: pg_up
Порог: значение метрики pg_up равно 0 в течение 5 минут
Причины:

  • PostgreSQL не принимает подключения.
  • Сбой сети или аутентификации экспортёра.

Медленные запросы PostgreSQL

Показывает долгоживущие транзакции и запросы.
Уровень СРМ: PostgreSQL
Метрика: pg_stat_activity_max_tx_duration
Порог: > 300 секунд
Причины:

  • Длительная транзакция удерживает ресурсы.
  • Медленный запрос или блокировка.

Низкий cache hit ratio PostgreSQL

Показывает снижение эффективности кэша PostgreSQL.
Уровень СРМ: PostgreSQL
Метрики: pg_stat_database_blks_hit, pg_stat_database_blks_read
Порог: отношение попаданий в кэш к сумме попаданий в кэш и чтений с диска < 70%
Причины:

  • Недостаточный объём памяти.
  • Рост чтений с диска.

Высокое количество соединений PostgreSQL

Показывает приближение к лимиту соединений.
Уровень СРМ: PostgreSQL
Метрики: pg_stat_activity_count, pg_settings_max_connections
Порог: отношение текущего количества соединений к max_connections > 70%
Причины:

  • Рост числа клиентов БД.
  • Утечки соединений.

Высокий QPS PostgreSQL

Показывает аномально высокий поток транзакций.
Уровень СРМ: PostgreSQL
Метрики: pg_stat_database_xact_commit, pg_stat_database_xact_rollback
Порог: суммарная скорость commit и rollback > 10000
Причины:

  • Резкий всплеск нагрузки.
  • Изменение профиля запросов приложения.

Средняя загрузка CPU микросервиса

Показывает перегрузку контейнера по CPU.
Уровень СРМ: Памир микросервис
Метрика: container_cpu_usage_seconds_total
Порог:

  • warning: > 80%
  • error: > 95% Причины:
  • Рост вычислительной нагрузки.
  • Неоптимальная работа сервиса.

Файловые дескрипторы микросервиса

Показывает приближение процесса к лимиту открытых файловых дескрипторов.
Уровень СРМ: Памир микросервис
Метрики: process_open_fds, process_max_fds
Порог:

  • warning: > 80%
  • error: > 95% Причины:
  • Рост числа соединений или открытых файлов.
  • Утечка дескрипторов.

Сервис не запущен

Показывает остановку контейнера.
Уровень СРМ: Памир микросервис
Метрика: container_state_status
Порог: контейнер не находится в состоянии running или restarting
Причины:

  • Процесс остановлен.
  • Ошибка запуска контейнера.

Сервис постоянно перезапускается

Показывает цикл рестартов контейнера.
Уровень СРМ: Памир микросервис
Метрика: container_state_status
Порог: число переходов в состояние restarting за 5 минут > 3
Причины:

  • Ошибка инициализации приложения.
  • Недоступность внешней зависимости.

Нездоровый health-check сервиса

Показывает нарушение Docker health-check.
Уровень СРМ: Памир микросервис
Метрика: container_state_health_status
Порог: состояние unhealthy или starting дольше 5 минут
Причины:

  • Сервис не готов принимать нагрузку.
  • Ошибка внутренних проверок.

Превышение лимитов лицензий

Показывает исчерпание лимита лицензии.
Уровень СРМ: Памир микросервис
Метрики: license_usage, license_allow, license_overdraft
Порог:

  • error: использование >= лимиту license_allow
  • critical: использование >= сумме license_allow и license_overdraft Причины:
  • Рост числа лицензируемых сущностей.
  • Превышение допустимого объёма использования.

Скорое окончание лицензии

Показывает остаток времени до завершения действия лицензии.
Уровень СРМ: Памир
Метрика: license_expiration_time
Порог:

  • warning: до окончания осталось < 30 дней
  • error: до окончания осталось < 1 суток Причины:
  • Лицензия подходит к завершению.
  • Требуется продление.

Низкий свободный диск OpenSearch

Показывает риск переполнения data-диска OpenSearch.
Уровень СРМ: Сторонние / OpenSearch
Метрики: elasticsearch_filesystem_data_available_bytes, elasticsearch_filesystem_data_size_bytes
Порог: отношение свободного места к общему объёму < 20%
Причины:

  • Рост объёма индексов.
  • Недостаточный объём диска.

Дашборды

Памир компоненты

Компоненты ПАМИР в виде дерева, к каждому типу компонента привязан свой дашборд.

pamir_components

Памир

Общая информация по ПАМИР — индикаторы здоровья, ресурсы, состояние сервисов, лицензирование и БД.

pamir
Фильтр: отсутствует

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
node_cpu_seconds_totalВремя CPU по режимам
node_memory_MemTotal_bytesОбщий объём оперативной памяти
node_memory_MemAvailable_bytesДоступный объём оперативной памяти
node_filesystem_avail_bytesСвободное место на файловой системе
node_filesystem_size_bytesОбщий размер файловой системы
container_cpu_usage_seconds_totalНакопленное процессорное время контейнеров
container_memory_working_set_bytesПотребление памяти контейнерами
container_state_statusСостояние контейнеров
container_state_health_statusHealth-check контейнеров
license_usageИспользование лицензий
upДоступность таргетов и экспортёров
ALERTSАктивные алерты
pg_stat_activity_countПодключения к PostgreSQL
pg_locks_countБлокировки PostgreSQL
sql_pg_relation_sizeРазмер таблиц PostgreSQL

Правила расчёта и агрегации:

  • Загрузка ЦПУвычитание доли времени простоя CPU из 100 по метрике node_cpu_seconds_total, с округлением до одного знака после запятой.
  • Загрузка ОЗУотношение разности метрик node_memory_MemTotal_bytes и node_memory_MemAvailable_bytes к node_memory_MemTotal_bytes, умноженное на 100 и округлённое до одного знака после запятой.
  • Использование дискаотношение разности метрик node_filesystem_size_bytes и node_filesystem_avail_bytes к node_filesystem_size_bytes, умноженное на 100.
  • Потребление ЦПУ сервисамисумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • Потребление ОЗУ сервисамисумма текущих значений метрики container_memory_working_set_bytes с группировкой по сервису и переводом в МБ. Временной ряд; интервал задаётся в дашборде.
  • Таблица «Состояние сервисов»текущие значения метрик container_state_status, container_state_health_status.
  • КЕтекущее значение метрики license_usage для сущности CIS.
  • График «КЕ»текущее значение метрики license_usage для сущности CIS. Временной ряд; интервал задаётся в дашборде.
  • Таргетытекущее значение метрики license_usage для сущности CONTROLLED_OBJECTS.
  • График «Количество КЕ / таргетов»подсчёт количества значений метрики up. Временной ряд; интервал задаётся в дашборде.
  • Общее количество уникальных метрикподсчёт количества уникальных имён метрик __name__.
  • Общее количество экспортеровподсчёт количества уникальных значений label job по метрике up.
  • Активных тревогподсчёт значений метрики ALERTS в состоянии firing.
  • Таблица «Экспортеры»подсчёт количества таргетов по каждому exporter job на основе метрики up.
  • Активные подключения к БДсуммарное значение метрики pg_stat_activity_count со состоянием active.
  • Неактивные подключения к БДсуммарное значение метрики pg_stat_activity_count со состоянием idle.
  • Подключения к БД, ожидающие завершения транзакциисуммарное значение метрики pg_stat_activity_count со состоянием idle in transaction.
  • Количество блокировок БДсуммарное значение метрики pg_locks_count.
  • Размер БДсуммарное значение метрики sql_pg_relation_size.

Сервисы Памир (Группа)

Общая информация по группе сервисов Сторонние или Дополнительные.

pamir_group
Фильтр: группа сервисов

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
container_cpu_usage_seconds_totalНакопленное процессорное время контейнеров
container_memory_working_set_bytesПотребление памяти контейнерами
container_state_statusСостояние контейнеров
container_state_health_statusHealth-check контейнеров

Правила расчёта и агрегации:

  • Потребление ЦПУ сервисамисумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • Потребление ОЗУ сервисамисумма текущих значений метрики container_memory_working_set_bytes с группировкой по сервису и переводом в МБ. Временной ряд; интервал задаётся в дашборде.
  • Таблица «Состояние сервисов»текущие значения метрик container_state_status, container_state_health_status.

Сервисы Памир (python)

Информация по python-сервису ПАМИР.

pamir_python
Фильтр: конкретная КЕ микросервиса

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
container_state_statusСостояние контейнера
container_state_health_statusHealth-check контейнера
container_start_time_secondsВремя запуска контейнера
container_cpu_usage_seconds_totalНакопленное процессорное время контейнера
container_memory_working_set_bytesРабочая память контейнера
process_resident_memory_bytesRSS процесса
process_virtual_memory_bytesВиртуальная память процесса
process_open_fdsОткрытые файловые дескрипторы
process_max_fdsМаксимально допустимые файловые дескрипторы
container_network_receive_bytes_totalВходящий сетевой трафик
container_network_transmit_bytes_totalИсходящий сетевой трафик
container_fs_reads_bytes_totalЧтение по файловой системе
container_fs_writes_bytes_totalЗапись по файловой системе
python_gc_collections_totalЗапуски сборщика мусора Python
python_gc_objects_collected_totalСобранные GC объекты
python_gc_objects_uncollectable_totalНесобираемые GC объекты

Правила расчёта и агрегации:

  • Статус сервисатекущее значение метрики container_state_status для состояния running.
  • Здоровье сервисатекущее значение метрики container_state_health_status для состояния healthy.
  • UpTimeразность текущего времени и значения метрики container_start_time_seconds.
  • Информацияатрибуты КЕ number_of_nodes, version, vendor, project, maintainer.
  • Загрузка ЦПУсумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису, умноженная на 100 и округлённая до одного знака после запятой.
  • График «ЦПУ»сумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису, умноженная на 100 и округлённая до одного знака после запятой. Временной ряд; интервал задаётся в дашборде.
  • Используется ОЗУсумма текущих значений метрики container_memory_working_set_bytes с переводом в МБ.
  • График «ОЗУ»сумма текущих значений метрики container_memory_working_set_bytes с переводом в МБ. Временной ряд; интервал задаётся в дашборде.
  • RSSтекущее значение метрики process_resident_memory_bytes.
  • Виртуальная памятьтекущее значение метрики process_virtual_memory_bytes.
  • % Использованияотношение значения метрики process_open_fds к process_max_fds, умноженное на 100.
  • График «Входящий трафик»сумма скоростей прироста метрики container_network_receive_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Исходящий трафик»сумма скоростей прироста метрики container_network_transmit_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Загрузка I/O - чтение»сумма скоростей прироста метрики container_fs_reads_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Загрузка I/O - запись»сумма скоростей прироста метрики container_fs_writes_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Python-GC»скорости прироста метрик python_gc_collections_total, python_gc_objects_collected_total, python_gc_objects_uncollectable_total в окне 5m. Временной ряд; интервал задаётся в дашборде.

Сервисы Памир (python, лицензия)

Информация по python-сервису ПАМИР с лицензионным блоком.

pamir_python_license
Фильтр: конкретная КЕ микросервиса

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
container_state_statusСостояние контейнера
container_state_health_statusHealth-check контейнера
container_start_time_secondsВремя запуска контейнера
container_cpu_usage_seconds_totalНакопленное процессорное время контейнера
container_memory_working_set_bytesРабочая память контейнера
license_usageИспользование лицензии
license_allowРазрешённый лимит лицензии
license_overdraftДопустимый овердрафт лицензии
process_resident_memory_bytesRSS процесса
process_virtual_memory_bytesВиртуальная память процесса
process_open_fdsОткрытые файловые дескрипторы
process_max_fdsМаксимально допустимые файловые дескрипторы
container_network_receive_bytes_totalВходящий сетевой трафик
container_network_transmit_bytes_totalИсходящий сетевой трафик
container_fs_reads_bytes_totalЧтение по файловой системе
container_fs_writes_bytes_totalЗапись по файловой системе
python_gc_collections_totalЗапуски сборщика мусора Python
python_gc_objects_collected_totalСобранные GC объекты
python_gc_objects_uncollectable_totalНесобираемые GC объекты

Правила расчёта и агрегации:

  • Статус сервисатекущее значение метрики container_state_status для состояния running.
  • Здоровье сервисатекущее значение метрики container_state_health_status для состояния healthy.
  • UpTimeразность текущего времени и значения метрики container_start_time_seconds.
  • Информацияатрибуты КЕ number_of_nodes, version, vendor, project, maintainer.
  • Загрузка ЦПУсумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису, умноженная на 100 и округлённая до одного знака после запятой.
  • График «ЦПУ»сумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису, умноженная на 100 и округлённая до одного знака после запятой. Временной ряд; интервал задаётся в дашборде.
  • Используется ОЗУсумма текущих значений метрики container_memory_working_set_bytes с переводом в МБ.
  • График «ОЗУ»сумма текущих значений метрики container_memory_working_set_bytes с переводом в МБ. Временной ряд; интервал задаётся в дашборде.
  • Используетсятекущее значение метрики license_usage в разрезе лицензируемой сущности.
  • Всего разрешенотекущее значение метрики license_allow в разрезе лицензируемой сущности.
  • Овердрафттекущее значение метрики license_overdraft в разрезе лицензируемой сущности.
  • % Использованияотношение значения метрики license_usage к license_allow, умноженное на 100.
  • RSSтекущее значение метрики process_resident_memory_bytes.
  • Виртуальная памятьтекущее значение метрики process_virtual_memory_bytes.
  • % Использования файловых дескрипторовотношение значения метрики process_open_fds к process_max_fds, умноженное на 100.
  • График «Входящий трафик»сумма скоростей прироста метрики container_network_receive_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Исходящий трафик»сумма скоростей прироста метрики container_network_transmit_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Загрузка I/O - чтение»сумма скоростей прироста метрики container_fs_reads_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Загрузка I/O - запись»сумма скоростей прироста метрики container_fs_writes_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Python-GC»скорости прироста метрик python_gc_collections_total, python_gc_objects_collected_total, python_gc_objects_uncollectable_total в окне 5m. Временной ряд; интервал задаётся в дашборде.

Сервисы Памир (Сторонние)

Информация по стороннему или дополнительному сервису.

pamir_third_party
Фильтр: конкретная КЕ типа Сторонние или Дополнительные

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
container_state_statusСостояние контейнера
container_state_health_statusHealth-check контейнера
container_start_time_secondsВремя запуска контейнера
container_cpu_usage_seconds_totalНакопленное процессорное время контейнера
container_memory_working_set_bytesРабочая память контейнера
container_network_receive_bytes_totalВходящий сетевой трафик
container_network_transmit_bytes_totalИсходящий сетевой трафик
container_fs_reads_bytes_totalЧтение по файловой системе
container_fs_writes_bytes_totalЗапись по файловой системе

Правила расчёта и агрегации:

  • Статус сервисатекущее значение метрики container_state_status для состояния running.
  • Здоровье сервисатекущее значение метрики container_state_health_status для состояния healthy.
  • UpTimeразность текущего времени и значения метрики container_start_time_seconds.
  • Информацияатрибуты КЕ number_of_nodes, version, vendor, project, maintainer.
  • Загрузка ЦПУсумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису, умноженная на 100 и округлённая до одного знака после запятой.
  • График «ЦПУ»сумма скоростей прироста метрики container_cpu_usage_seconds_total в окне 5m с группировкой по сервису, умноженная на 100 и округлённая до одного знака после запятой. Временной ряд; интервал задаётся в дашборде.
  • Используется ОЗУсумма текущих значений метрики container_memory_working_set_bytes с переводом в МБ.
  • График «ОЗУ»сумма текущих значений метрики container_memory_working_set_bytes с переводом в МБ. Временной ряд; интервал задаётся в дашборде.
  • График «Входящий трафик»сумма скоростей прироста метрики container_network_receive_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Исходящий трафик»сумма скоростей прироста метрики container_network_transmit_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Загрузка I/O - чтение»сумма скоростей прироста метрики container_fs_reads_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.
  • График «Загрузка I/O - запись»сумма скоростей прироста метрики container_fs_writes_bytes_total в окне 5m с группировкой по сервису. Временной ряд; интервал задаётся в дашборде.

OpenSearch

Информация по OpenSearch.

opensearch
Фильтр: отсутствует

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
elasticsearch_clusterinfo_upДоступность кластера
elasticsearch_cluster_health_statusСтатус кластера
elasticsearch_cluster_health_number_of_nodesКоличество нод
elasticsearch_cluster_health_number_of_data_nodesКоличество data-нод
elasticsearch_cluster_health_active_shardsАктивные шарды
elasticsearch_cluster_health_unassigned_shardsНе назначенные шарды
elasticsearch_filesystem_data_available_bytesДоступное место на data-диске
elasticsearch_filesystem_data_size_bytesОбщий размер data-диска
elasticsearch_jvm_memory_used_bytesИспользуемая JVM-память
elasticsearch_jvm_memory_max_bytesМаксимальная JVM-память
elasticsearch_process_cpu_percentЗагрузка CPU процесса
elasticsearch_indices_docsКоличество документов
elasticsearch_indices_docs_deletedКоличество удаленных документов
elasticsearch_indices_store_size_bytesРазмер индексов
elasticsearch_indices_translog_size_in_bytesРазмер translog
elasticsearch_indices_search_query_totalСчётчик поисковых запросов
elasticsearch_indices_indexing_index_totalСчётчик операций индексации

Правила расчёта и агрегации:

  • Доступность кластератекущее значение метрики elasticsearch_clusterinfo_up.
  • Статус кластератекущее значение метрики elasticsearch_cluster_health_status, преобразованное в статус green / yellow / red.
  • Количество нодмаксимальное значение метрики elasticsearch_cluster_health_number_of_nodes.
  • Количество data-нодмаксимальное значение метрики elasticsearch_cluster_health_number_of_data_nodes.
  • Активные шардымаксимальное значение метрики elasticsearch_cluster_health_active_shards.
  • Не назначенные шардымаксимальное значение метрики elasticsearch_cluster_health_unassigned_shards.
  • Использование дискаотношение значения метрики elasticsearch_filesystem_data_available_bytes к elasticsearch_filesystem_data_size_bytes, умноженное на 100.
  • Использованоотношение значения метрики elasticsearch_filesystem_data_available_bytes к elasticsearch_filesystem_data_size_bytes, умноженное на 100.
  • Использование JVMотношение суммы метрики elasticsearch_jvm_memory_used_bytes к elasticsearch_jvm_memory_max_bytes, умноженное на 100.
  • Использовано JVMотношение суммы метрики elasticsearch_jvm_memory_used_bytes к elasticsearch_jvm_memory_max_bytes, умноженное на 100.
  • Использовано CPUтекущее значение метрики elasticsearch_process_cpu_percent.
  • График «Память JVM по областям»текущие значения метрики elasticsearch_jvm_memory_used_bytes в разрезе области JVM. Временной ряд; интервал задаётся в дашборде.
  • График «Использование CPU»текущее значение метрики elasticsearch_process_cpu_percent. Временной ряд; интервал задаётся в дашборде.
  • Документов всегосуммарное значение метрики elasticsearch_indices_docs.
  • Удалённых документовсуммарное значение метрики elasticsearch_indices_docs_deleted.
  • Размер индексовсуммарное значение метрики elasticsearch_indices_store_size_bytes.
  • Размер translogсуммарное значение метрики elasticsearch_indices_translog_size_in_bytes.
  • График «Поисковые запросы»скорость прироста метрики elasticsearch_indices_search_query_total в окне 5m. Временной ряд; интервал задаётся в дашборде.
  • График «Индексация документов»скорость прироста метрики elasticsearch_indices_indexing_index_total в окне 5m. Временной ряд; интервал задаётся в дашборде.

PostgreSQL

Информация по PostgreSQL ПАМИР.

postgresql
Фильтр: конкретная КЕ PostgreSQL

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
pg_stat_activity_countКоличество клиентских сессий
pg_settings_max_connectionsЛимит соединений
pg_stat_database_tup_fetchedЧисло извлечённых строк
pg_stat_database_tup_insertedЧисло вставленных строк
pg_stat_database_tup_updatedЧисло обновлённых строк
pg_stat_database_tup_deletedЧисло удалённых строк
pg_stat_database_tup_returnedЧисло возвращённых строк
pg_stat_database_xact_commitЧисло commit
pg_stat_database_xact_rollbackЧисло rollback
pg_locks_countАктивные блокировки
pg_settings_maintenance_work_mem_bytesMaintenance Work Mem
pg_settings_work_mem_bytesWork Mem
pg_settings_seq_page_costSeq Page Cost
pg_settings_max_worker_processesMax Worker Processes
pg_settings_shared_buffers_bytesShared Buffers
pg_settings_max_wal_size_bytesMax WAL Size
pg_settings_effective_cache_size_bytesEffective Cache
pg_settings_random_page_costRandom Page Cost
sql_pg_relation_sizeРазмер таблиц

Правила расчёта и агрегации:

  • Версияатрибут КЕ version.
  • Current select dataсуммарное значение метрики pg_stat_database_tup_fetched.
  • Current update dataсуммарное значение метрики pg_stat_database_tup_updated.
  • Current insert dataсуммарное значение метрики pg_stat_database_tup_inserted.
  • Current delete dataсуммарное значение метрики pg_stat_database_tup_deleted.
  • Current return dataсуммарное значение метрики pg_stat_database_tup_returned.
  • Max Connectionsотношение суммарного значения метрики pg_stat_activity_count к pg_settings_max_connections, умноженное на 100.
  • Maintenance Work Memтекущее значение метрики pg_settings_maintenance_work_mem_bytes.
  • Work Memтекущее значение метрики pg_settings_work_mem_bytes.
  • Seq Page Costтекущее значение метрики pg_settings_seq_page_cost.
  • Max Worker Processesтекущее значение метрики pg_settings_max_worker_processes.
  • Max Parallel Workersтекущее значение метрики pg_settings_max_worker_processes.
  • Shared Buffersтекущее значение метрики pg_settings_shared_buffers_bytes.
  • Max WAL Sizeтекущее значение метрики pg_settings_max_wal_size_bytes.
  • Effective Cacheтекущее значение метрики pg_settings_effective_cache_size_bytes.
  • Random Page Costтекущее значение метрики pg_settings_random_page_cost.
  • График «Активные сессии»текущее значение метрики pg_stat_activity_count со состоянием active. Временной ряд; интервал задаётся в дашборде.
  • График «Неактивные сессии»текущее значение метрики pg_stat_activity_count со состояниями idle, idle in transaction, idle in transaction (aborted). Временной ряд; интервал задаётся в дашборде.
  • График «SELECT за 5 минут (DATA)»текущее значение метрики pg_stat_database_tup_fetched, округлённое до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «INSERT за 5 минут (DATA)»разница между начальным и конечным значением счётчика pg_stat_database_tup_inserted в окне 5m с последующим округлением до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «UPDATE за 5 минут (DATA)»разница между начальным и конечным значением счётчика pg_stat_database_tup_updated в окне 5m с последующим округлением до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «DELETED за 5 минут (DATA)»разница между начальным и конечным значением счётчика pg_stat_database_tup_inserted в окне 5m с последующим округлением до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «RETURN за 5 минут (DATA)»разница между начальным и конечным значением счётчика pg_stat_database_tup_returned в окне 5m с последующим округлением до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «Количество успешно завершенных транзакций за 5 минут»разница между начальным и конечным значением счётчика pg_stat_database_xact_commit в окне 5m с последующим округлением до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «Количество отмененных транзакций за 5 минут»разница между начальным и конечным значением счётчика pg_stat_database_xact_rollback в окне 5m с последующим округлением до целого числа. Временной ряд; интервал задаётся в дашборде.
  • График «Количество активных блокировок»текущее значение метрики pg_locks_count. Временной ряд; интервал задаётся в дашборде.
  • Таблица «Размеры объектов»текущие значения метрики sql_pg_relation_size в разрезе table_catalog, table_schema, table_name.

PostgreSQL (Vacuum & Freeze)

Информация по freeze horizon, vacuum и dead tuples.

postgresql_vacuum_freeze
Фильтр: конкретная КЕ PostgreSQL

Таблица сырых метрик, используемых виджетами дашборда

МетрикаОписание
sql_frozen_transactionFreeze horizon и статистика vacuum по таблицам
sql_dead_tuplesLive/dead tuples и параметры autovacuum
sql_cleanup_analyze_statsVacuum и autovacuum по пользовательским таблицам
sql_state_transactioncsКоличество клиентских сессий по состояниям

Правила расчёта и агрегации:

  • Возраст транзакций (MAX)максимальное значение метрики sql_frozen_transaction по колонке horizon.
  • Количество операций вакуума (MAX)максимальное значение метрики sql_frozen_transaction по колонке maint_count.
  • Время с последнего вакуума (MAX)максимальное значение метрики sql_frozen_transaction по колонке since_last_maint.
  • Количество автовакуумов (MAX)максимальное значение метрики sql_dead_tuples по колонке av_cnt.
  • Всего строк (MAX)максимальное значение метрики sql_dead_tuples по колонке reltuples.
  • Количество live строк (MAX)максимальное значение метрики sql_dead_tuples по колонке live_tup.
  • Время с момента последнего автовакуума (MAX)максимальное значение метрики sql_dead_tuples по колонке since_last_av.
  • Количество dead строк (MAX)максимальное значение метрики sql_dead_tuples по колонке dead_tup.
  • Порог автовакуума (MAX)максимальное значение метрики sql_dead_tuples по колонке boundary.
  • Доля dead строк (MAX)максимальное значение метрики sql_dead_tuples по колонке n_dead_ratio.
  • График «Connection States»суммарное значение метрики sql_state_transactioncs с группировкой по состоянию подключения. Временной ряд; интервал задаётся в дашборде.
  • График «Cleanup Stats»сумма скоростей прироста метрики sql_cleanup_analyze_stats в окне 5m отдельно для vacuum и autovacuum. Временной ряд; интервал задаётся в дашборде.
  • Таблица «Frozen Transaction»текущие значения метрики sql_frozen_transaction по колонкам horizon, maint_count, since_last_maint.
  • Таблица «Dead Tuples»текущие значения метрики sql_dead_tuples по колонкам reltuples, live_tup, dead_tup, boundary, av_cnt, since_last_av, av_need, n_dead_ratio.

Файлы конфигурации

Решение по самомониторингу Памир устанавливается с помощью контент-пака self_monitoring.
Контент-пак содержит набор конфигурационных файлов, необходимых для развёртывания сервисно-ресурсной модели, шаблонов мониторинга, дашбордов, плана обогащения и экспортёров.

В рамках решения используются следующие конфигурационные файлы:

  • ci_types — описание типов КЕ, атрибутов и связей СРМ;
  • templates — шаблоны TQL, VMAlert/HI и настройки jobs для мониторинга;
  • dashboards — конфигурация дашбордов и виджетов;
  • enrichment_plans — план обогащения для КЕ Памир;
  • exporters — настройки postgres_exporter и sql_exporter.

Что хранится в каждом файле

ФайлНазначение
ci_typesописывает типы КЕ ПАМИР, PostgreSQL и табличной иерархии, а также правила построения связей
templatesсодержит TQL-шаблон ПАМИР и PostgreSQL, привязку jobs и индикаторов здоровья
dashboardsопределяет виджеты, их PromQL-запросы, layout и фильтры
enrichment_plansзадаёт cron-расписание для обогащения КЕ Памир
exportersзадаёт SQL-запросы для табличных метрик PostgreSQL и конфигурацию auth_module для postgres_exporter