Переименование измерения Telegraf с подстановочным знаком - PullRequest
0 голосов
/ 05 декабря 2018

Я собираю измерения с клиентом Telegraf.К сожалению, название измерения не является статичным.Скорее, он кодирует метку времени (ужасный выбор дизайна, но не в моих руках) как часть своего имени.

Например, следующие 3 строки представляют 3 экземпляра одного и того же измерения, но имеют разные имена:

info.quorum.2902864.agree: 6
info.quorum.2902865.agree: 6
info.quorum.2902866.agree: 5
...

Есть ли способ преобразовать эти имена измерений в одно статическое имя?Другими словами, я хотел бы преобразовать эти записи выше:

info.quorum.hello.agree: 6
info.quorum.hello.agree: 6
info.quorum.hello.agree: 5 

Я видел процессор переименования (https://github.com/influxdata/telegraf/tree/master/plugins/processors/rename) - но он не поддерживает подстановочные знаки.

Я также видел процессор регулярных выражений (https://github.com/influxdata/telegraf/tree/master/plugins/processors/regex), но он не поддерживает имена измерений.

есть идеи о том, как это сделать?

РЕДАКТИРОВАТЬ: некоторые предыстории:измерения собираются с помощью http-ввода, используя путь GJSON, такой как ab * .c

EDIT2: вот что я пытаюсь проанализировать. Проблема в ключе '2931747', который увеличивается при каждом последующем чтении:

      "quorum" : {
     "2931747" : {
        "agree" : 8,
        "disagree" : 0,

     }

1 Ответ

0 голосов
/ 07 декабря 2018

Таким образом, они ставят фактическое значение в качестве ключа ... Да ладно, неумно, давайте скажем так.

И я не буду винить авторов синтаксического анализатора формата JSON за то, что они не описали эту ситуацию.

Итак, ответ таков: в текущей форме, с плагином HTTP, доступными синтаксическими анализаторами и процессорами - нет никакого способа сформировать его в любой правильной форме (если вы не можете полностью отбросить эту проклятую цифровую клавишу - тогда это тривиально).

Я бы посоветовал вам подтолкнуть поставщиков данных к тому, чтобы они прекратили эту глупость.

Если это не вариант - вам, увы, нужно написать собственный процессор.

Он может быть либо полностью автономным (опрашивать конечную точку http, анализировать материал, формировать пакет записей протокола линии, отправлять в приток), либо он может обрезать его при создании линий в протоколе линии Influx, поскольку еговывод и выполняется с помощью Exec входной плагин

...