很多童鞋在群里面反饋 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