Перейти к содержанию

Это многостраничная версия текущего раздела для печати. .

Вернуться к обычному виду страницы.

Метрики

Метрики для мониторинга и отладки в реальном времени

    Для публикации метрик etcd использует Prometheus . Метрики можно применять для мониторинга и отладки в реальном времени. etcd не сохраняет метрики: при перезапуске участника они сбрасываются.

    Проще всего просмотреть доступные метрики, запросив конечную точку /metrics с помощью cURL. Формат описан в документации Prometheus .

    Чтобы запустить сервер Prometheus для сбора метрик etcd, следуйте руководству Prometheus по началу работы .

    Имена метрик соответствуют рекомендуемым практикам Prometheus . Имя метрики содержит префикс пространства имён etcd или etcd_debugging и префикс подсистемы (например, wal и etcdserver).

    Метрики пространства имён etcd

    Метрики с префиксом etcd предназначены для мониторинга и оповещений. Это стабильные высокоуровневые метрики. Любое их изменение указывается в примечаниях к выпуску.

    Метрики, относящиеся к etcd2, описаны в руководстве по метрикам v2 .

    Сервер

    Эти метрики описывают состояние сервера etcd. Чтобы выявлять сбои и проблемы при устранении неполадок, следует внимательно отслеживать серверные метрики каждого рабочего кластера etcd.

    Все эти метрики имеют префикс etcd_server_

    ИмяОписаниеТип
    has_leaderСуществует ли лидер. 1 — существует, 0 — отсутствует.Gauge
    leader_changes_seen_totalКоличество обнаруженных смен лидера.Counter
    proposals_committed_totalОбщее количество зафиксированных предложений консенсуса.Gauge
    proposals_applied_totalОбщее количество применённых предложений консенсуса.Gauge
    proposals_pendingТекущее количество ожидающих предложений.Gauge
    proposals_failed_totalОбщее количество обнаруженных неудачных предложений.Counter

    has_leader показывает, есть ли у участника лидер. Если у участника нет лидера, он полностью недоступен. Если лидера нет ни у одного участника кластера, весь кластер полностью недоступен.

    leader_changes_seen_total подсчитывает количество смен лидера, замеченных участником с момента запуска. Частая смена лидера существенно снижает производительность etcd. Она также указывает на нестабильность лидера, возможно из-за проблем с сетевым соединением или чрезмерной нагрузки на кластер etcd.

    proposals_committed_total регистрирует общее количество зафиксированных предложений консенсуса. В исправном кластере этот индикатор должен со временем расти. Несколько исправных участников кластера etcd могут одновременно иметь разные общие количества зафиксированных предложений. Расхождение может быть связано с восстановлением по данным одноранговых узлов после запуска, отставанием от лидера или с тем, что участник сам является лидером и потому имеет больше всего фиксаций. Важно отслеживать эту метрику для всех участников кластера: устойчиво большое отставание одного участника от его лидера означает, что этот участник работает медленно или неисправен.

    proposals_applied_total регистрирует общее количество применённых предложений консенсуса. Сервер etcd применяет каждое зафиксированное предложение асинхронно. Разница между proposals_committed_total и proposals_applied_total обычно должна быть небольшой (не более нескольких тысяч даже при высокой нагрузке). Если она продолжает расти, сервер etcd перегружен. Такое возможно при выполнении дорогостоящих запросов, например тяжёлых диапазонных запросов или крупных операций txn.

    proposals_pending показывает количество предложений в очереди на фиксацию. Рост числа ожидающих предложений указывает на высокую клиентскую нагрузку либо на неспособность участника фиксировать предложения.

    proposals_failed_total обычно связано с двумя проблемами: временными сбоями во время выборов лидера или более длительным простоем из-за потери кворума в кластере.

    Диск

    Эти метрики описывают состояние дисковых операций.

    Все эти метрики имеют префикс etcd_disk_.

    ИмяОписаниеТип
    wal_fsync_duration_secondsРаспределение задержки вызова fsync подсистемой walHistogram
    backend_commit_duration_secondsРаспределение задержки вызова commit бэкендом.Histogram

    wal_fsync вызывается, когда etcd сохраняет записи журнала на диск перед их применением.

    backend_commit вызывается, когда etcd фиксирует на диске инкрементный снимок последних изменений.

    Высокая задержка дисковых операций (wal_fsync_duration_seconds или backend_commit_duration_seconds) часто указывает на проблемы с диском. Она может привести к высокой задержке запросов или сделать кластер нестабильным.

    Сеть

    Эти метрики описывают состояние сети.

    Все эти метрики имеют префикс etcd_network_

    ИмяОписаниеТип
    peer_sent_bytes_totalОбщее количество байтов, отправленных одноранговому узлу с ID To.Counter(To)
    peer_received_bytes_totalОбщее количество байтов, полученных от однорангового узла с ID From.Counter(From)
    peer_sent_failures_totalОбщее количество сбоев отправки одноранговому узлу с ID To.Counter(To)
    peer_received_failures_totalОбщее количество сбоев получения от однорангового узла с ID From.Counter(From)
    peer_round_trip_time_secondsГистограмма времени прохождения туда и обратно между одноранговыми узлами.Histogram(To)
    client_grpc_sent_bytes_totalОбщее количество байтов, отправленных клиентам grpc.Counter
    client_grpc_received_bytes_totalОбщее количество байтов, полученных от клиентов grpc.Counter

    peer_sent_bytes_total подсчитывает общее количество байтов, отправленных определённому одноранговому узлу. Обычно участник-лидер отправляет больше данных, чем остальные участники, поскольку отвечает за передачу реплицированных данных.

    peer_received_bytes_total подсчитывает общее количество байтов, полученных от определённого однорангового узла. Обычно участники-последователи получают данные только от участника-лидера.

    Запросы gRPC

    Эти метрики предоставляются через go-grpc-prometheus .

    Метрики пространства имён etcd_debugging

    Метрики с префиксом etcd_debugging предназначены для отладки. Они сильно зависят от реализации и нестабильны. В новых выпусках etcd они могут изменяться или удаляться без предупреждения. По мере стабилизации некоторые метрики могут быть перенесены под префикс etcd.

    Снимок

    ИмяОписаниеТип
    snapshot_save_total_duration_secondsОбщее распределение задержки вызова сохранения снимкомHistogram

    Аномально большая длительность создания снимка (snapshot_save_total_duration_seconds) указывает на проблемы с диском и может сделать кластер нестабильным.

    Метрики, предоставляемые Prometheus

    Клиентская библиотека Prometheus предоставляет ряд метрик в пространствах имён go и process. Некоторые из них особенно полезны.

    ИмяОписаниеТип
    process_open_fdsКоличество открытых файловых дескрипторов.Gauge
    process_max_fdsМаксимальное количество файловых дескрипторов.Gauge
    Примечание

    Метрики процесса, такие как process_open_fds и process_max_fds, в настоящее время не поддерживаются в системах Darwin (macOS).

    Интенсивное использование файловых дескрипторов (process_open_fds), то есть приближение к их лимиту для процесса (process_max_fds), указывает на возможное исчерпание файловых дескрипторов. При их исчерпании etcd может аварийно завершиться, поскольку не сможет создавать новые файлы WAL.

    Сгенерированный список метрик