# Метрики для станів обʼєктів Kubernetes

> kube-state-metrics — це агент-надбудова для генерації та надання метрик на рівні кластера.

---

LLMS index: [llms.txt](/llms.txt)

---

Стан обʼєктів Kubernetes у Kubernetes API може бути поданий у вигляді метрик. Агент-надбудова [kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) може підключатися до сервера Kubernetes API та надавати доступ до точки доступу з метриками, що генеруються зі стану окремих обʼєктів у кластері. Він надає різні дані про стан обʼєктів, такі як мітки та анотації, час запуску та завершення, статус або фазу, в яких обʼєкт знаходиться зараз. Наприклад, контейнери, що працюють у Podʼах, створюють метрику `kube_pod_container_info`. Вона включає імʼя контейнера, імʼя Podʼа, до якого він належить, простір імен, в якому працює Pod, імʼя образу контейнера, ідентифікатор образу, імʼя образу з специфікації контейнера, ідентифікатор працюючого контейнера та ідентифікатор Podʼа як мітки.

<div class="alert alert-secondary callout third-party-content" role="note">&#128711; Цей елемент посилається на сторонній проєкт або продукт, який не є частиною Kubernetes. <a class="alert-more-info" href="#third-party-content-disclaimer">Докладніше</a></div>


Зовнішній компонент, який може збирати дані з точки доступу kube-state-metrics (наприклад, за допомогою Prometheus), можна використовувати для реалізації наступних сценаріїв використання.

## Приклад: використання метрик з kube-state-metrics для запиту стану кластера {#example-kube-state-metrics-query-1}

Серії метрик, що генеруються kube-state-metrics, допомагають отримати додаткові уявлення про кластер, оскільки їх можна використовувати для запитів.

Якщо ви використовуєте Prometheus або інструмент, який використовує ту саму мову запитів, наступний запит PromQL поверне кількість Podʼів, які не готові:

```console
count(kube_pod_status_ready{condition="false"}) by (namespace, pod)
```

## Приклад: сповіщення на основі kube-state-metrics {#example-kube-state-metrics-alert-1}

Метрики, що генеруються з kube-state-metrics, також дозволяють сповіщати про проблеми в кластері.

Якщо ви використовуєте Prometheus або схожий інструмент, який використовує ту саму мову правил сповіщень, наступне сповіщення буде активовано, якщо є Podʼи, які перебувають у стані `Terminating` протягом понад 5 хвилин:

```yaml
groups:
- name: Pod state
  rules:
  - alert: PodsBlockedInTerminatingState
    expr: count(kube_pod_deletion_timestamp) by (namespace, pod) * count(kube_pod_status_reason{reason="NodeLost"} == 0) by (namespace, pod) > 0
    for: 5m
    labels:
      severity: page
    annotations:
      summary: Pod {{$labels.namespace}}/{{$labels.pod}} blocked in Terminating state.
```
