用prometheus和grafana跟踪事件

时间:2018-05-18 16:28:19

标签: grafana prometheus

有一篇文章"Tracking Every Release",它讲述了在每个代码部署的图表上显示垂直线。他们正在使用Graphite。我想和Prometheus 2.2和Grafana 5.1做类似的事情。更具体地说,我希望得到一个"应用程序启动"事件显示在图表上。

Grafana注释似乎是适当的机制,但我无法弄清楚使用什么类型的prometheus指标以及如何查询它。

2 个答案:

答案 0 :(得分:3)

最简单的方法是使用与文章相同的基本方法,让您的部署工具在执行部署时告诉Grafana。

Grafan有一个用于存储注释的内置系统,它在图表上显示为垂直线,并且可以包含与之相关的文本。这就像在Grafana实例中创建API密钥并向部署脚本添加curl调用一样简单:

curl -H "Authorization: Bearer <apikey>" http://grafana:3000/api/annotations -H "Content-Type: application/json" -d '{"text":"version 1.2.3 deployed","tags":["deploy","production"]}'

有关可用选项的更多信息,请查看文档:

http://docs.grafana.org/http_api/annotations/

将部署添加为注释后,您可以通过转到仪表板设置中的注释选项卡并添加新的注释源来在仪表板上显示这些部署: adding annotation source

然后注释将显示在仪表板的面板上: panel showing annotation

答案 1 :(得分:1)

您可以完全从Prometheus指标获得相同的结果,无需向Grafana推送任何内容:

Annotation from Prometheus query

如果您想跟踪所有重新启动,您的搜索表达式可能类似于:

changes(start_time_seconds{job="foo",env="prod"} > 0

如果您只想跟踪版本更改(并且您有某种info指标提供了该版本),或者类似的内容:

alertmanager_build_info unless max_over_time(alertmanager_build_info[1d] offset 5m)

每当出现新的alertmanager_build_info指标(即具有不同标签的指标,例如version)时,后一种表达式应仅产生5分钟的输出。您可以进一步调整它以仅在version更改时生成输出,例如通过聚合所有其他标签。