Logging strutturato

In Cloud Logging, un oggetto LogEntry può archiviare un payload di log come dati strutturati o testo non strutturato. Una voce di log strutturata archivia il proprio payload come oggetto JSON nel campo jsonPayload, mentre una voce di log non strutturata archivia il proprio payload come stringa nel campo textPayload.

La formattazione del payload del log come oggetto JSON ti consente di eseguire query per percorsi JSON in Esplora log, eseguire query su singoli campi nella pagina Observability Analytics e indicizzare campi specifici per velocizzare le query. Con i log non strutturati, puoi cercare la stringa di testo, ma non puoi eseguire query o indicizzare singole chiavi.

Come vengono scritti i log strutturati

Il modo in cui le voci di log strutturate vengono scritte in Logging dipende dal tuo ambiente e dalla modalità di raccolta dei log:

  • Agenti Logging integrati: negli ambienti di computing gestiti (come Google Kubernetes Engine e Cloud Run), gli agenti integrati analizzano il JSON a riga singola scritto in stdout o stderr nel campo jsonPayload. Consulta Scegli un framework di logging.
  • Ops Agent: sulle VM di Compute Engine, l'agente scrive log strutturati quando raccoglie log JSON o analizza log di testo. Consulta Configura Ops Agent.
  • BindPlane: questo servizio invia i log con payload JSON da origini on-premise o ibride a Logging. Consulta la guida rapida di BindPlane.

Campi JSON speciali nei payload strutturati

Quando gli agenti Logging importano log strutturati, possono mappare campi specifici dei dati di log ai campi di primo livello nell'oggetto LogEntry anziché lasciarli in jsonPayload:

  • Ops Agent: per i campi JSON mappati automaticamente da Ops Agent quando utilizzi il processore parse_json o i receiver tcp e fluent_forward, consulta Campi speciali nei payload strutturati.

  • OpenTelemetry (OTLP): per informazioni su come Google Cloud Observability mappa i record di log OTLP ai campi LogEntry, consulta Mappatura dei record di log OTLP alle voce di log log.

  • Agenti di logging integrati (stdout e stderr): sulle piattaforme di computing gestite come Google Kubernetes Engine, Cloud Run, Cloud Run Functions e App Engine, l'agente di logging integrato riconosce le seguenti chiavi JSON di primo livello e sposta i relativi valori nei campi LogEntry corrispondenti:

    • severity: imposta il campo LogEntry.severity.
    • message: imposta il messaggio di log principale visualizzato in Esplora log.
    • httpRequest: Imposta ilLogEntry.httpRequest campo.
    • time o timestamp (o timestampSeconds e timestampNanos): imposta il campo LogEntry.timestamp.
    • logging.googleapis.com/insertId: imposta il campo LogEntry.insertId.
    • logging.googleapis.com/labels: imposta le coppie chiave-valore LogEntry.labels definite dall'utente.
    • logging.googleapis.com/operation: imposta il campo LogEntry.operation.
    • logging.googleapis.com/sourceLocation: imposta il campo LogEntry.sourceLocation.
    • logging.googleapis.com/trace, logging.googleapis.com/spanId e logging.googleapis.com/trace_sampled: imposta i campi trace, spanId e traceSampled per collegare i log alle tracce.

    Tutti i campi rimanenti nel record JSON rimangono nel campo LogEntry.jsonPayload.

Passaggi successivi