Questo documento illustra i problemi comuni che potresti riscontrare durante l'utilizzo il linguaggio di query di Logging.
Problemi di sintassi
Se riscontri problemi con le espressioni delle query, controlla quanto segue:
La query obbedisce alle regole di sintassi, con parentesi e virgolette abbinate.
I nomi dei campi voce di log sono stati digitati correttamente.
Le operazioni booleane sono in lettere maiuscole (
AND
,OR
,NOT
).Assicurati di utilizzare [
NULL_VALUE
][json-null] per rappresentare JSON valori nulli.Le espressioni booleane come limitazioni globali o come lato destro dei confronti devono essere racchiuse tra parentesi per chiarezza. Ad esempio, le seguenti due query 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 virgolette doppie. Ad esempio, nel seguente, il primo confronto è illegale 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 la query sia racchiusa tra virgolette. Per utilizzare le virgolette doppie per l'interpretazione letterale dei caratteri speciali con il comando
gcloud logging
, racchiudere 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 applichi un filtro a un campo associato al
Any
tipo di messaggio, il campovalue
viene attraversato automaticamente. Pertanto, non includerevalue
nella query.Ad esempio,
Status
in un AuditLog ha un campodetails
di tipogoogle.protobuf.Any
. Per eseguire query sul campodetails
, ometti il campovalue
quando specifichi il filtro:Cosa fare
protoPayload.status.details.conditionNotMet.userVisibleMessage =~ "Specified reservation.*"
Azione sconsigliata
protoPayload.status.details.value.conditionNotMet.userVisibleMessage =~ "Specified reservation.*"