在 Victoriametrics 中获取指标的上次看到值和时间

问题描述

我正在使用 victoriametrics 从 IOT 数据记录设备。每次设备向服务器发送心跳时,我都会推送到 VM。有时设备会离线。 在我的应用程序中,我想查询该设备在白天的最后一次查看时间。 我尝试了几个选项,例如

/query?
last_over_time(devicerecord_uptime{kd_id="807d3a73e0fd"}[24h])

/query?
devicerecord_uptime{kd_id="807d3a73e0fd"}[24h]

一个给出值,但时间戳不是事件的实际时间。

"value": [
                    1620822177,// This timestamp is time Now,not the time of report
                    "19948"
         ]

第二个给出值,但它给出了 24 小时内的所有值。导致带宽增加,效率降低,因为我想为很多设备运行脚本。

"values": [
... All day values
    [
        1620822770.508,"20848"
    ],[
        1620823070.518,"21148"
    ],[1620823370.528,"21448"
    ]
]

是否有正确的方法获取设备的最后一次出现时间?

解决方法

第一个给出值,但时间戳不是事件的实际时间。

那是 /query 端点的特定 - 它在当前时间戳执行即时查询并返回最接近的结果。

您是否尝试过“tlast_over_time(m[d]) - 在 d 时间范围内返回最后一个样本的时间戳”来获取时间戳?查看更多详情here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...