如何在Grafana(Prometheus数据源)中忽略指定日期前的指标值?
在Grafana(Prometheus数据源)中忽略指定日期前的指标数据的方法
当然可以,直接通过PromQL的时间过滤就能实现,不用重命名指标。这里给你两种实用的方式:
基于查询时间过滤:如果要确保查询返回的所有数据都在指定日期之后,用
time()函数做判断。先把你的目标日期转换成Unix时间戳(比如2024-05-01 00:00:00对应的戳是1714521600),然后把查询改成:your_metric_name{label_filters...} and time() > 1714521600这个表达式会自动丢弃所有时间戳早于指定值的样本。
基于样本自身时间戳过滤:如果你的指标样本采集时间和查询时间有延迟,用
timestamp()函数更准确,它会取每个样本自己的采集时间来判断:your_metric_name{label_filters...} and timestamp(your_metric_name{label_filters...}) > 1714521600
如果是用rate()、sum_over_time()这类聚合函数,直接把过滤条件加在后面就行,比如:
rate(your_metric_name{...}[5m]) and time() > 1714521600
至于时间戳怎么获取?在Linux终端里用date +%s -d "YYYY-MM-DD HH:MM:SS"就能算出,比如date +%s -d "2024-05-01 00:00:00"会返回对应的Unix时间戳。
内容的提问来源于stack exchange,提问作者Andreas Wederbrand
相关产品推荐
相关产品推荐

