#kubernetes #prometheus #metrics #prometheus-operator
#kubernetes #prometheus #показатели #prometheus-operator
Вопрос:
У меня есть кластер k8s, если prometheus-operator (мониторинг пространства имен) и prometheus-adapter установлены с использованием диаграмм helm. Я могу извлекать метрики из другого пространства имен (скажем, rabbitmq) с помощью prometheus-operator, а prometheus-adapter может получать пользовательские метрики:
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/rabbitmq/services/rabbitmq-server/rabbitmq_queue_messages" | jq .
{
"kind": "MetricValueList",
"apiVersion": "custom.metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/rabbitmq/services/rabbitmq-server/rabbitmq_queue_messages"
},
"items": [
{
"describedObject": {
"kind": "Service",
"namespace": "rabbitmq",
"name": "rabbitmq-server",
"apiVersion": "/v1"
},
"metricName": "rabbitmq_queue_messages",
"timestamp": "2020-08-20T12:15:39Z",
"value": "0",
"selector": null
}
]
}
Вот моя конфигурация prometheus-adapter:
prometheus:
url: http://pmt-server-prometheus-oper-prometheus.monitoring.svc
port: 9090
rbac:
create: true
serviceAccount:
create: true
service:
port: 443
logLevel: 6
rules:
custom:
- seriesQuery: 'rabbitmq_queue_messages{namespace!="",service!=""}'
resources:
overrides:
namespace: {resource: "namespace"}
service: {resource: "service"}
metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>,queue="task_queue"}) by (<<.GroupBy>>)
Проблема в том, что эти метрики являются ограниченными пространствами имен, поэтому я могу использовать эту метрику только внутри того же пространства имен rabbitmq. Есть ли способ экспортировать эти показатели во все пространства имен, чтобы я мог масштабировать развертывания в других пространствах имен (например, пространство имен по умолчанию)? Другими словами, сделайте метрики не привязанными к пространству имен?
Комментарии:
1. Вы нашли решение для этого?
2. Я думаю, что я сталкиваюсь с той же проблемой, у меня есть мой rabbitmq в пространстве имен rabbitmq, prometheus и адаптер в пространстве имен monitoring, а HPA, prometheus-rule и my-deployment в пространстве имен my-app. Затем HPA «не может извлекать показатели из пользовательского API metrics», но если я установлю rabbit в пространство имен my-app, все заработает. Есть решение для этого? @niclaszll