Метрики
etcd використовує Prometheus для обробки метрик. Метрики можуть бути використані для моніторингу та налагодження в реальному часі. etcd не зберігає свої метрики; якщо член перезапускається, метрики будуть скинуті.
Найпростіший спосіб побачити доступні метрики — це виконати cURL до точки доступу метрик /metrics. Формат описаний тут.
Слідуйте документації з початку роботи з Prometheus, щоб запустити сервер Prometheus для збору метрик etcd.
Назви метрик слідують рекомендованим кращим практикам 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 перевантажений. Це може статися при застосуванні дорогих запитів, таких як важкі запити діапазону або великі транзакційні операції.
proposals_pending вказує, скільки пропозицій знаходяться в черзі на затвердження. Зростання кількості очікуючих пропозицій свідчить про високе навантаження клієнтів або про те, що член не може затвердити пропозиції.
proposals_failed_total зазвичай повʼязані з двома проблемами: тимчасові збої, повʼязані з виборами лідера, або тривалі простої, викликані втратою кворуму в кластері.
Диск
Ці метрики описують стан дискових операцій.
Всі ці метрики мають префікс etcd_disk_.
| Назва | Опис | Тип | 
|---|---|---|
| wal_fsync_duration_seconds | Розподіл затримок fsync, викликаних wal | Histogram | 
| backend_commit_duration_seconds | Розподіл затримок commit, викликаних backend | 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.
Згенерований список метрик
| latest | 
Відгук
Чи це було корисним?
Раді чути! Будь ласка, повідомте нам, як ми можемо зробити краще.
Дуже шкода це чути. Будь ласка, повідомте нам, як ми можемо зробити краще.