Grafana 与普罗米修斯和格拉法纳一起追踪事件
有一篇文章讲述了如何为每个代码部署在图形上显示垂直线。他们正在使用石墨。我想做一些类似于普罗米修斯2.2和格拉法纳5.1的事情。更具体地说,我希望在图形上显示“应用程序启动”事件Grafana 与普罗米修斯和格拉法纳一起追踪事件,grafana,prometheus,Grafana,Prometheus,有一篇文章讲述了如何为每个代码部署在图形上显示垂直线。他们正在使用石墨。我想做一些类似于普罗米修斯2.2和格拉法纳5.1的事情。更具体地说,我希望在图形上显示“应用程序启动”事件 Grafana注释似乎是实现这一点的合适机制,但我不知道使用哪种类型的prometheus度量以及如何查询它。最简单的方法是通过与本文中相同的基本方法,让部署工具在Grafana执行部署时告诉它 Grafan有一个用于存储注释的内置系统,注释以垂直线的形式显示在图形上,并且可以有与其关联的文本。这将非常简单,只需在Gr
Grafana注释似乎是实现这一点的合适机制,但我不知道使用哪种类型的prometheus度量以及如何查询它。最简单的方法是通过与本文中相同的基本方法,让部署工具在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"]}'
curl-H“授权:无记名
将部署添加为批注后,可以通过转到仪表板设置中的“批注”选项卡并添加新的批注源在仪表板上显示这些部署:
然后,注释将显示在仪表板的面板上:
你完全可以从普罗米修斯度量标准中获得相同的结果,无需向格拉法纳推送任何东西:
如果要跟踪所有重新启动,搜索表达式可能类似于:
changes(start_time_seconds{job="foo",env="prod"} > 0
或者,如果您只想跟踪版本更改(并且您有某种提供版本的info
指标),则可以这样做:
每当出现新的alertmanager\u build\u info
度量时(即带有不同标签的度量,如version
),后一个表达式应仅产生5分钟的输出。您可以进一步调整它,使其仅在版本更改时生成输出,例如,通过聚合所有其他标签。是否有方法仅显示最新版本?例如,我部署了一个新的应用程序版本,并获得了另一个新指标(因此我现在有两个指标),但我如何过滤它以仅显示新版本?我尝试过,但尚未找到可行的解决方案…如果使用后一个查询,您应该只能看到在过去5分钟内创建的timeseries。因此我想我不理解您的问题。您是说您正在查看一周的间隔,并且希望看到上一个版本的批注吗只是;不是现在的最后一个版本,也不是3天前的前一个版本?是的,但是在那5分钟之后我什么都没有得到…所以我在想有没有办法总是看到应用程序版本的最新版本…好吧,在普罗米修斯默认的5分钟过期限制之外(没有新样本的timeseries将继续返回5分钟),查询时应仅获取当前部署的版本,例如,alertmanager\u build\u info
。如果返回多个版本,则表示您部署了多个版本。而且很难判断哪一个是“最新版本”版本:是上次重新启动的版本吗?是数值更大的版本吗?是后缀为“-beta”的版本吗?
alertmanager_build_info unless max_over_time(alertmanager_build_info[1d] offset 5m)