HPA使用k8s自定义prometheus查询



我想根据输入请求进行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获得了什么。

相关内容

  • 没有找到相关文章

最新更新