如何为普罗米修斯保留一些特殊指标?

how to keep some special metrics for prometheus?

我对 Prometheus 使用了以下配置,但没有发现 go_infogo_gc_duration_seconds 指标:

配置1

global:
  scrape_interval:     60s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 3s

    metric_relabel_configs:
    - action: keep
      source_labels:
      - __name__
      regex: go_info

    - action: keep
      source_labels:
      - __name__
      regex: go_gc_duration_seconds

    static_configs:
    - targets: ['localhost:9090']

使用以下配置时,我可以找到 go_infogo_gc_duration_seconds 指标:

配置2

global:
  scrape_interval:     60s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'ssli-prometheus'
    scrape_interval: 3s

    metric_relabel_configs:
    - action: keep
      source_labels:
      - __name__
      regex: go_info|go_gc_duration_seconds

    static_configs:
    - targets: ['localhost:9090']

如果我想保留很多指标,我必须将这些指标添加到 regex 字段,如下所示:

    metric_relabel_configs:
    - action: keep
      source_labels:
      - __name__
      regex: metrcis1|metrcis2|metrcis3|metrcis4......|metrcisN

我担心正则表达式太长,那么我可以配置多个 keep 操作来保留这些指标吗?像这样:

    metric_relabel_configs:
    - action: keep
      source_labels:
      - __name__
      regex: metrics1
    - action: keep
      source_labels:
      - __name__
      regex: metrics2
    - action: keep
      source_labels:
      - __name__
      regex: metrics3
      ...
    - action: keep
      source_labels:
      - __name__
      regex: metricsN

普罗米修斯支持RE2 syntax

您可以使用正则表达式简化您的配置。以下表达式选择名称以 metrics 开头的所有指标(即 metrics1,metrics2,....,metricsN)。

    - action: keep
      source_labels:
      - __name__
      regex: "metrics.*"