我使用mongodb-exporter来存储/通过prometheus查询度量。我已经设置了一个自定义度量服务器,并为此存储了值。
这就是prometheus-exporter和custom-metric-server兼容的证据。
查询:
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/monitoring/pods/*/mongodb_mongod_wiredtiger_cache_bytes"结果:
{"kind":"MetricValueList","apiVersion":"custom.metrics.k8s.io/v1beta1","metadata":{"selfLink":"/apis/custom.metrics.k8s.io/v1beta1/namespaces/monitoring/pods/%2A/mongodb_mongod_wiredtiger_cache_bytes"},"items":[{"describedObject":{"kind":"Pod","namespace":"monitoring","name":"mongo-exporter-2-prometheus-mongodb-exporter-68f95fd65d-dvptr","apiVersion":"/v1"},"metricName":"mongodb_mongod_wiredtiger_cache_bytes","timestamp":"TTTTT","value":"0"}]}在我的例子中,当我为来自mongo出口商的这个自定义度量标准创建一个hpa时,hpa将此错误返回给我:
failed to get mongodb_mongod_wiredtiger_cache_bytes utilization: unable to get metrics for resource mongodb_mongod_wiredtiger_cache_bytes: no metrics returned from resource metrics API我的案子的主要问题是什么?我检查了所有的吐露和流动看起来很好,但哪里是我的错误。
帮助
谢谢:)
发布于 2019-10-14 13:12:02
您在评论中写道,您已经启用了external.metrics,但是在最初的问题中,您对custom.metrics有问题。
简言之:
metrics只支持基本的度量,如CPU或内存。custom.metrics允许您将基本度量扩展到所有Kubernetes对象(http_requests、荚数等)。external.metrics允许收集不是Kubernetes对象的度量:外部度量允许您根据监视系统中可用的任何度量自动调整集群的规模。只需提供一个具有名称和选择器的度量块,如上面所示,并使用外部度量类型而不是对象。
有关更详细的描述,请查看这位医生。
Minikube
要验证是否启用了custom.metrics,您需要在下面执行命令,并检查是否可以看到任何metrics-server... pod。
$ kubectl get pods -n kube-system
...
metrics-server-587f876775-9qrtc 1/1 Running 4 5d1h第二种方法是检查minikube是否通过
$ minikube addons list
...
- metrics-server: enabled如果它被禁用,只需执行
$ sudo minikube addons enable metrics-server
✅ metrics-server was successfully enabledGKE
目前,在GKE,heapster和metrics-server是默认打开的,但是默认情况下不支持custom.metrics。您必须安装prometheus adapter或stackdriver。
Kubeadm
在开始时,Kubeadm不包括heapster或metrics server。为了便于安装,您可以使用这个YAML。
稍后,您必须安装prometheus adapter。
应用custom.metrics
Minikube,Kubeadm,GKE也是一样。
应用custom.metrics的最简单方法是通过Helm安装普罗米修斯适配器。
安装舵机后,您将看到注意事项:
NOTES:
my-release-prometheus-adapter has been deployed.
In a few minutes you should be able to list metrics using the following command(s):
kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1作为附加信息,您可以使用jq获得更友好的输出。
kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq .
https://stackoverflow.com/questions/58151513
复制相似问题