我在k8s集群上配置OpenTelemetry,配置如下
- job_name: MYAPP
kubernetes_sd_configs:
- role: pod
metrics_path: /metrics
scrape_interval: 10s
relabel_configs:
- source_labels: [__meta_kubernetes_namespace]
action: keep
regex: (myapp.*|custom.*)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: pod
- source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_ip]
action: replace
regex: (.*);(.*)
replacement: $${2}-$${1}
target_label: instance
- source_labels: [__meta_kubernetes_pod_container_image]
action: replace
target_label: image
- source_labels: [__meta_kubernetes_pod_container_name]
action: replace
target_label: container
- source_labels: [__meta_kubernetes_pod_ip]
action: replace
regex: (.*)
replacement: $${1}:3000
target_label: __address__
我所有的微服务都暴露在http://<ip>:3000/metrics
应用程序指标上。我的集群有8个节点,超过100个微服务。
如何调试/列出OpenTelemetry检测到的所有目标?
我需要它,因为随机地,即使所有的服务都启动了&运行时,我错过了指标,kubernetes_sd_configs似乎没有使用一些目标。
那么如何调试如果抓取工作良好?
在Prometheus中使用/处理/监控up
指标:
up{job="<job-name>", instance="<instance-id>"}: 1 if the instance is healthy, i.e. reachable, or 0 if the scrape failed.
在你的例子中可以是:
up{job="MYAPP"}