tôi cần jsonPayload
trong nhật ký của Google Cloud Function thay vì văn bảnPayload
. Mục đích của tôi là sử dụng các khóa của từ điển làm nhãn (xem Nhãn chỉ số dựa trên nhật ký) cho Chỉ số dựa trên nhật ký để những chỉ số này có thể được giải quyết trong Grafana.
Tôi đang sử dụng Python khai thác gỗ
module, nhưng tôi cũng có thể chuyển sang thứ khác nếu cần.
Tôi cần làm đầu ra trong nhật ký:
jsonPayload: `{'key1':value1, 'key2':value2}`
Nhưng tôi nhận được một văn bảnPayload
thay vào đó, toàn bộ dòng tiếp theo là một chuỗi:
"2022-02-08 15:43:32,460 [INFO]: {"key1": value1, "key2": value2}"
Ví dụ thực tế từ nhật ký, ở giữa, bạn thấy văn bảnPayload
:
Hình ảnh như văn bản:
{
insertId: "000000-1b431ffd-e42d-4f83-xyz"
nhãn: {1}
logName: "projects/MY_PROJECT/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
getDấu thời gian: "2022-02-08T15:43:41.808217166Z"
tài nguyên: {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"}}"
dấu thời gian: "2022-02-08T15:43:32.460Z"
dấu vết: "dự án/MY_PROJECT/dấu vết/dd97759176248586a3d3xyz"
}
Lần thử đầu tiên
Đọc từ https://cloud.google.com/logging/docs/structured-logging:
Trong Cloud Logging, nhật ký có cấu trúc đề cập đến các mục nhật ký sử dụng trường jsonPayload để thêm cấu trúc vào tải trọng của chúng. Ghi nhật ký có cấu trúc áp dụng cho nhật ký do người dùng viết.
Tôi đã cố gắng để có được "ghi nhật ký có cấu trúc" này sau Viết nhật ký có cấu trúc qua
logging.info(json.dumps(json_for_gcp_lbm))
nhưng không có kết quả.
Hơn nữa trong các liên kết: có một tác nhân Ghi nhật ký tích hợp từ GCP sử dụng lưu loát như là Giới thiệu về tác nhân ghi nhật ký dường như chỉ khả dụng cho Google Kubernetes Engine hoặc App Engine, không có trong Google Cloud Function:
Nếu bạn đang sử dụng Google Kubernetes Engine hoặc App Engine linh hoạt
môi trường, bạn có thể ghi nhật ký có cấu trúc dưới dạng các đối tượng JSON được tuần tự hóa
trên một dòng đến thiết bị xuất chuẩn hoặc thiết bị xuất chuẩn. Tác nhân ghi nhật ký sau đó gửi
nhật ký có cấu trúc vào Nhật ký đám mây dưới dạng jsonPayload của LogEntry
cấu trúc.
Làm thế nào tôi có thể nhận được jsonPayload
trong đầu ra này?