Questo documento spiega i problemi comuni che potresti riscontrare quando utilizzi il linguaggio di query di Logging.
Problemi di sintassi
Se hai problemi con le espressioni delle query, controlla quanto segue:
La query rispetta le regole di sintassi, con parentesi e virgolette corrispondenti.
I nomi dei campi voce di log sono scritti correttamente.
Le operazioni booleane sono in lettere maiuscole (
AND
,OR
,NOT
).Assicurati di utilizzare
NULL_VALUE
per rappresentare i valori null JSON.Le espressioni booleane come limitazioni globali o come lato destro dei confronti devono essere racchiuse tra parentesi per chiarezza. Ad esempio, le due query seguenti sembrano uguali, ma non lo sono:
insertId = "ABC-1" OR "ABC-2" -- ERROR!? insertId = ("ABC-1" OR "ABC-2")
Il testo senza virgolette non deve contenere caratteri speciali. In caso di dubbi, aggiungi le doppie virgolette. Ad esempio, nel seguente codice, il primo confronto non è valido a causa dell'operatore di sottostringa incorporato (
:
). Il confronto deve essere scritto tra virgolette:insertId = abc:def -- ILLEGAL! insertId = "abc:def"
Google Cloud CLI richiede che la query sia racchiusa tra virgolette doppie. Per utilizzare le virgolette doppie per l'escape dei caratteri speciali utilizzando il comando
gcloud logging
, racchiudi l'intera query tra virgolette singole:gcloud logging read 'resource.type=gce_instance AND jsonPayload.message="Stopped Unattended Upgrades Shutdown."' gcloud logging read 'timestamp>="2020-06-17T21:00:00Z"'
Quando filtri in base a un campo associato al tipo di messaggio
Any
, il campovalue
viene attraversato automaticamente. Pertanto, non includerevalue
nella query.Ad esempio, il campo
Status
in un messaggioAuditLog
ha un campodetails
di tipogoogle.protobuf.Any
. Per eseguire una query sul campodetails
, ometti il campovalue
quando specifichi il filtro:Azione
protoPayload.status.details.conditionNotMet.userVisibleMessage =~ "Specified reservation.*"
Cosa non fare
protoPayload.status.details.value.conditionNotMet.userVisibleMessage =~ "Specified reservation.*"