#kubernetes #rabbitmq #prometheus #kubernetes-helm
#kubernetes #rabbitmq #prometheus #kubernetes-helm
Вопрос:
Я не могу извлекать элементы, выполнив эту команду: kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/rabbitmq_queue_messages_ready" | jq
Как вы можете видеть в приведенных ниже выходных элементах, это пустой массив:
{
"kind": "ExternalMetricValueList",
"apiVersion": "external.metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/rabbitmq_queue_messages_ready"
},
"items": []
}
Тем не менее, я получаю правильные данные в конечной точке prometheus:
URL Prometheus: http://<prometheus_url>:9090/api/v1/series?match[]={__name__=~»^rabbitmq_queue_.*»}amp;start=1597255421.51
Ответ:
{
"status":"success",
"data":[
{
"__name__":"rabbitmq_queue_messages_ready",
"app":"prometheus-rabbitmq-exporter",
"durable":"true",
"instance":"10.2.0.73:9419",
"job":"kubernetes-pods",
"namespace":"default",
"pod_name":"rabbitmq-exporter-prometheus-rabbitmq-exporter-754c845847-gzlrq",
"pod_template_hash":"754c845847",
"queue":"test",
"release":"rabbitmq-exporter",
"vhost":"/"
},
{
"__name__":"rabbitmq_queue_messages_ready",
"app":"prometheus-rabbitmq-exporter",
"durable":"true",
"instance":"10.2.0.73:9419",
"job":"kubernetes-pods",
"namespace":"default",
"pod_name":"rabbitmq-exporter-prometheus-rabbitmq-exporter-754c845847-gzlrq",
"pod_template_hash":"754c845847",
"queue":"test1",
"release":"rabbitmq-exporter",
"vhost":"/"
}
]
}
Я установил, stable/prometheus-adapter
используя приведенные ниже значения helm:
rules:
default: false
external:
- seriesQuery: '{__name__=~"^rabbitmq_queue_.*"}'
resources:
#template: <<.Resource>>
overrides:
namespace:
resource: namespace
service:
resource: service
pod:
resource: pod
name:
matches: ""
as: "rabbitmq_queue_messages_ready"
metricsQuery: 'rate(<<.Series>>{<<.LabelMatchers>>}[1m])'
Версии Helm и Kubernetes:
Клиент: и версия.Версия{SemVer: «v2.16.9», GitCommit: «8ad7037828e5a0fca1009dabe290130da6368e39», GitTreeState: «чистый»} Сервер: amp;версия.Версия{SemVer: «v2.16.7», GitCommit: «5f2584fd3d35552c4af26036f0c464191287986b», GitTreeState: «чистый»}
Версия клиента: version.Info{Major: «1», Minor: «16», GitVersion: «v1.16.1», GitCommit: «d647ddbd755faf07169599a625faf302ffc34458», GitTreeState: «чистый», BuildDate: «2019-10-02T17:01:15Z», GoVersion: «go1.12.10», Компилятор: «gc», Платформа: «darwin/amd64»} Версия сервера: version.Info{Major: «1», Minor: «15», GitVersion: «v1.15.11», GitCommit: «ec831747a3a5896dbdf53f259eafea2a2595217c», GitTreeState: «чистый», BuildDate: «2020-05-29T19:56:10Z», GoVersion: «go1.12.17», Компилятор: «gc», Платформа: «linux /amd64»}
Ожидаемый результат: он должен извлекать показатели из Prometheus
Как это воспроизвести: Установите stable/prometheus-rabbitmq-exporter
и stable/prometheus-adapter
запустите диаграммы, используя приведенные выше конфигурации.
Я следую этому руководству: https://nuvalence.io/building-a-k8s-autoscaler-with-custom-metrics /
Комментарии:
1. Просто для уточнения, вы используете какого-либо облачного провайдера или его локальную среду?
2. @PjoterS Я использую AKS
Ответ №1:
Для дальнейшего устранения вашей проблемы в первую очередь я бы проверил пару вещей в настройках вашего prom-адаптера:
- Видите ли вы какие-либо ошибки в журналах адаптера Prometheus при получении показателей напрямую с помощью
"kubectl get --raw ..."
команды? - В какое пространство имен вы установили свой
prometheus-adapter
? (спрашиваю, потому что раньше я наблюдал ошибки, связанные с RBAC, в журналах адаптера при развертывании на другой ns, отличной от «kube-system») - Не могли бы вы, пожалуйста, вставить содержимое вашей окончательной
/etc/adapter/config.yaml
конфигурации prom-adapter (из модуля prom-adapter)
Я без проблем предоставляю те же внешние показатели rabbitmq с адаптером, проверьте вывод из той же команды:
{
"kind": "ExternalMetricValueList",
"apiVersion": "external.metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/rabbitmq_queue_messages_ready"
},
"items": [
{
"metricName": "rabbitmq_queue_messages_ready",
"metricLabels": {
"endpoint": "metrics",
"instance": "10.64.1.97:9419",
"job": "rabbitmq",
"namespace": "default",
"pod": "rabbitmq-0",
"service": "rabbitmq"
},
"timestamp": "2020-08-13T23:50:29Z",
"value": "174160m"
}
]
}
Используемая версия prom-адаптера: directxman12/k8s-prometheus-adapter-amd64:v0.6.0
// Для большей наглядности (форматирование фрагментов кода и т.д.) использую сообщение сообщества wiki.)
Комментарии:
1. Спасибо за ваш подробный ответ по устранению неполадок. Я обнаружил, что использую
prometheus-adapter
withkube-metrics-adapter
. Я удалилkube-metrics-adapter
, и это сработало.