Прометей Адаптер пользовательских метрик HPA

Я следовал за этой прогулкой (частично, я использую EKS. https://itnext.io/horizontal-pod-autoscale-with-custom-metrics-8cb13e9d475

Мне удается увеличить масштаб одного развертывания с помощью этой метрики http_requests_total.

Сейчас я пытаюсь добавить новую метрику. У меня есть сервер Прометей, и он уже выскабливает Cloudwatch и у меня есть aws_sqs_approximate_age_of_oldest_message_maximum значение там для многих моих очередей.

По аналогии с упомянутым руководством я добавляю определение метрики:

  - seriesQuery: 'http_requests_total{kubernetes_namespace!="",kubernetes_pod_name!=""}'
    resources:
      overrides:
       kubernetes_namespace: {resource: "namespace"}
       kubernetes_pod_name: {resource: "pod"}
    name:
      matches: "^(.*)_total"
      as: "${1}_per_second"
    metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[2m])) by (<<.GroupBy>>)'

против

  - seriesQuery: 'aws_sqs_approximate_age_of_oldest_message_maximum{queue_name!=""}'
    resources:
      overrides:
       kubernetes_namespace: {resource: "namespace"}
       kubernetes_pod_name: {resource: "pod"}
    metricsQuery: '<<.Series>>{<<.LabelMatchers>>}'

Или какая-то версия нижнего. Но я никогда не смогу увидеть это в:kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq

Неважно, что я пытаюсь.

Есть идеи как двигаться дальше? Спасибо!

0 ответов

Если вы не видите показатель в /apis/custom.metrics.k8s.io/v1beta1 это означает, что адаптер Prometheus не смог его обнаружить.

Адаптер Prometheus обнаруживает метрики, используя значение вашего seriesQuery поле для /api/v1/series запрос к Прометею (выполняется периодически с частотой, определяемой интервалом списка).

Что стоит попробовать:

  • Что вы получите, если сделаете Прометею следующий запрос?

    http://<prometheus-ip>:9090/api/v1/series? match[]=aws_sqs_approximate_age_of_oldest_message_maximum{queue_name!=""}&start=<current-timestamp-sec>
    
  • Что вы получите, если поместите следующее в текстовое поле запроса пользовательского интерфейса Prometheus и нажмете "Выполнить"?

    aws_sqs_approximate_age_of_oldest_message_maximum{queue_name!=""}
    

Если вы не получите никаких данных в любом случае, значит, в Prometheus просто нет временных рядов, соответствующих вашему seriesQuery Спецификация.

Другие вопросы по тегам