Общая информация#
Метрика доступности разработана для мониторинга доступности аппаратного и программного обеспечения соответствующих модулей в рамках поставки ПАК. Метрика позволяет определить, доступен ли тот или иной модуль, или же он находится в неисправном состоянии. Сама метрика - 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)
Для создания метрик выберите на панели навигации menu:Настройки[Метрики].
| Примечание |
|---|
К названиям созданных метрик автоматически добавляется префикс usr_. |
Промежуточные метрики#
-
mbd_g_bm_hw_availabilityМетрика доступности оборудования Базового модуля.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_g_bmur1_hw_availabilityМетрика доступности оборудования Базового модуля управления и распределения.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_g_bmur1_sw_availabilityМетрика доступности программного обеспечения Базового модуля управления и распределения.
Экспортер:
greenplum_sql_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_g_mvh_d1_sw_availabilityМетрика доступности программного обеспечения Модуля вычисления и хранения D.
Экспортер:
process_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_g_mvh_t1_sw_availabilityМетрика доступности программного обеспечения Модуля вычисления и хранения T.
Экспортер:
process_exporter.Метрика PromQL:
sum(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.Выражение PromQL:
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 -
mbd_g_mkvh1_sw_availabilityМетрика доступности программного обеспечения Модуля коммутации, вычисления и хранения.
Экспортер:
process_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_g_mkvh6_sw_availabilityМетрика доступности программного обеспечения Модуля коммутации, вычисления и хранения тип 6.
Экспортер:
process_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_g_bma_hw_availabilityМетрика доступности оборудования Базового модуля агрегации.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_qm_bm_hw_availabilityМетрика доступности оборудования Базового модуля.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_qm_bmur1_hw_availabilityМетрика доступности оборудования Базового модуля управления и распределения.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_qm_bmur1_sw_availabilityМетрика доступности программного обеспечения Базового модуля управления и распределения.
Экспортер:
systemd_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_qm_mvh_d1_sw_availabilityМетрика доступности программного обеспечения Модуля вычисления и хранения D.
Экспортер:
clickhouse_sql_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_qm_mvh_t1_sw_availabilityМетрика доступности программного обеспечения Модуля вычисления и хранения T.
Экспортер:
clickhouse_sql_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_qm_mkvh1_sw_availabilityМетрика доступности программного обеспечения Модуля коммутации, вычисления и хранения.
Экспортер:
clickhouse_sql_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_qm_bma_hw_availabilityМетрика доступности оборудования Базового модуля агрегации.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_h_bm_hw_availabilityМетрика доступности оборудования Базового модуля.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_h_bmur1_hw_availabilityМетрика доступности оборудования Базового модуля управления и распределения.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
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.Выражение PromQL:
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 -
mbd_h_mvh_d1_sw_availabilityМетрика доступности программного обеспечения Модуля вычисления и хранения D.
Экспортер:
systemd_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_h_mvh_t1_sw_availabilityМетрика доступности программного обеспечения Модуля вычисления и хранения T.
Экспортер:
systemd_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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 -
mbd_h_mgf1_sw_availabilityМетрика доступности программного обеспечения Модуля граничных функций.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_h_mkvh1_hw_availabilityМетрика доступности оборудования Модуля коммутации, вычисления и хранения.
Экспортер:
blackbox_exporter.Выражение PromQL:
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 -
mbd_h_mkvh1_sw_availabilityМетрика доступности программного обеспечения Модуля коммутации, вычисления и хранения.
Экспортер:
systemd_exporter.Выражение PromQL:
sum(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.Выражение PromQL:
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
Конфигурация плагинов для корректного мониторинга#
-
blackbox_exporter— в параметрах таргетов укажите адреса узлов. -
clickhouse_sql_exporter— укажите данные таргетов и выберите соответствующий коллектор. -
greenplum_sql_exporter— укажите данные таргетов и выберите соответствующий коллектор. -
process_exporter— в конфигурации плагина укажите:process_names: - name: "postgres" comm: - "postgres"