石墨与普罗米修斯查询差异

时间:2020-04-04 13:24:29

标签: prometheus grafana statsd

我目前正在将指标从statsd移至prometheus

我正在努力将查询从statsD语法转换为prometheus。我不清楚这一点,正在寻找一些比较两者的文档。具体来说,这个范围语法[5m]和rate等。它不能清楚地翻译成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"}

是否有参考指南或备忘单将2进行比较?也将很高兴得到几个示例查询来解决此翻译。

1 个答案:

答案 0 :(得分:0)

“健壮的感知”中有一篇很棒的文章,内容涉及translations between monitoring languages
它没有涵盖您提到的确切用例,但可以作为解决此问题的很好参考。

关于您的特定查询,我认为avg(kafka_lag) by (feed)应该会为您提供与您提到的statsd查询大致相同的结果,但是我不确定,因为我没有两套数据玩和比较。