vc 时间字符串转时间戳_Prometheus 时间戳小数问题

b4531996aee8cca100fb40269a6d8cec.png

Prometheus 时间戳小数问题

对于刚使用 Prometheus 的入门同学,可能对于时间戳有些小的疑问,以下就做一下简单的解答。

我么执行一个范围的查询

windows_net_packets_received_total{nic="Intel_R__Dual_Band_Wireless_AC_7265"}[1m]

查询结果如下图,其中红色字体部分是对应的数据的时间戳。

d27af4478fa1b7f10fd576f8ff6379b4.png

Prometheus 输出时间戳始终表示为Unix时间戳,以秒为单位。其可以精确到亚秒级精度,所以其会存在小数的部分。

注意:Prometheus 时间选择窗口是没有办法输入到亚秒级精度的,只能精确到秒的级别。

可以通过在线时间戳转换工具,格式化上面的时间戳内容(格式化的时候只是精确到了秒)。

  • 1592901576.091 = 2020-06-23 16:39:36
  • 1592901591.092 = 2020-06-23 16:39:51
  • 1592901606.091 = 2020-06-23 16:40:06
  • 1592901621.091 = 2020-06-23 16:40:21

时间戳是正向排序的,可以看出数据的采集周期是 15s ,但是其不是 1、15、30.。。。 正样子。其采集开始的时间有可能不是从 0s 开始的的。

因为控制台上的查询只能使用精确到秒的时间输入,所以在查询的时候会存在误差,这个稍微注意一下。

我们选择时间为 2020-06-23 16:40:06 ,查询最近15s的数据 , 如果是精确到秒的话应该会显示出两个数据。

2020-06-23 16:40:06 和 2020-06-23 16:39:51

e8a3bd8ae0146e654f47c4e0cd177239.png

实际只是显示了一个点的数据,显示的是最接近的一个点。 (注意这里我切换的新版的UI 可以 localtime zone ,不然时间转换上会有问题,控制台上的时间只能选取不能手动输入) 。

10477890 @1592901591.092 = 2020-06-23 16:39:51

我们直接使用访问的链接可以修改精度。time 修改为 1592901606.091

http://localhost:9090/api/v1/query?query=windows_net_packets_received_total%7Bnic%3D%22Intel_R__Dual_Band_Wireless_AC_7265%22%7D%5B15s%5D&time=1592901606.091
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"__name__":"windows_net_packets_received_total","instance":"localhost:9182","job":"windows","nic":"Intel_R__Dual_Band_Wireless_AC_7265"},"values":[[1592901591.092,"10477890"],[1592901606.091,"10477942"]]}]}}

这样返回的结果就是期望中的两个数据了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值