Прометей Адаптер пользовательских метрик 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
Спецификация.