代码之家  ›  专栏  ›  技术社区  ›  Felipe

如何在普罗米修斯中使用两个度量来执行查询?

  •  0
  • Felipe  · 技术社区  · 7 年前

    我正在使用普罗米修斯查询Apache的度量标准。我想测量map函数每秒进出的记录数。当我在普罗米修斯中查询两个不同的度量时,图表只显示其中一个。

    flink_taskmanager_job_task_operator_numRecordsInPerSecond{operator_name="Map"} 
    or flink_taskmanager_job_task_operator_numRecordsOutPerSecond{operator_name="Map"}
    

    enter image description here 换个接线员也没关系 or and 是的。图表只显示第一个( flink_taskmanager_job_task_operator_numRecordsInPerSecond )中。我也尝试编辑普罗米修斯配置文件。 /etc/prometheus/prometheus.yml 但我对普罗米修斯没有太多经验,我的配置也有问题。我的解决方案是基于 this post 是的。

    global:
      scrape_interval: 15s
    
    scrape_configs:
      - job_name: 'prometheus'
        scrape_interval: 5s
        static_configs:
          - targets: ['localhost:9090']
      - job_name: 'node_exporter'
        scrape_interval: 5s
        static_configs:
          - targets: ['localhost:9100']   
      - job_name: 'flink'
        scrape_interval: 5s
        static_configs:
          - targets: ['localhost:9250', 'localhost:9251', '192.168.56.20:9250']
        metrics_path: /
    # HOW TO ADD THE OPERATOR NAME ON THE METRIC NAME?
        metric_relabel_configs:
          - source_labels: [__name__]
          regex: '(flink_taskmanager_job_task_operator)_(\w+)'
          replacement: '${2}'
          target_label: pool
          - source_labels: [__name__]
          regex: '(flink_taskmanager_job_task_operator)_(\w+)'
          replacement: '${1}_bytes'
          target_label: __name__
    
    0 回复  |  直到 7 年前
        1
  •  2
  •   Michał Politowski    7 年前

    首先,对于更复杂的图形,您必须调查 Grafana . 内置的普罗米修斯图对于调试是有用的,但绝对是有限的。特别是,一个图将只显示一个查询的结果。

    对于我绝对不推荐的黑客:

    flink_taskmanager_job_task_operator_numRecordsInPerSecond{operator_name="Map"}
    or
    label_replace(flink_taskmanager_job_task_operator_numRecordsOutPerSecond{operator_name="Map"}, "distinct", "foo", "job", ".*")
    

    从那以后, as documented

    vector1 or vector2 结果在包含所有原始元素(标签集+值)的向量中 vector1 以及 vector2 其中没有匹配的标签集 矢量1 是的。

    您可以在第一个向量的标签上添加一个不存在于第二个向量中的新标签,从而保留所有元素。

    推荐文章