Мониторинг кластера¶
В данном разделе приведена информация о мониторинге запущенного кластера Picodata.
Мониторинг состояния кластера возможен после подключения к кластеру в консоли. После этого можно использовать команды, показывающие состояние raft-группы, отдельных инстансов, собранных из них репликасетов и т.д.
Получение лидера raft-группы¶
Узнать лидера raft-группы, а также ID и статус текущего инстанса:
pico.raft_status()
Пример вывода:
---
- term: 2
leader_id: 1
raft_state: Leader
id: 1
...
Получение состава raft-группы¶
Просмотр состава raft-группы и данных инстансов:
box.space._pico_instance:fselect()
Пример вывода:
---
- - +-----------+--------------------------------------+-------+-------------+--------------------------------------+-------------+------------+--------------+
- |instance_id| instance_uuid |raft_id|replicaset_id| replicaset_uuid |current_grade|target_grade|failure_domain|
- +-----------+--------------------------------------+-------+-------------+--------------------------------------+-------------+------------+--------------+
- | "i1" |"68d4a766-4144-3248-aeb4-e212356716e4"| 1 | "r1" |"e0df68c5-e7f9-395f-86b3-30ad9e1b7b07"|["Online",1] |["Online",1]| {} |
- | "i2" |"24c4ac5f-4981-3441-879c-aee1edb608a6"| 2 | "r1" |"e0df68c5-e7f9-395f-86b3-30ad9e1b7b07"|["Online",1] |["Online",1]| {} |
- | "i3" |"5d7a7353-3e82-30fd-af0d-261436544389"| 3 | "r2" |"eff4449e-feb2-3d73-87bc-75807cb23191"|["Online",1] |["Online",1]| {} |
- | "i4" |"826cbe5e-6979-3191-9e22-e39deef142f0"| 4 | "r2" |"eff4449e-feb2-3d73-87bc-75807cb23191"|["Online",1] |["Online",1]| {} |
- +-----------+--------------------------------------+-------+-------------+--------------------------------------+-------------+------------+--------------+
...
Можно отдельно посмотреть список репликасетов, их UUID и вес:
box.space._pico_replicaset:fselect()
Пример вывода:
---
- — +-------------+--------------------------------------+---------+------+
- |replicaset_id| replicaset_uuid |master_id|weight|
- +-------------+--------------------------------------+---------+------+
- | "r1" |"e0df68c5-e7f9-395f-86b3-30ad9e1b7b07"| "i1" | 1 |
- | "r2" |"eff4449e-feb2-3d73-87bc-75807cb23191"| "i3" | 1 |
- +-------------+--------------------------------------+---------+------+
...
Таблицы выше позволяют узнать текущий и целевой уровень (grade)
каждого инстанса, а также вес (weight
) репликасета. Уровни отражают
конфигурацию остальных инстансов относительно текущего, а вес
репликасета — его наполненность репликами согласно фактору репликации
(см. подробнее). Вес репликасета определяет его
приоритет при распределении бакетов с данными.
Получение версии схемы данных¶
Узнать текущую версию схему данных можно с помощью команды:
box.space._pico_property:get("current_schema_version")
---
- ['current_schema_version', 1]
...
Каждое изменение схемы данных в кластере приводит к увеличению этого номера.
Метрики инстанса¶
Функциональность сбора метрик позволяет получать параметры работы СУБД из инстанса Picodata и предоставлять доступ к ним для внешних систем в формате Prometheus.
Включение сбора метрик¶
Модуль сбора метрик автоматически включается при использовании
встроенного HTTP-сервера в Picodata. Для этого нужно при запуске
инстанса использовать параметр --http-listen
и задать адрес
веб-сервера. Например:
picodata run --http-listen '127.0.0.1:8081'
Получение метрик¶
Метрики инстанса Picodata можно получить в консоли, используя curl
:
curl --location 'http://127.0.0.1:8081/metrics'
Для интеграции Picodata с системой мониторинга событий и оповещений
Prometheus настройте новую цель в файле
/etc/prometheus/prometheus.yml
:
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['127.0.0.1::9090']
- job_name: 'picodata'
scrape_interval: 5s
metrics_path: /metrics
static_configs:
- targets: ['127.0.0.1:8081']