#kubernetes #prometheus
Вопрос:
Можно ли масштабировать модуль на основе метрики в Prometheus, которая была удалена из другого модуля, а не из масштабируемого модуля?
модуль репортера, который сообщает метрики
рабочему модулю Prometheus, который должен быть масштабирован в соответствии с этой метрикой
В «Прометее» у меня есть метрика, которая была соскоблена с модуля «репортер-1»:
custom_metric{endpoint="http",job="reporter",namespace="ns1",pod="reporter-1",service="reporter"} 1
Я также создал фиктивную метрику (pod=рабочий) в prometheus:
custom_metric{endpoint="http",job="reporter",namespace="ns1",pod="worker-1",service="reporter"} 2
Я хочу использовать эту метрику (1) для масштабирования рабочих модулей
настраиваемая метрика api:
kubectl get --raw="/apis/custom.metrics.k8s.io/v1beta1/namespaces/ns1/pods/*/custom_metric" | jq .
выход:
{
"kind": "MetricValueList",
"apiVersion": "custom.metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/ns1/pods//custom_metric"
},
"items": [
{
"describedObject": {
"kind": "Pod",
"namespace": "ns1",
"name": "worker-1",
"apiVersion": "/v1"
},
"metricName": "custom_metric",
"timestamp": "2021-10-06T16:25:26Z",
"value": "2",
"selector": null
}
]
}
Это неверная метрика! Я ожидаю, что получу :
«значение»: «1» , которое исходит от репортера-1
от HPA:
spec:
maxReplicas: 5
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: worker
from promotheus afapter config map:
rules:
- seriesQuery: custom_metric{namespace="ns1",service="reporter}
seriesFilters: []
resources:
overrides:
namespace:
resource: namespace
pod:
resource: pod
name:
matches: custom_metric
as: custom_metric
metricsQuery: custom_metric{namespace="ns1",service="reporter}