簡體   English   中英

從同一個 Kubernetes pod 中的兩個端點抓取 Prometheus 指標

[英]Scrape Prometheus metrics from two endpoints in the same Kubernetes pod

使用這個示例普羅米修斯配置:

- 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

我有一個公開兩個度量路徑的 pod。 一個在這里 /metrics/prometheus 和另一個 /metrics/executors/prometheus 在同一個端口上。

如何使用此示例配置來使用服務發現和抓取兩者?

你實現了嗎? 我對同樣的問題感到震驚。 我可以通過在廢棄配置文件中進行多個作業來在本地 Prometheus 設置上執行此操作。 但我無法在 Kubernetes 上復制它。 (由於聲譽較低,無法發表評論,所以在這里回復。我道歉!!!)

您應該在服務而不是 Pod 上使用注解。 這樣,您可以創建兩個服務,指向同一個 pod,同時設置不同的注釋來設置您的抓取路徑。

切換這個:

- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
  action: replace
  target_label: __metrics_path__
  regex: (.+)

對於那個:

- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
  action: replace
  target_label: __metrics_path__
  regex: (.+)

然后,將您的 prometheus.io/path 注釋從 Pods 移動到 Services。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM