Prometheus收集自定义时间格式的指标值,并在Grafana中展示

本文讲述了作者在Prometheus2.46.0中尝试通过自定义metrics接口获取达梦数据库备份时间时遇到的问题,包括格式限制和PromQL时间转换。最终,作者通过使用指标标签而非值来传递时间字符串,并在Grafana中利用Stat面板和ValueOptions解决了这个问题。
摘要由CSDN通过智能技术生成

遇到的问题

需求场景如下:在Prometheus我想通过自己开发的metrics接口,收集达梦数据库最后一次备份成功备份的时间点,并在Grafana中展示。(基于prometheus2.46.0版本)其实需求很简单,但是在指标值传递和展示的过程中遇到了一些不可描述的困难:
1、在自定义metrics接口中,不支持yyyy/mm/dd HH24:MM:ss格式的指标值,会报错,因为自定义接口中只能传入float类型的值,所以我就改成UNIX时间戳,即1970-01-01 00:00:00到当前时间已经经过的描述(达梦数据库中用的是from_unixtime()函数)。
2、时间戳是传过来了,但是在PromQL中,2.26版本的Prometheus不知道怎么转为可读的时间,chatgpt和文心一言上至少问的有30多个问题,最后发现给的答案中的timestamp函数不好用,而且2.26版本中一些函数也没找到。

解决方法

既然指标值中没法传递,换个思路,那就使用指标的label进行传递,直接传递时间的字符串,而且在grafana中展示:
1、指标名后边加入label,对应的值为想要传递的yyyy/mm/dd HH24:MM:ss时间戳,例如last_succeed_database_backup_time{times=\"2024-01-05 01:00:00\"} 0(指标值直接传0就行,反正这个也用不到了)
2、在grafana的dashboard中,使用Stat面板,加入指标的query后,在右侧的Value Options中,选择对应的label即可直接使用label值,截图(公司纯内网没法用电脑截图):
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值