Как писать структурированные журналы, чтобы поле сообщений использовалось GCP Log Viewer? - PullRequest
0 голосов
/ 09 марта 2020

Вопрос

Есть ли способ записи структурированных журналов из облачных функций таким образом, чтобы поле сообщения автоматически отображалось как основное сообщение в программе просмотра журнала GCP?

Использование в этом тесте , я обнаружил, что поле с именем message иногда используется. Например, с учетом этих журналов:

{"severity":"trace","time":"2020-03-09T12:21:13.660044125-07:00","message":"Trace Basic"}
{"severity":"debug","time":"2020-03-09T12:21:13.660047625-07:00","message":"Debug Basic"}
{"severity":"info","time":"2020-03-09T12:21:13.660049425-07:00","message":"Info Basic"}
{"severity":"warn","time":"2020-03-09T12:21:13.660051425-07:00","message":"Warn Basic"}
{"severity":"error","time":"2020-03-09T12:21:13.660053225-07:00","message":"Error Basic"}
{"severity":"info","time":"2020-03-09T12:21:13.660055125-07:00","message":"One line message"}
{"severity":"info","time":"2020-03-09T12:21:13.660057025-07:00","message":"Line 1 of 2\nLine 2 of 2 for zlog.Info"}
{"severity":"info","myIntField":532,"myStringField":"howdy","myMultilineStringField":"Line 1 of 2\nLine 2 of 2 for zlog.Info with fields","time":"2020-03-09T12:21:13.660059925-07:00","message":"With Fields Example"}

Программа просмотра журнала GCP отобразит что-то вроде этого:

Google Logging Console

Обратите внимание на окончательный вариант запись, которая должна иметь сообщение с полями Пример вместо этого имеет сообщение верхнего уровня {"fields": {...}} .

Extra Detail

В Cloud Run есть документ , описывающий специальные поля структурированных журналов (т. Е. Уровень серьезности и сообщения), которые протоколирование Stackdriver автоматически подберет и использует для заполнения значка DEBUG / WARN / INFO / ERROR и сообщения верхнего уровня для записи журнала в консоли Stackdriver.

Специальные JSON поля в сообщениях

Когда вы предоставляете структурированный журнал в виде словаря JSON, некоторые специальные поля удаляются из jsonPayload и записываются в соответствующее поле в сгенерированном LogEntry, как описано в документации для специальных полей.

Например, если ваш JSON содержит свойство серьезности, оно удаляется из e jsonPayload и отображается вместо этого как серьезность записи журнала. Свойство сообщения используется в качестве основного отображаемого текста записи журнала, если таковой имеется. Подробнее о специальных свойствах читайте в разделе «Ресурсы ведения журнала» ниже.

Соответствующий документ для облачных функций не содержит информации о специальных полях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...