2013-11-08 3 views
0

У меня есть список классов, которые извлекают информацию из Интернета. Каждый раз, когда каждый из них что-то сохраняет, он посылает другой графический графический счетчик. Таким образом, каждый из них является другой метрикой.Подсчитайте, сколько показателей соответствует условию в графите

Как узнать, сколько из них удовлетворяет определенному условию?

Например, пусть:

movingAverage(summarize(groupByNode(counters.crawlers.*.saved, 2, "sumSeries), "1hour"), 24) 

быть средней загрузки контента в течение последних 24 часов. Как я могу узнать, в момент «t», сколько из моих показателей имеет это значение выше 0?

ответ

1

В конечной точке рендеринга добавьте format=json. Это вернет точки данных с соответствующими эпохами в JSON, что является легким анализом. Временные метки, в которых ваш скрипт ничего не отправил, будут NULL.

[{ 
"target": "carbon.agents.ip-10-0-0-228-a.metricsReceived", 
"datapoints": 
    [ 
    [912, 1383888170], 
    [789, 1383888180], 
    [800, 1383888190], 
    [null, 1383888200], 
    [503, 1383888210], 
    [899, 1383888220] 
    ] 
}] 
+0

Thnx @erbdex. Это один из способов подсчитать. Это лучше, чем у меня сейчас. Наверное, я не поняла. Я хочу представить это в графическом графе. –

+1

Подход DIY должен был написать простой скрипт, который вычисляет все, что вам нужно, и отправляет его обратно в statsd, чтобы снова нарисовать график (из графических метаданных). Ничего подобного гибкости такого подхода. – erbdex

0

Вы можете использовать функцию currentAbove. Check it out. Например:

currentAbove(stats.route.*.servertime.*, 5) 

В приведенном выше примере получает все показатели (в серии), которые выше 5.


Затем можно подсчитать количество целей возвращается, и в то время как графит Безразлично» t обеспечить способ подсчета «ведер», вы должны иметь возможность легко его захватить.

Например, способ быстрого подсчета (используя curl to pipe to grep и рассчитывать на слово «target»). Например:

> curl -silent http://test.net/render?target=currentAbove(stats.cronica.dragnet.messages.*, 5)&format=json \ 
> | grep -Po "target" | grep -c "target" 
+0

countSeries (* seriesLists) рисует горизонтальную линию, представляющую количество узлов, найденных в списке серий. Он доступен начиная с версии v.10.10. Но я не думаю, что он хочет знать, сколько подстановочных знаков было разрешено. – erbdex

+0

Ницца. Я не знал об этой функции. В этом случае комбинация currentAbove (вокруг его оригинального movingAverage и т. Д.) С использованием 0 (для получения метрик выше 0), завернутая countSeries, будет делать то же самое, что и скрипт. Хотя, возможно, я не понял этот вопрос. –

+0

Я предполагаю, что он хочет гибко программировать пользовательские проверки, когда говорит «удовлетворяет определенному условию». :) Но да, действительно не знаю. – erbdex

Смежные вопросы