am nevoie de jsonPayload
în jurnalele unei funcții Google Cloud în loc de textPayload
. Scopul meu este să folosesc cheile dicționarului ca etichete (vezi Etichete de valori bazate pe jurnal) pentru metrici bazate pe jurnal, astfel încât acestea să poată fi abordate în Grafana.
Eu folosesc Python Logare
modul, dar pot trece și la altceva dacă este necesar.
Am nevoie ca ieșire în jurnale:
jsonPayload: `{'key1':value1, 'key2':value2}`
Dar primesc un textPayload
în schimb, întreaga linie următoare este un șir:
„2022-02-08 15:43:32,460 [INFO]: {"key1": value1, "key2": value2}"
Exemplu real din bușteni, în mijloc, vezi textPayload
:
Imaginea ca text:
{
insertId: „000000-1b431ffd-e42d-4f83-xyz”
etichete: {1}
logName: „projects/MY_PROJECT/logs/cloudfunctions.googleapis.com%2Fcloud-functions”
primire ștampilă: „2022-02-08T15:43:41.808217166Z”
resursă: {2}
textPayload: "2022-02-08 15:43:32,460 [INFO]: {"json_metadata": {"countrows": 736203, "countcolumns": 6, "size": 48261360, "gcs_stamp": "2022 08 15:43:32.451000+00:00", "python_stamp": "2022-02-08 15:43:31.055538"}}"
marca temporală: „2022-02-08T15:43:32.460Z”
trace: „projects/MY_PROJECT/traces/dd97759176248586a3d3xyz”
}
Primele încercări
Citind din https://cloud.google.com/logging/docs/structured-logging:
În Cloud Logging, jurnalele structurate se referă la intrările de jurnal care utilizează câmpul jsonPayload pentru a adăuga structură la sarcinile lor utile. Jurnalul structurat se aplică jurnalelor scrise de utilizator.
Am încercat să obțin următoarea „înregistrare structurată”. Scrierea jurnalelor structurate de
logging.info(json.dumps(json_for_gcp_lbm))
dar fără niciun rezultat.
Mai departe în linkuri: există un agent de înregistrare încorporat de la GCP care utilizează fluentd cu privire la Despre agentul de logare pare să fie disponibil numai pentru Google Kubernetes Engine sau App Engine, nu într-o funcție Google Cloud:
Dacă utilizați Google Kubernetes Engine sau App Engine flexibil
mediu, puteți scrie jurnalele structurate ca obiecte JSON serializate
pe o singură linie la stdout sau stderr. Agentul de înregistrare trimite apoi
jurnalele structurate pentru Cloud Logging ca jsonPayload al LogEntry
structura.
Cum pot obține jsonPayload
în această ieșire?