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:
- OpenTelemetry e l'API Telemetry (OTLP): quando invii record di log OpenTelemetry Protocol (OTLP) a Logging, Google Cloud Observability converte i dati di log strutturati nel campo
jsonPayload. Consulta Mappatura dei record di log OTLP voce di log di 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
stdoutostderrnel campojsonPayload. 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.
- Librerie client di Logging: queste librerie scrivono log strutturati quando passi un oggetto o una mappa JSON come payload o quando generano JSON su una singola riga in
stdoutostderr. Consulta Scrittura di log strutturati.
- Google Cloud CLI o l'API Logging: puoi eseguire
gcloud logging writecon il flag--payload-type=json(esempio) o chiamare il metodo APIentries.writecon un oggettojsonPayload.
- 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_jsono i receivertcpefluent_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 (
stdoutestderr): 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 campiLogEntrycorrispondenti:severity: imposta il campoLogEntry.severity.message: imposta il messaggio di log principale visualizzato in Esplora log.httpRequest: Imposta ilLogEntry.httpRequestcampo.timeotimestamp(otimestampSecondsetimestampNanos): imposta il campoLogEntry.timestamp.logging.googleapis.com/insertId: imposta il campoLogEntry.insertId.logging.googleapis.com/labels: imposta le coppie chiave-valoreLogEntry.labelsdefinite dall'utente.logging.googleapis.com/operation: imposta il campoLogEntry.operation.logging.googleapis.com/sourceLocation: imposta il campoLogEntry.sourceLocation.logging.googleapis.com/trace,logging.googleapis.com/spanIdelogging.googleapis.com/trace_sampled: imposta i campitrace,spanIdetraceSampledper collegare i log alle tracce.
Tutti i campi rimanenti nel record JSON rimangono nel campo
LogEntry.jsonPayload.
Passaggi successivi
- Per scegliere una strategia di strumentazione per la tua piattaforma di computing, consulta Scegli un approccio di strumentazione.
Per eseguire query e visualizzare le voci di log, consulta Visualizza i log utilizzando Esplora log.
Per leggere le voci di log utilizzando gcloud CLI, consulta Lettura delle voci di log.
Per leggere le voci di log utilizzando l'API Logging, consulta il metodo
entries.list.