【问题标题】:graphite vs prometheus query differences石墨与普罗米修斯查询差异
【发布时间】:2020-07-16 14:51:39
【问题描述】:

我目前正在将我的指标从 statsd 转移到 prometheus

我正在努力将查询从 statsD 语法转换为 prometheus。我不清楚这一点,正在寻找一些比较两者的文档。特别是这个范围语法 [5m] 和速率等。它没有清楚地转换为 statsD 语言。

在此示例中,我想测量并绘制正在处理的事件的平均延迟时间,从创建事件的时间戳(事件的属性)到代码本身报告指标的当前时间:

伪:

def processEvent(event) 
  eventTime = event.timestamp
  now = Now()
  lag = now - eventTime
   ...
  statsD.time(...metric_name(event.feed,event.action)..., lag)

statsD 查询如下所示:

groupByNode(stats.timers.<node_ip>.lag.<feed>.<action>.mean, 4, 'avg')

(所有实例中该指标报告的平均值的平均时间)

在我的新代码中创建这样的指标:

current_lag_gauge = Gauge('kafka_lag', 'tracks the lag of events',labelnames=['feed', 'action'])
lag = event.timestamp - Now()
...
current_lag_gauge.labels(feed="v1", action="v2").set(lag)

图书馆正在添加一些额外的标签。指标如下所示:

kafka_lag{action="v2",app="app1",base_chart_version="xxx",feed="123",instance="1.2.3.4:8000",job="kubernetes-xxx",kubernetes_namespace="xxxx",kubernetes_pod_name="xxxxx",pod_template_hash="123431314",release="xxxx"}

是否有比较两者的参考指南或备忘单?也很高兴获得解决此翻译的几个示例查询。

【问题讨论】:

    标签: prometheus grafana statsd


    【解决方案1】:

    在 Robust Perception 中有一篇很棒的帖子,内容涵盖 translations between monitoring languages
    它没有涵盖您提到的确切用例,但可以作为解决此问题的一个很好的参考。

    关于您的具体查询,我认为 avg(kafka_lag) by (feed) 应该给您提供与您提到的 statsd 查询大致相同的结果,但我不完全确定,因为我没有 2 组数据可供使用并进行比较。

    【讨论】:

      猜你喜欢
      • 2020-05-28
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2017-09-03
      • 1970-01-01
      相关资源
      最近更新 更多