Kubernetes / Прометей Метрики Несоответствие - PullRequest
1 голос
/ 15 мая 2019

У меня есть приложение, работающее в Kubernetes (Azure AKS), в котором каждый модуль содержит два контейнера.У меня также есть Grafana, настроенный для отображения различных метрик, некоторые из которых поступают от Прометея.Я пытаюсь устранить отдельную проблему и при этом заметил, что некоторые показатели не совпадают между источниками данных.

Например, kube_deployment_status_replicas_available возвращает значение 30, тогда как kubectl -n XXXXXXXX get pod перечисляет 100, все из которых находятся в рабочем состоянии, а kube_deployment_status_replicas_unavailable возвращает значение 0. Кроме того, если я получаю рассматриваемое развертывание с помощью kubectl, я вижу ожидаемое значение.

$ kubectl get deployment XXXXXXXX
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
XXXXXXXX   100       100       100          100         49d

Тамдругие приложения (пространства имен) в том же кластере, где все значения соотносятся корректно, поэтому я не уверен, где может быть ошибка или есть ли какой-нибудь способ узнать наверняка, какое значение является правильным.Любое руководство будет оценено.Спасибо

1 Ответ

2 голосов
/ 16 мая 2019

Исходя из наличия метрики kube_deployment_status_replicas_available, я предполагаю, что Прометей очищает ваши метрики от kube-state-metrics .Похоже, что-то необычное в его развертывании.Это может быть:

  • Кэшированные данные метрики
  • И / или просто он не может получить текущие метрики из kube-apiserver

Я бы:

  • Проверьте версию, которую вы используете для kube-state-metrics и посмотрите, совместима ли она с вашей версией K8s.
  • Перезапустите модуль kube-state-metrics.
  • Проверьте журналы kubectl logs kube-state-metrics`
  • Проверьте журналы Prometheus
    • Если вы ничего не видитепопробуйте запустить Prometheus с флагом --log.level=debug.

Надеюсь, это поможет.

...