Отображение уникального количества узлов в метрике Graphite с течением времени
Учитывая данные StatsD/Graphite, которые выглядят так
stats.counters.post.topic_1.user_1.count
stats.counters.post.topic_1.user_2.count
stats.counters.post.topic_2.user_3.count
stats.counters.post.topic_2.user_4.count
Я пытаюсь наметить 3 разные вещи
- Количество постов
- Количество тем
- Количество пользователей, размещающих
Пока у меня есть количество постов с
alias(summarize(sumSeries(stats.counters.post.*.*.count),"1hour"),"Total Posts")
Что касается тем и пользователей, я немного застрял.
Я могу получить серию / строку на тему с этим:
aliasByNode(summarize(groupByNode(stats.counters.post.*.*.count, 3, "sumSeries"), "1hour"), 0)
Но это дает количество сообщений по теме, а не количество тем.
Как я могу получить количество тем с течением времени? Исходя из этого, я уверен, что могу применить то же самое для пользователей.
3 ответа
Вы можете offset
а также scale
SumSeries
что даст вам изменения с течением времени, а не ровную линию. Что-то вроде:
alias(
sumSeries(
offset(
scale(stats.counters.post.*.user_2.count, 0), 1)
), 'Total Number of Topics')
Подробнее об этом при подсчете количества сообщаемых метрик
Используйте графитовую функцию countSeries(*seriesList).
Количество уникальных тем:
countSeries(stats.counters.post.*.user_2.count)
Количество уникальных пользователей, отправляющих сообщения:
countSeries(stats.counters.post.topic_2.*.count)
Столкнулся с той же проблемой сcountSeries
. Я хотел чего-то сквозь время. Для меня решение было:
sum(isNonNull(groupByNodes(stats.counters.post.*.*.count, "sum", -3)))