Отображение уникального количества узлов в метрике 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)))
Другие вопросы по тегам