Графит: группировка по фрагменту узла

Если у меня есть метрики с названием:

statsite.gauges.a-ABC-1.thing
statsite.gauges.a-ABC-2.thing
statsite.gauges.a-CBA-1.thing

Можно ли сгруппировать эти показатели по определенному фрагменту, например:

statsite.gauges.a-{groupByThisPart}-*.thing

Чтобы я мог передать их в другую функцию, например sumSeries.


person Scott    schedule 06.05.2016    source источник


Ответы (2)


Это возможно, если использовать aliasSub для преобразования '-' в '.', Как показано ниже, apply:

aliasByNode(seriesName, 2)

который выводит 'a-CBA-1'. Затем примените:

aliasSub(seriesName, \d{4})-(\d{4})-(\w{5}, \1.\2.\3)

который выводит 'a.CBA.1'.

Затем вы можете использовать groupByNode для суммирования всех частей для 2-го фрагмента.

groupByNode(seriesName, 1, sum)
person Scott    schedule 07.05.2017

Каждая серия, соответствующая используемому вами выражению, будет отображаться отдельно. Итак, если вы это сделаете:

statsite.gauges.a-*-*.thing

Будут отображены все серии, соответствующие этому шаблону. Вы можете используйте для выполнения агрегации только в отношении определенной позиции, но позиции разделены точками, поэтому я не думаю, что вы можете делать то, что хотите, с Graphite.

Я считаю, что лучший вариант - переименовать ваши показатели, чтобы вы разделяли каждую часть, которую хотите сгруппировать, по точкам.

person dukebody    schedule 16.05.2016