У меня есть серия данных Graphite, состоящая из меток времени в стиле UNIX.(В частности, данные на server.foo.puppet.time.last_run
состоят из времени последнего запуска puppet на сервере "foo", в соответствии с метриками Sensu, собранными sensu-plugins-puppet .) Я хочу получить данные "какдавно ли не было последнего запуска кукол? "
Я могу использовать Grafana для построения графика на одном сервере за раз, используя запрос diffSeries(identity("tmp"), server.foo.puppet.time.last_run))
, чтобы вычесть мои данные last_run из функции идентификации.Однако мне нужен график, который использует подстановочный знак для одновременного отображения всех серверов.
То, что я пробовал, не работает:
diffSeries(identity("tmp"), server.*.puppet.time.last_run))
(diffSeriesвозвращает только одну серию, так что получается неразборчивая путаница комбинации данных всех серверов) identity("server.*.currenttime")
или time("server.*.currenttime")
, чтобы сгенерировать одну серию идентификаторов для каждого сервера, чтобы можно было вычесть каждую серию last_runиз серии идентификаторов этого сервера попарно, может быть, с картой / уменьшить или что-то в этом роде (но это генерирует только одну серию, и он имеет буквальную звездочку в имени) offset(server.*.puppet.time.last_run, identity("blah"))
, конечно, не работает, потому чтосмещение принимает только константу
Есть ли способ сделать это, кроме записи новой сенсорной метрики, которая для каждого сервера просто возвращает текущую метку времени в качестве данных?Я знаю, что временная метка Unix повсюду в Graphite / Whisper, так что это кажется глупым, но на данный момент это всего лишь идея.Спасибо!