Prometheus 普罗米修斯抓斗系列,标签与今天相配';日期
我有这样的系列Prometheus 普罗米修斯抓斗系列,标签与今天相配';日期,prometheus,prometheus-alertmanager,promql,Prometheus,Prometheus Alertmanager,Promql,我有这样的系列 events{batch=20200818-00, stage=1} 10 events{batch=20200818-10, stage=1} 10 events{batch=20200818-20, stage=1} 10 events{batch=20200818-10, stage=2} 9 events{batch=20200818-20, stage=2} 8 events{batch=20200818-30, stage=2} 10 其中有一个标签批次,由日期
events{batch=20200818-00, stage=1} 10
events{batch=20200818-10, stage=1} 10
events{batch=20200818-20, stage=1} 10
events{batch=20200818-10, stage=2} 9
events{batch=20200818-20, stage=2} 8
events{batch=20200818-30, stage=2} 10
其中有一个标签批次
,由日期和小时组成。我想设置一个警报,如果阶段2中今天的事件总数大于阶段1,则会触发该警报
如何根据time()筛选序列?在Grafana中,插入日期并使用正则表达式匹配标签看起来很容易。但是,设置并警告这种情况看起来很重要。请帮助。普罗米修斯目前没有办法跨越标签/价值。但是你在某个地方有一个指标,它在标签中给出了一天的日期,并用它来过滤你的数据 使用“今天”指标 生成它取决于您现有的组件:这可以通过节点导出器文本文件或您每天更新的记录规则来完成:
today{date="20200818"} 1
并使用公制重新标记(在或使用中)
您将获得与您的度量相关的类似标签:
events{batch=20200818-00, date=20200818, stage=1} 10
然后,您可以使用以下方法筛选序列:
label_replace(events, "date", "$1", "batch", "([0-9]+)-.*") AND ON(date) today
避免重复的指标
午夜有一个小转折需要考虑:以前的今天的指标只有在5分钟后才会消失。您可以通过生成昨天的标签(但具有不同的值)来解决此问题:
today{date="20200817"} 0
today{date="20200818"} 1
表达式变成:
label_replace(events, "date", "$1", "batch", "([0-9]+)-.*") AND ON(date) today == 1
注意:如果你有一个度量给你事件的时间戳,你可以用它来确定今天是什么(这通常是批量完成的)谢谢你的详细回答。我确实有另一个基于标量(月中的日(向量(时间()))和标量(年(向量(时间()))的指标)选择的指标,它让我得到相同的标签,然后使用标签连接来抓取事件。这目前运行良好。但表达式看起来非常神秘。
label_replace(events, "date", "$1", "batch", "([0-9]+)-.*") AND ON(date) today == 1