Fluentd удаляет запись журнала после применения парсера json - PullRequest
1 голос
/ 17 февраля 2020

Я получил 2 docker контейнеров, используя Fluentd в качестве драйвера журнала. Оба отправляют действительные JSON сообщения. Вот примеры из них:

{"tag":"docker/article-api","log":"{\"level\":\"debug\",\"port\":\":80\",\"time\":\"2020-02-17T17:06:46Z\",\"message\":\"starting the server\"}"}

{"log":"{\"level\":\"info\",\"ts\":1581959205.461808,\"caller\":\"apiserv/main.go:69\",\"msg\":\"Service is ready to listen\"}","tag":"docker/user-api"} 

Они совершенно разные, но я уверен, что оба действительны. Поскольку мы используем ведение журнала Stackdriver, я бы хотел добавить поле «серьезность», равное значению уровня.

Вот часть файла конфигурации, которая создает всю путаницу.

<filter **>
  @type parser
  key_name log
  replace_invalid_sequence true
  <parse>
    @type json
  </parse>
</filter>

А вот и сама проблема. После прохождения фильтра первое сообщение записи в журнале полностью удаляется, а второе проходит через него.

Я попытался указать time_format, но, похоже, оно не работает вообще.

Кроме того, я пытался использовать filter docker**, но вместо этого он удаляет все полезные записи. Это не имеет никакого отношения к этому, но если у вас есть представление о том, что вызвало это, я буду признателен за это

Заранее спасибо

PS Я использую google-fluentd обслуживание, если оно имеет значение.

...