我正在尝试使用prometheus kubernetes来刮取pod级信息。这是我正在使用的配置:
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- api_servers:
- 'https://kubernetes.default'
role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: (.+):(?:\d+);(\d+)
replacement: ${1}:${2}
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_pod_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
但我没有看到关于grafana的任何信息。我是否需要对我的应用进行任何更改? snapshot
答案 0 :(得分:2)
使用该配置,第一个操作要求使用prometheus.io/scrape=true
注释pod。您是否在相关的pod上设置了注释?
答案 1 :(得分:1)
请注意,
这里有一个配置错误: __ meta_kubernetes_pod_namespace 不存在且应为 __ meta_kubernetes_namespace
致以最诚挚的问候,
巴特
答案 2 :(得分:0)
您应该确保您的Grafana图表使用的数据实际存在于普罗米修斯。
我假设您使用此默认Grafana dashboard。
您的Grafana查询可能如下所示:
sum (container_memory_working_set_bytes{pod_name=~"^$Pod$"}) / sum (machine_memory_bytes{kubernetes_io_hostname=~"^$Node$"}) * 100
因此,您必须确保记录container_memory_working_set_bytes
指标,并确保其中包含pod_name
字段。
如果未记录指标,您必须在prometheus的日志中进行一些挖掘,以检查它是否能够抓取API。
如果指标存在,但标签错误,您可以在Grafana中调整查询,也可以在Prometheus中添加另一个relabel_config
。请参阅official documentation。