Дополнительная метрика доступности
Общая информация
Метрика доступности разработана для мониторинга доступности аппаратного и программного обеспечения соответствующих модулей в рамках поставки ПАК. Метрика позволяет определить, доступен ли тот или иной модуль, или же он находится в неисправном состоянии. Сама метрика — module_availability.
Метрика является агрегирующей и состоит из следующего запроса:
label_set(sum(usr_mbd_g_bm_hw_availability) without(src_type), "module_type",
"Базовый модуль", "pak_type", "МБД.Г")
or label_set(sum(usr_mbd_g_bmur1_hw_availability + usr_mbd_g_bmur1_sw_availability > bool 1)
without(src_type), "module_type", "Базовый модуль управления и распределения", "pak_type",
"МБД.Г")
or label_set(sum(usr_mbd_g_mvh_d1_hw_availability + usr_mbd_g_mvh_d1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль вычисления и хранения D", "pak_type", "МБД.Г")
or label_set(sum(usr_mbd_g_mvh_t1_hw_availability + usr_mbd_g_mvh_t1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль вычисления и хранения T", "pak_type", "МБД.Г")
or label_set(sum(usr_mbd_g_mkvh1_hw_availability + usr_mbd_g_mkvh1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль коммутации, вычисления и хранения", "pak_type",
"МБД.Г")
or label_set(sum(usr_mbd_g_mkvh6_hw_availability + usr_mbd_g_mkvh6_sw_availability > bool 1)
without(src_type), "module_type", "Модуль коммутации, вычисления и хранения тип 6",
"pak_type", "МБД.Г")
or label_set(sum(usr_mbd_g_mrk_hw_availability) without(src_type), "module_type",
"Базовый модуль резервного копирования", "pak_type", "МБД.Г")
or label_set(sum(usr_mbd_g_bma_hw_availability) without(src_type), "module_type",
"Базовый модуль агрегации", "pak_type", "МБД.Г")
or label_set(sum(usr_mbd_qm_bm_hw_availability) without(src_type), "module_type",
"Базовый модуль", "pak_type", "МБД.КХ")
or label_set(sum(usr_mbd_qm_bmur1_hw_availability + usr_mbd_qm_bmur1_sw_availability > bool 1)
without(src_type), "module_type", "Базовый модуль управления и распределения",
"pak_type", "МБД.КХ")
or label_set(sum(usr_mbd_qm_mvh_d1_hw_availability + usr_mbd_qm_mvh_d1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль вычисления и хранения D", "pak_type", "МБД.КХ")
or label_set(sum(usr_mbd_qm_mvh_t1_hw_availability + usr_mbd_qm_mvh_t1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль вычисления и хранения T", "pak_type", "МБД.КХ")
or label_set(sum(usr_mbd_qm_mkvh1_hw_availability + usr_mbd_qm_mkvh1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль коммутации, вычисления и хранения", "pak_type",
"МБД.КХ")
or label_set(sum(usr_mbd_qm_bmrk_hw_availability) without(src_type), "module_type",
"Базовый модуль резервного копирования", "pak_type", "МБД.КХ")
or label_set(sum(usr_mbd_qm_bma_hw_availability) without(src_type), "module_type",
"Базовый модуль агрегации", "pak_type", "МБД.КХ")
or label_set(sum(usr_mbd_h_bm_hw_availability) without(src_type), "module_type",
"Базовый модуль", "pak_type", "МБД.Х")
or label_set(sum(usr_mbd_h_bmur1_hw_availability + usr_mbd_h_bmur1_sw_availability > bool 1)
without(src_type), "module_type", "Базовый модуль управления и распределения", "pak_type",
"МБД.Х")
or label_set(sum(usr_mbd_h_mvh_d1_hw_availability + usr_mbd_h_mvh_d1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль вычисления и хранения D", "pak_type", "МБД.Х")
or label_set(sum(usr_mbd_h_mvh_t1_hw_availability + usr_mbd_h_mvh_t1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль вычисления и хранения T", "pak_type", "МБД.Х")
or label_set(sum(usr_mbd_h_mgf1_hw_availability + usr_mbd_h_mgf1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль граничных функций", "pak_type", "МБД.Х")
or label_set(sum(usr_mbd_h_mkvh1_hw_availability + usr_mbd_h_mkvh1_sw_availability > bool 1)
without(src_type), "module_type", "Модуль коммутации, вычисления и хранения", "pak_type",
"МБД.Х")
or label_set(sum(usr_mbd_h_mrk_hw_availability)
without(src_type), "module_type", "Базовый модуль резервного копирования", "pak_type",
"МБД.Х")
Концептуально внутри запроса лежит join, который заполняет метрику данными из промежуточных, создаваемых пользователем, метрик доступности каждого модуля. С помощью функции label_set новая метрика обогащается метками "Модуль" и "ПАК". Значения временного ряда будут получены из значений метрик, используемых в качестве первого аргумента label_set.
Создание промежуточных метрик
Метрики агрегируются из уже готовых метрик.
Для сбора метрики на узлах нужно развернуть соответствующие экспортеры, за исключением blackbox_exporter — его достаточно развернуть только на Визион.Proxy.
При заведении метрик учитывайте:
-
метки;
-
количество узлов в модуле.
Метки уже прописаны.
Вместо Х нужно подставить значение из объектной модели, прописать имя модуля и имя ПАК, к которому будет относиться метрика, или IP-адрес узла, который проверяется с помощью метрики probe_success (доступность оборудования).
Так как количество узлов может отличаться, не стоит относиться к количеству метрик внутри запроса для агрегации метрики доступности как к фиксированному значению — можно скопировать часть запроса и продублировать его для ещё одного узла, например:
mbd_h_mrk_hw_availability - sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0
В данном случае проверяются два узла. Можно добавить третий в запрос, просто скопировав sum:
sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id)
Такая гибкость позволяет учитывать изменения в конфигурации ПАК.
Если агрегирующих метрик меньше, чем тех, что перечислены в module_availability, это не повлияет на работоспособность, просто недостающие не будут участвовать в запросе.
Если с помощью одного Визиона мониторятся несколько ПАК одного типа, можно объединить их внутри метрики оператором or:
(sum(probe_success{instance="1.1.1.1", _module_id="Module1",_pak_id="PAK1"}) by (_pak_id, _module_id) + sum(probe_success{instance="2.2.2.2", _module_id="Module1",_pak_id="PAK1"}) by (_pak_id, _module_id) > bool 0) or (sum(probe_success{instance="3.3.3.3", _module_id="Module2",_pak_id="PAK2"}) by (_pak_id, _module_id) + sum(probe_success{instance="4.4.4.4", _module_id="Module2",_pak_id="PAK2"}) by (_pak_id, _module_id) > bool 0)
Для создания метрик выберите на панели навигации .
К названиям созданных метрик автоматически добавляется префикс usr_.
|
-
mbd_g_bm_hw_availability
Метрика доступности оборудования Базового модуля.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_bmur1_hw_availability
Метрика доступности оборудования Базового модуля управления и распределения.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_bmur1_sw_availability
Метрика доступности программного обеспечения Базового модуля управления и распределения.
Экспортер:
greenplum_sql_exporter.Выражение PromQLsum(greenplum_database_status{_module_id="X", _pak_id="X"} or absent(greenplum_database_status{_module_id="X", _pak_id="X"}) * 0) by (_module_id, _pak_id) > bool 0 -
mbd_g_mvh_d1_hw_availability
Метрика доступности оборудования Модуля вычисления и хранения D.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_mvh_d1_sw_availability
Метрика доступности программного обеспечения Модуля вычисления и хранения D.
Экспортер:
process_exporter.Выражение PromQLsum(namedprocess_namegroup_num_procs{groupname="postgres", _module_id="X", _pak_id="X"}) by (_module_id, _pak_id) > bool 0 -
mbd_g_mvh_t1_hw_availability
Метрика доступности оборудования Модуля вычисления и хранения T.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_mvh_t1_sw_availability
Метрика доступности программного обеспечения Модуля вычисления и хранения T.
Экспортер:
process_exporter.Метрика PromQLsum(namedprocess_namegroup_num_procs{groupname="postgres", _module_id="X", _pak_id="X"}) by (_module_id, _pak_id) > bool 0 -
mbd_g_mkvh1_hw_availability
Метрика доступности оборудования Модуля коммутации, вычисления и хранения.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_mkvh1_sw_availability
Метрика доступности программного обеспечения Модуля коммутации, вычисления и хранения.
Экспортер:
process_exporter.Выражение PromQLsum(namedprocess_namegroup_num_procs{groupname="postgres", _module_id="X", _pak_id="X"}) by (_module_id, _pak_id) > bool 0 -
mbd_g_mkvh6_hw_availability
Метрика доступности оборудования Модуля коммутации, вычисления и хранения тип 6.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_mkvh6_sw_availability
Метрика доступности программного обеспечения Модуля коммутации, вычисления и хранения тип 6.
Экспортер:
process_exporter.Выражение PromQLsum(namedprocess_namegroup_num_procs{groupname="postgres", _module_id="X", _pak_id="X"}) by (_module_id, _pak_id) > bool 0 -
mbd_g_mrk_hw_availability
Метрика доступности оборудования Базового модуля резервного копирования.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_g_bma_hw_availability
Метрика доступности оборудования Базового модуля агрегации.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_bm_hw_availability
Метрика доступности оборудования Базового модуля.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_bmur1_hw_availability
Метрика доступности оборудования Базового модуля управления и распределения.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_bmur1_sw_availability
Метрика доступности программного обеспечения Базового модуля управления и распределения.
Экспортер:
systemd_exporter.Выражение PromQLsum(systemd_unit_state{name="zookeeper.service", state="active", _module_id="X", _pak_id="X"}) by (_module_id, _pak_id) > bool 0 -
mbd_qm_mvh_d1_hw_availability
Метрика доступности оборудования Модуля вычисления и хранения D.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_mvh_d1_sw_availability
Метрика доступности программного обеспечения Модуля вычисления и хранения D.
Экспортер:
clickhouse_sql_exporter.Выражение PromQLsum(clickhouse_test_connection{_module_id="X", _pak_id="X"} or absent(clickhouse_test_connection{_module_id="X", _pak_id="X"}) * 0) by (_pak_id, _module_id) > bool 0 -
mbd_qm_mvh_t1_hw_availability
Метрика доступности оборудования Модуля вычисления и хранения T.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_mvh_t1_sw_availability
Метрика доступности программного обеспечения Модуля вычисления и хранения T.
Экспортер:
clickhouse_sql_exporter.Выражение PromQLsum(clickhouse_test_connection{_module_id="X", _pak_id="X"} or absent(clickhouse_test_connection{_module_id="X", _pak_id="X"}) * 0) by (_pak_id, _module_id) -
mbd_qm_mkvh1_hw_availability
Метрика доступности оборудования Модуля коммутации, вычисления и хранения.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_mkvh1_sw_availability
Метрика доступности программного обеспечения Модуля коммутации, вычисления и хранения.
Экспортер:
clickhouse_sql_exporter.Выражение PromQLsum(clickhouse_test_connection{_module_id="X", _pak_id="X"} or absent(clickhouse_test_connection{_module_id="X", _pak_id="X"}) * 0) by (_pak_id, _module_id) > bool 0 -
mbd_qm_bmrk_hw_availability
Метрика доступности оборудования Базового модуля резервного копирования.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_qm_bma_hw_availability
Метрика доступности оборудования Базового модуля агрегации.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_bm_hw_availability
Метрика доступности оборудования Базового модуля.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_bmur1_hw_availability
Метрика доступности оборудования Базового модуля управления и распределения.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_bmur1_sw_availability
Метрика доступности программного обеспечения Базового модуля управления и распределения.
Экспортер:
systemd_exporter.Выражение PromQL((sum(systemd_unit_state{name="hadoop-hdfs-namenode.service", state="active",_module_id="X",_pak_id="X"}) by (_module_id, _pak_id) > bool 0) + (sum(systemd_unit_state{name="zookeeper.service", state="active",_module_id="X",_pak_id="X"}) by (_module_id, _pak_id) > bool 0)) > bool 1 -
mbd_h_mvh_d1_hw_availability
Метрика доступности оборудования Модуля вычисления и хранения D.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mvh_d1_sw_availability
Метрика доступности программного обеспечения Модуля вычисления и хранения D.
Экспортер:
systemd_exporter.Выражение PromQLsum(systemd_unit_state{name="hadoop-hdfs-datanode.service", state="active", _module_id="X", _pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mvh_t1_hw_availability
Метрика доступности оборудования Модуля вычисления и хранения T.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mvh_t1_sw_availability
Метрика доступности программного обеспечения Модуля вычисления и хранения T.
Экспортер:
systemd_exporter.Выражение PromQLsum(systemd_unit_state{name="hadoop-hdfs-datanode.service", state="active", _module_id="X", _pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mgf1_hw_availability
Метрика доступности оборудования Модуля граничных функций.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mgf1_sw_availability
Метрика доступности программного обеспечения Модуля граничных функций.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mkvh1_hw_availability
Метрика доступности оборудования Модуля коммутации, вычисления и хранения.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mkvh1_sw_availability
Метрика доступности программного обеспечения Модуля коммутации, вычисления и хранения.
Экспортер:
systemd_exporter.Выражение PromQLsum(systemd_unit_state{name="hadoop-hdfs-datanode.service", state="active", _module_id="X", _pak_id="X"}) by (_pak_id, _module_id) > bool 0 -
mbd_h_mrk_hw_availability
Метрика доступности оборудования Базового модуля резервного копирования.
Экспортер:
blackbox_exporter.Выражение PromQLsum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) + sum(probe_success{instance="X", _module_id="X",_pak_id="X"}) by (_pak_id, _module_id) > bool 0
Конфигурация плагинов для корректного мониторинга
-
blackbox_exporter — в параметрах таргетов укажите адреса узлов.
-
clickhouse_sql_exporter — укажите данные таргетов и выберите соответствующий коллектор.
-
greenplum_sql_exporter — укажите данные таргетов и выберите соответствующий коллектор.
-
process_exporter — в конфигурации плагина укажите:
process_names: - name: "postgres" comm: - "postgres"