В datadog как мне запросить строку журнала в формате json БЕЗ добавления фасета?

#datadog

#datadog

Вопрос:

Когда сообщение отформатировано как json, оно автоматически превращается в атрибуты. Похоже, что атрибуты не могут быть запрошены без предварительного преобразования в фасеты (что применимо только к новым строкам журнала и означает, что иногда вам приходится видеть, как что-то отображается, затем огранять его, а затем отлаживать).

Есть ли способ запросить сообщение напрямую, минуя требование к фасету атрибута?

Ответ №1:

На самом деле это возможно, но вам нужно заключить каждый журнал JSON в одинарные кавычки или добавить некоторый префикс перед каждым журналом, чтобы агент Datadog рассматривал это как «текст». Например. log.json файл должен содержать журналы в кавычках или с префиксом, которые будут обрабатываться как обычный текст:

 '{"key1": "value1"}'
'{"key1": "value2"}'
'{"key1": "value3"}'
  
 !{"key1": "value1"}
!{"key1": "value2"}
!{"key1": "value3"}
  

После этого в конфигурации журналов Datadog вам нужно добавить конвейер с фильтром Grok parser в json (см. Вкладку фильтра в сопоставителе и фильтре):

Grok parser 1

Это позволило мне выполнить полнотекстовый поиск по всем полям в моих журналах JSON и автоматически проанализировать все поля JSON как атрибуты.

P.S. Это решение было предоставлено службой поддержки Datadog 2 года назад. И, похоже, они работают над решением, позволяющим выполнять полнотекстовый поиск по журналам JSON.

Ответ №2:

Это невозможно, нет. Подтверждено поддержкой DD.