#python #google-cloud-functions #google-cloud-logging
# #python #google-cloud-функции #google-cloud-ведение журнала
Вопрос:
Я попытался использовать этот пример кода из документов Cloud Functions:
# PROJECT = 'The project ID of your Cloud Run service';
global_log_fields = {}
trace_header = request.headers.get('X-Cloud-Trace-Context')
trace = trace_header.split('/')
global_log_fields['logging.googleapis.com/trace'] = (
f"projects/{PROJECT}/traces/{trace[0]}")
entry = dict(severity='NOTICE',
message='This is the default display field.',
# Log viewer accesses 'component' as jsonPayload.component'.
component='arbitrary-property',
**global_log_fields)
print(json.dumps(entry))
В обозревателе журналов соответствующие зарегистрированные элементы выглядят примерно так:
{
textPayload: "{"severity": "NOTICE", "message": "This is the default display field.", "component": "arbitrary-property", "logging.googleapis.com/trace": "projects/[...]/traces/abaa6a6d18e3dd498347c43ad9137d0b"}"
insertId: "[...]"
resource: {[...]}
timestamp: "2020-11-20T17:39:45.613Z"
severity: "INFO"
labels: {[...]}
logName: "projects/[...]/logs/cloudfunctions.googleapis.com/cloud-functions"
trace: "projects/[...]/traces/abaa6a6d18e3dd498347c43ad9137d0b"
receiveTimestamp: "2020-11-20T17:39:55.906103427Z"
}
Основная проблема заключается в том, что представление json заполняется в textPayload
поле, а не отображается jsonPayload
в структурированной форме.
Также интересно, что trace
значение в элементе журнала, похоже, уже задано автоматически, предполагая, что мне не нужно читать 'X-Cloud-Trace-Context'
заголовок запроса. (Я подтвердил, что значение трассировки определенно не считывается из моей полезной нагрузки json. Он по-прежнему появляется, если я удаляю logging.googleapis.com/trace
поле из зарегистрированного словаря.)
Комментарии:
1. Вы пытались добавить временную метку внутри JSON? Я думаю, что это недостающая часть формата FluentD.
2. Привет 🙂 отличный вопрос, кстати, вы нашли какое-либо решение? я сталкиваюсь с той же проблемой, что и вы.
3. Я открыл здесь проблему, чтобы узнать, есть ли продолжение github.com/GoogleCloudPlatform/python-docs-samples/issues/5036