да, absent подходит. Для конкретно этой проблемы, но у меня не совсем это.
Задача чисто косметическая, поэтому постеснялся ее описывать, но да ладно.
Хочу в аннотациях в графане видеть инфу о деплоях и в тегах видеть версии.
Для этого, у меня в pushgateway отправляется инфа о них. И получаются метрики (счетчики) такого вида:
deploy{project="example",app="example",version="v1.0.1"} 1
deploy{project="example",app="example",version="v1.0.2"} 1
deploy{project="example",app="example",version="v1.0.3"} 1
...
И вот тут две проблемы. Первая - что я описал выше - не видно первого деплоя. И вторая - моя хотелка видеть там версии.
Из-за второй хотелки, я сделал такую дичь в аннотациях графаны:
time() == bool timestamp( increase(deploy{project="
example
"
, app="example"
}[90s]) * on(project,app) group_left() (increase(deploy:sum{}[90s]) > 0) )
Где: dpeloy:sum это правило:
sum(deploy{service="pushgateway"}) by (project,app)
В целом это работает:
http://dl3.joxi.net/drive/2020/05/06/0030/2608/1985072/72/530d0ac9de.jpgНо работает неверно, так как этот запрос возвращает несколько метрик, соотвесвтенно в теги анноиации могут попасть лейблы от не той метрики.
Если убрать лейбл "version" и просто накапливать счетчик. Это работает корректно, за исключением того, что первый деплой не покажет. Ну и версию в теги конечно никак не добавить.
Я скорее всего хочу странного, и делаю это странно, и мне не надо этого хотеть, или делать совсем не так.