我们在 k8s 上的全局 Prometheus 抓取间隔是 60s ,但我希望一个应用程序具有 300s 抓取间隔。
我将以下内容附加到我的 pod 中,因此指标是 刮取的

prometheus.io/scrape: 'true'
prometheus.io/port: '{{ .Values.prometheus.port }}'
prometheus.io/path: '{{ .Values.prometheus.path }}'
现在我想特别减慢这个应用程序的频率,并测试
prometheus.io/interval: '300s'
但是它不起作用。我认为它需要 relabel ,或任何其他建议?
https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml#L251

最佳答案

我想补充一些细节。如果您使用 Prometheus Helm 官方图表,这应该在您的 values-prometheus.yaml 文件中:

# extra scraping configs
# | is required, because extraScrapeConfigs is expected to be a string
extraScrapeConfigs: |
  - job_name: 'kubernetes-service-endpoints-scrape-every-2s'

    scrape_interval: 2s

    kubernetes_sd_configs:
      - role: endpoints

    relabel_configs:
      #Custom
      - source_labels: [__meta_kubernetes_service_annotation_example_com_scrape_every_2s]
        action: keep
        regex: true

      # Boilerplate
      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
        action: replace
        target_label: __scheme__
        regex: (https?)
      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
        action: replace
        target_label: __address__
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
      - action: labelmap
        regex: __meta_kubernetes_service_label_(.+)
      - source_labels: [__meta_kubernetes_namespace]
        action: replace
        target_label: kubernetes_namespace
      - source_labels: [__meta_kubernetes_service_name]
        action: replace
        target_label: kubernetes_name
      - source_labels: [__meta_kubernetes_pod_node_name]
        action: replace
        target_label: kubernetes_node
升级现有(默认)安装:
helm upgrade prometheus --values values-prometheus.yaml stable/prometheus
在服务或 pod 上,您现在可以添加这些注释:
prometheus.io/path: /metrics
prometheus.io/port: "9090"
example.com/scrape_every_2s: "true"
删除原始的 prometheus.io/scrape: "true" ,否则您的服务将显示为两个单独的 Prometheus 目标,这可能不是您想要的。

关于kubernetes - 减少一个 Pod 在 k8s 上的 Prometheus 抓取间隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58199740/

10-15 23:02