我可以找到最后一次值更改的时间戳吗
Can I find the timestamp of the last value change
给定一个时间序列,是否可以找到最后一次值更改的时间戳?
例如,cron 作业每晚运行。它首先运行一个 rsync 作业,然后计算目标目录的大小。实际的指标值并不是那么重要,但我想验证它实际上每晚都在变化。
是否可以创建一个查询,其中 return 标量值带有上次值更改的时间戳?
处理此问题的标准方法是推送一个指标,其值为批处理作业成功的 unix 时间戳。然后您可以提醒该值足够新。
https://www.robustperception.io/monitoring-batch-jobs-in-python/ 有一个 Python 例子。
不,你不能那样做。
对于许多用例,都有解决方法。我的没有。
Prometheus 提供了changes 函数,可用于确定时间序列样本在方括号中给定的lookbehind window 上的变化次数。例如,以下查询 returns 最近 5 分钟内名称为 metric_name
的时间序列的样本值更改次数:
changes(metric_name[5m])
可以通过在查询中添加 > 0
来过滤掉零个更改。以下查询 returns non-empty 只有在过去 5 分钟内至少有一个样本值发生变化时才会产生结果:
changes(metric_name[5m]) > 0
不幸的是,Prometheus 不提供返回最后一个 non-empty 值的时间戳的功能:(
如果您仍然需要获取最后一次值更改的时间戳,则 VictoriaMetrics may come to rescue with tlast_over_time function. The following MetricsQL 查询 returns 最后一次值更改的时间戳 metric_name
如果在过去 24 小时内进行了更改:
tlast_over_time(changes(metric_name[5m])[24h:1m])
此查询使用 subquery feature.
P.S。 VictoriaMetrics 从 v1.77.0 开始提供 tlast_change_over_time 功能。此函数 returns 方括号中给定 lookbehind window 上最后一次值更改的时间戳(以秒为单位)。例如,以下查询大部分等同于上面的查询。唯一的区别是它 returns 原始样本最后一次更改的确切时间戳:
tlast_change_over_time(metric_name[24h])
给定一个时间序列,是否可以找到最后一次值更改的时间戳?
例如,cron 作业每晚运行。它首先运行一个 rsync 作业,然后计算目标目录的大小。实际的指标值并不是那么重要,但我想验证它实际上每晚都在变化。
是否可以创建一个查询,其中 return 标量值带有上次值更改的时间戳?
处理此问题的标准方法是推送一个指标,其值为批处理作业成功的 unix 时间戳。然后您可以提醒该值足够新。
https://www.robustperception.io/monitoring-batch-jobs-in-python/ 有一个 Python 例子。
不,你不能那样做。
对于许多用例,都有解决方法。我的没有。
Prometheus 提供了changes 函数,可用于确定时间序列样本在方括号中给定的lookbehind window 上的变化次数。例如,以下查询 returns 最近 5 分钟内名称为 metric_name
的时间序列的样本值更改次数:
changes(metric_name[5m])
可以通过在查询中添加 > 0
来过滤掉零个更改。以下查询 returns non-empty 只有在过去 5 分钟内至少有一个样本值发生变化时才会产生结果:
changes(metric_name[5m]) > 0
不幸的是,Prometheus 不提供返回最后一个 non-empty 值的时间戳的功能:(
如果您仍然需要获取最后一次值更改的时间戳,则 VictoriaMetrics may come to rescue with tlast_over_time function. The following MetricsQL 查询 returns 最后一次值更改的时间戳 metric_name
如果在过去 24 小时内进行了更改:
tlast_over_time(changes(metric_name[5m])[24h:1m])
此查询使用 subquery feature.
P.S。 VictoriaMetrics 从 v1.77.0 开始提供 tlast_change_over_time 功能。此函数 returns 方括号中给定 lookbehind window 上最后一次值更改的时间戳(以秒为单位)。例如,以下查询大部分等同于上面的查询。唯一的区别是它 returns 原始样本最后一次更改的确切时间戳:
tlast_change_over_time(metric_name[24h])