无论是通过注释方法还是 prometheus
解决方法,我似乎都无法通过 ServiceMonitor
抓取我的目标。
这是我的 spec
对象的 Service
部分公开指标
spec:
clusterIP: 10.107.228.89
ports:
- name: metricsport
port: 8282
protocol: TCP
targetPort: 8282
selector:
app: my-app
release: my-app
sessionAffinity: None
type: ClusterIP
此确实公开指标,我通过curl
通过集群内的另一个 Pod 对其进行验证
curl http://my-service-metrics:8282/metrics
(...a lot of metrics)
这是我的 ServiceMonitor
spec
spec:
endpoints:
- path: /metrics
port: metricsport
namespaceSelector:
matchNames:
- default
selector:
matchLabels:
app: my-app
release: my-app
我还应该做什么/尝试让 prometheus
抓取我的指标?
(目标没有出现在我的http://prometheus/targets
中)
答案 0 :(得分:2)
在 Slack 中回答,需要确保 ServiceMonitor 对象本身上的标签与 Prometheus 对象上的 serviceMonitorSelector
匹配。