Расчет процента графита с использованием 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')
)

Буду признателен за некоторую помощь. Заранее спасибо.

0 ответов

Другие вопросы по тегам