Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grafana 与普罗米修斯和格拉法纳一起追踪事件_Grafana_Prometheus - Fatal编程技术网

Grafana 与普罗米修斯和格拉法纳一起追踪事件

Grafana 与普罗米修斯和格拉法纳一起追踪事件,grafana,prometheus,Grafana,Prometheus,有一篇文章讲述了如何为每个代码部署在图形上显示垂直线。他们正在使用石墨。我想做一些类似于普罗米修斯2.2和格拉法纳5.1的事情。更具体地说,我希望在图形上显示“应用程序启动”事件 Grafana注释似乎是实现这一点的合适机制,但我不知道使用哪种类型的prometheus度量以及如何查询它。最简单的方法是通过与本文中相同的基本方法,让部署工具在Grafana执行部署时告诉它 Grafan有一个用于存储注释的内置系统,注释以垂直线的形式显示在图形上,并且可以有与其关联的文本。这将非常简单,只需在Gr

有一篇文章讲述了如何为每个代码部署在图形上显示垂直线。他们正在使用石墨。我想做一些类似于普罗米修斯2.2和格拉法纳5.1的事情。更具体地说,我希望在图形上显示“应用程序启动”事件


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)