Обзор системы мониторинга Milvus
В этой теме рассказывается о том, как Milvus использует Prometheus для мониторинга показателей и Grafana для визуализации показателей и создания оповещений.
Prometheus в Milvus
Prometheus - это набор инструментов мониторинга и оповещения с открытым исходным кодом для реализации Kubernetes. Он собирает и хранит метрики в виде временных рядов. Это означает, что метрики хранятся с временными метками при записи, а также с дополнительными парами ключ-значение, называемыми метками.
В настоящее время Milvus использует следующие компоненты Prometheus:
- Конечная точка Prometheus для получения данных из конечных точек, установленных экспортерами.
- Оператор Prometheus для эффективного управления экземплярами мониторинга Prometheus.
- Kube-prometheus для обеспечения простого в управлении сквозного мониторинга кластера Kubernetes.
Имена метрик
Правильное имя метрики в Prometheus состоит из трех элементов: пространства имен, подсистемы и имени. Эти три элемента соединяются символом "_".
Пространство имен метрик Milvus, отслеживаемых Prometheus, - "milvus". В зависимости от роли, к которой принадлежит метрика, ее подсистема должна быть одной из следующих восьми ролей: "rootcoord", "proxy", "querycoord", "querynode", "indexcoord", "indexnode", "datacoord", "datanode".
Например, метрика Milvus, которая подсчитывает общее количество запрошенных векторов, называется milvus_proxy_search_vectors_count.
Типы метрик
Prometheus поддерживает четыре типа метрик:
- Счетчик: тип кумулятивной метрики, значение которой может только увеличиваться или обнуляться при перезапуске.
- Манометр: тип метрики, значение которой может как увеличиваться, так и уменьшаться.
- Гистограмма: тип метрик, которые подсчитываются на основе настраиваемых бакетов. Частым примером является длительность запроса.
- Сводка: тип метрики, похожий на гистограмму, который вычисляет настраиваемые квантили в скользящем временном окне.
Метки метрик
Prometheus различает выборки с одинаковым именем метрики, помечая их метками. Метка - это определенный атрибут метрики. Метрики с одинаковыми именами должны иметь одинаковое значение для поля variable_labels. В следующей таблице перечислены названия и значения общих меток метрик Milvus.
| Имя метки | Определение | Значения |
|---|---|---|
| "node_id" | Уникальный идентификатор роли. | Глобально уникальный идентификатор, генерируемый milvus. |
| "status" | Статус обработанной операции или запроса. | "abandon", "success" или "fail". |
| "query_type" | Тип запроса на чтение. | "поиск" или "запрос". |
| "msg_type" | Тип сообщений. | "вставка", "удаление", "поиск" или "запрос". |
| "segment_state" | Статус сегмента. | "Запечатан", "растет", "промыт", "промывка", "сброшен" или "импортируется". |
| "cache_state" | Состояние кэшированного объекта. | "Попадание" или "Промах". |
| "имя_кэша" | Имя кэшированного объекта. Эта метка используется вместе с меткой "cache_state". | Например, "CollectionID", "Schema" и т. д. |
| "имя_канала" | Физические темы в хранилище сообщений (Pulsar или Kafka). | Например, "by-dev-rootcoord-dml_0", "by-dev-rootcoord-dml_255" и т. д. |
| "имя_функции" | Имя функции, которая обрабатывает определенные запросы. | Например, "CreateCollection", "CreatePartition", "CreateIndex" и т. д. |
| "имя_пользователя" | Имя пользователя, используемое для аутентификации. | Имя пользователя по вашему усмотрению. |
| "index_task_status" | Статус индексной задачи в метахранилище. | "Невыполненная", "В процессе", "Не удалось", "Завершена" или "Переработана". |
Grafana в Milvus
Grafana - это стек визуализации с открытым исходным кодом, который может подключаться ко всем источникам данных. Выводя метрики, он помогает пользователям понимать, анализировать и контролировать массивные данные.
Milvus использует настраиваемые панели Grafana для визуализации метрик.
Что дальше
После изучения базового рабочего процесса мониторинга и оповещения вы узнаете: