【问题标题】:How can I relabel ECS cadvisor labels in prometheus config?如何在 prometheus 配置中重新标记 ECS cadvisor 标签?
【发布时间】:2021-01-21 19:29:29
【问题描述】:

我正在尝试从 prometheus 配置中的 cadvisor 重命名相同的标签。 cadvisor 名字太长了,所以我有以下配置用于重新标记。

  - job_name: 'cadvisor job foo'
scrape_interval: 60s
ec2_sd_configs:
  - role_arn: 'arn:aws:iam::$id:role/foo'
    region: 'us-west-2'
    port: 8484
relabel_configs:
  - source_labels: [__meta_container_label_com_amazonaws_ecs_cluster]
    target_label: cluster_name
  - source_labels: [__meta_container_label_com_amazonaws_ecs_container_name]
    target_label: container_name  

不幸的是,这似乎不起作用。 这甚至可以在 prometheus 配置中重新标记 cadvisor 标签吗?

【问题讨论】:

    标签: prometheus amazon-ecs cadvisor


    【解决方案1】:

    您确定标签__meta_container_label_com_amazonaws_ecs_cluster 存在吗?我在 AWS ECS 集群中运行 Cadvisor,并从 container_label_com_amazonaws_ecs_container_name 获取容器名称。它不是元标签,而是由 Cadvisor 从 Docker 标签中提取的。

    __meta.+ 标签由relabel_configs 检索。这是我的配置部分的样子:

    
      - job_name: cadvisor
        ec2_sd_configs:
          - region: eu-central-1
            port: 28080
            filters:
              - name: tag:aws:autoscaling:groupName 
                values:
                  - data-dev
                  - data-prod
    
        relabel_configs:
          - action: replace
            source_labels: [__meta_ec2_instance_id]
            target_label: instance_id
          - action: replace
            source_labels: [__meta_ec2_instance_state]
            target_label: instance_state
          - action: replace
            source_labels: [__meta_ec2_instance_type]
            target_label: instance_type
    
        metric_relabel_configs:
    
          # Drop series.
          - action: drop
            source_labels: [__name__]
            regex: "(container_tasks_state|container_cpu_load_average_10s)"
          
          # Drop all series that do not have a 'name' label.
          - action: keep
            source_labels: [name]
            regex: (.+)
    
          # Drop all series that do not have a '/ecs/' c group prefix and a proper 
          # container id after the third forword slash.
          - action: keep
            source_labels: [id]
            regex: ^/ecs/.+/.+
    
          # Drop label 'instance_type'.
          - action: labeldrop
            regex: instance_type
    
          # Rewrite 'id' label to only include short form container id.
          - action: replace
            source_labels: [id]
            target_label: id
            regex: ^/ecs/.+/(.{0,12}).*
            replacement: $1
    
          # Rename label task family.
          - action: replace
            source_labels: [container_label_com_amazonaws_ecs_task_definition_family]
            target_label: task_family
          - action: labeldrop
            regex: container_label_com_amazonaws_ecs_task_definition_family
    
          # Overwrite 'name' with value of container name label.
          - action: replace
            source_labels: [container_label_com_amazonaws_ecs_container_name]
            target_label: name
          - action: labeldrop
            regex: container_label_com_amazonaws_ecs_container_name
    
          # namespace
          - action: replace
            source_labels: [container_label_promstack_namespace]
            target_label: namespace
          - action: labeldrop
            regex: container_label_promstack_namespace
    
          # api_type
          - action: replace
            source_labels: [container_label_promstack_api_type]
            target_label: api_type
          - action: labeldrop
            regex: container_label_promstack_api_type
    

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多