我正在使用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
我的案件的主要问题是什么?我检查了所有配置,流程看起来还不错,但是我的错误在哪里?
帮助
谢谢:)
答案 0 :(得分:1)
您在评论中写道,您启用了external.metrics
,但是在原始问题中,您遇到了custom.metrics
的问题
简而言之:
metrics
仅支持CPU或内存之类的基本指标。custom.metrics
允许您将基本指标扩展到所有Kubernetes对象(http_requests,pod数量等)。external.metrics
允许收集不是Kubernetes对象的指标:外部指标可让您根据任何条件自动扩展群集 监控系统中可用的指标。只需提供一个指标 带有名称和选择器的代码块,如上所述,并使用“外部”指标 类型而不是对象
有关详细说明,请检查this doc。
Minikube
要验证是否启用了custom.metrics
,您需要执行以下命令并检查是否可以看到任何metrics-server...
窗格。
$ kubectl get pods -n kube-system
...
metrics-server-587f876775-9qrtc 1/1 Running 4 5d1h
第二种方法是检查minikube
是否通过{p>
metrics-server
如果已禁用,请执行
$ minikube addons list
...
- metrics-server: enabled
GKE
当前在GKE,$ sudo minikube addons enable metrics-server
✅ metrics-server was successfully enabled
和heapster
默认打开,但默认情况下不支持metrics-server
。
您必须安装custom.metrics
或prometheus adapter
。
Kubeadm
Kubeadm开头不包含stackdriver
或heapster
。为了易于安装,您可以使用this YAML。
稍后您必须安装metrics server
。
应用custom.metrics
prometheus adapter
,Minikube
,Kubeadm
都是相同的。
应用GKE
的最简单方法是通过custom.metrics
安装prometheus adapter。
安装头盔后,您将看到注释:
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