gpt4 book ai didi

kubernetes - 每个 pod 的多个指标端点的 Prometheus 抓取配置

转载 作者:行者123 更新时间:2023-12-05 06:36:56 24 4
gpt4 key购买 nike

我们有一个 Kubernetes Pod,它提供了多个指标端点(:3093/metrics:9113/metrics),但它也有一个端口不提供任何指标 (:80)。

TL;DR:是否可以仅抓取端口 30939113


我们正在使用 the example configuration对于抓取配置:

- job_name: 'kubernetes-pods'
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- 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_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name

当使用此注解启用抓取时,这些端点会被正确抓取:

  annotations:
prometheus.io/scrape: "true"

但这有一个问题,它也抓取端口 :80,这是不应该的。

最佳答案

概述的建议here允许为每个 pod 抓取多个端点。这个想法是为容器端口提供自定义名称,这些端口必须被删除,因此这些名称可以在以后为发现的目标重新标记阶段使用。例如,以下配置将 prom-metrics 名称添加到端口 3093 和 9113,这两个端口必须由 Prometheus 抓取。请注意,端口 80 没有 prom-metrics 名称,因此不会被抓取。

containers:
- name: custom-app
image: github.com/user/app:latest
ports:
- containerPort: 80
- containerPort: 3093
name: prom-metrics
- containerPort: 9113
name: prom-metrics

稍后,以下抓取配置可用于抓取名称为 prom-metrics 的容器端口:

  - job_name: 'pods-with-prom-metrics'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_container_port_name]
regex: prom-metrics
action: keep
- source_labels: [__address__, __meta_kubernetes_pod_container_port_number]
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_pod_container_name]
target_label: container
- source_labels: [__meta_kubernetes_pod_name]
target_label: pod
- source_labels: [__meta_kubernetes_namespace]
target_label: namespace

关于kubernetes - 每个 pod 的多个指标端点的 Prometheus 抓取配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48645986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com