мне нужно jsonПайлоад
в журналах облачной функции Google вместо текстПолезная нагрузка
. Моя цель — использовать ключи словаря в качестве меток (см. Ярлыки метрик на основе журнала) для метрик на основе журналов, чтобы их можно было решать в Grafana.
Я использую Python Ведение журнала
модуль, но я также могу переключиться на что-то другое, если это необходимо.
Мне нужно как вывод в журналах:
jsonPayload: `{'key1':value1, 'key2':value2}`
Но я получаю текстПолезная нагрузка
вместо этого вся следующая строка представляет собой строку:
"2022-02-08 15:43:32,460 [ИНФОРМАЦИЯ]: {"ключ1": значение1, "ключ2": значение2}"
Реальный пример из логов, посередине вы видите текстПолезная нагрузка
:
Картинка как текст:
{
Идентификатор вставки: "000000-1b431ffd-e42d-4f83-xyz"
метки: {1}
logName: "projects/MY_PROJECT/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
ReceiveTimestamp: "2022-02-08T15:43:41.808217166Z"
ресурс: {2}
textPayload: "2022-02-08 15:43:32,460 [INFO]: {"json_metadata": {"countrows": 736203, "countcolumns": 6, "size": 48261360, "gcs_stamp": "2022-02- 08 15:43:32.451000+00:00", "python_stamp": "2022-02-08 15:43:31.055538"}}"
отметка времени: "2022-02-08T15:43:32.460Z"
трассировка: "проекты/МОЙ_ПРОЕКТ/трассировки/dd97759176248586a3d3xyz"
}
Первые попытки
Чтение из https://cloud.google.com/logging/docs/structured-logging:
В Cloud Logging структурированные журналы относятся к записям журнала, которые используют поле jsonPayload для добавления структуры к своим полезным данным. Структурированное ведение журнала применяется к журналам, написанным пользователями.
Я попытался получить это «структурированное ведение журнала» после Ведение структурированных журналов к
logging.info(json.dumps(json_for_gcp_lbm))
но безрезультатно.
Далее по ссылкам: есть встроенный Logging Agent от GCP, который использует свободно говорил относительно Об агенте ведения журнала кажется, доступно только для Google Kubernetes Engine или App Engine, а не в облачной функции Google:
Если вы используете Google Kubernetes Engine или гибкий
среде вы можете писать структурированные журналы как сериализованные объекты JSON
одной строкой в stdout или stderr. Затем агент регистрации отправляет
структурированные журналы в Cloud Logging в качестве jsonPayload для LogEntry
структура.
Как я могу получить jsonПайлоад
в этом выводе?