Расчет процента графита с использованием groupbyNode или averageSeriesWithWildCards
Я пытаюсь создать оповещение Сейрен для метрики рендеринга моей страницы, хранящейся в графите.
Моя статистика рендера собирается ststsD и сохраняется в графите. Структура следующая:
stats.counters.renderCompleted.<country>.<placement_id>.<page_version>.count
например
stats.counters.renderCompleted.US.123456.v1_1_03.count
stats.counters.renderCompleted.US.123456.v1_1_09.count
stats.counters.renderCompleted.US.654321.v2_1_05.count
stats.counters.renderCompleted.US.654321.v2_1_07.count
stats.counters.renderCompleted.UK.123456.v1_1_09.count
...
...
Я хочу создать оповещение о сейрене с графитовыми функциями для США всякий раз, когда за последние 2 часа среднее значение рендеринга для ЛЮБОГО МЕСТОПОЛОЖЕНИЯ ЛЮБОЙ ВЕРСИИ (например, группировка по местам размещения, page_version) падает ниже определенного процента его (для этого места размещения и версии) в предыдущий день. среднее время за 2 часа в то же время
Я попробовал несколько способов, но не получил точный результат, который я намереваюсь:
1. using averageSeriesWithWildCards:
asPercent(
averageSeriesWithWildCards(
movingAverage(
scaleToSeconds(stats.counters.renderCompleted.US.*.*.count, 1),
'2hour'),
5),
averageSeriesWithWildCards(
movingAverage(
scaleToSeconds(
timeShift(stats.counters.renderCompleted.US.*.*.count, '1d'),
1),
'2hour'),
5)
)
2. Using groupByNode:
asPercent(
groupByNode(
movingAverage(
scaleToSeconds(stats.counters.renderCompleted.US.*.*.count, 1),
'2hour'),
4, 'averageSeries'),
groupByNode(
movingAverage(
scaleToSeconds(
timeShift(stats.counters.renderCompleted.US.*.*.count,'1d'),
1),
'2hour'),
4, 'averageSeries')
)
Буду признателен за некоторую помощь. Заранее спасибо.