Prometheus之metric_relabel_configs和relabel_config的區別


很多童鞋在群里面反饋 relabel_configs 和 metric_relabel_configs 兩個配置使用區別。都是relabel

譬如relabel_configs的relabel如下:

- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    separator: ;
    regex: "true"
    replacement: $1
    action: keep
  - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
    separator: ;
    regex: ([^:]+)(?::\d+)?;(\d+)
    target_label: __address__
    replacement: $1:$2
    action: replace
  - separator: ;
    regex: (.*)
    target_label: cluster
    replacement: test
    action: replace

metric_relabel_configs的relabel如下:

 metric_relabel_configs:
  - source_labels: [image]
    regex: '.*/(.*)'
    replacement: '$1'
    target_label: id
  - source_labels: [service]
    regex: 'ecs-.*:ecs-([a-z]+-*[a-z]*).*:[0-9]+'
    replacement: '$1'
    target_label: service

看着很相似,但relabel_configs是針對target指標采集前和采集中的篩選,而metric_relabel_configs是針對指標采集后的篩選。

譬如relabel_configs drop動作,

  relabel_configs:
      - source_labels: [__meta_ec2_tag_Name]
        regex: Example.*
        action: drop

那么將不會收集這個指標。而metric_relabel_configs使用的時候指標已經采集過了

  metric_relabel_configs:
  - source_labels: [__name__]
    regex: '(container_tasks_state|container_memory_failures_total)'
    action: drop

所以metric_relabel_configs相對來說,更加昂貴,畢竟指標已經采集了。

metric_relabel_configs還可以不用指定source_labels

  metric_relabel_configs:
  - regex: 'container_label_com_amazonaws_ecs_task_arn'
    action: labeldrop

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM