我想根据输入请求进行Horizontal pod自动缩放。我查询了prometheus,它返回聚合的输入tps。
sum(sum by (path) (rate(dapr_http_server_request_count{app_id="governor",path=~"/v1.0/invoke/app/method/interceptor/.*"}[10s])))
我想在kubernetes HPA中使用此输出。
我正在使用普罗米修斯适配器。普罗米修斯的配置如下:
default: true
custom:
- seriesQuery: '{__name__=~"dapr_http_server_request_avg_.*",namespace!="",pod!=""}'
resources:
overrides:
namespace:
resource: namespace
pod:
resource: pod
name:
matches: "^(.*)_total"
as: "${1}_per_second"
metricsQuery: 'sum(sum by (path) (rate(dapr_http_server_request_count{app_id="governor",path=~"/v1.0/invoke/app/method/interceptor/.*"}[10s])))'
当我尝试在kubernetes的自定义api中获取输出时,它会返回。
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/app/pods/*/dapr_http_server_request_avg_total" | jq .
Error from server (NotFound): the server could not find the metric dapr_http_server_request_avg_total for pods
您应该检查您的prometheus适配器配置文件,这让我很困惑。
seriesQuery: dapr_http_server_request_avg_.*
metricsQuery: dapr_http_server_request_count
是否可以从上述系列中获得度量dapr_http_server_request_count
?
name:
matches: "^(.*)_total"
as: "${1}_per_second"
请注意,您的度量名称似乎已重命名,您应该为查询找到正确的度量名称。
试试这个:kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1
您将看到您的K8s Api服务器实际上从Prometheus Adapter获得了什么。