Questa pagina descrive i log disponibili quando si utilizza Cloud Run e come visualizzarli e scrivere i log.
Cloud Run include due tipi di log, che vengono inviate a Cloud Logging:
- Log delle richieste (solo servizi): i log delle richieste inviate ai servizi Cloud Run. Questi log vengono creati automaticamente.
- Log dei container (servizi e job): log emessi dalle istanze, in genere dal tuo il tuo codice, scritto nelle località supportate come descritto in Scrittura dei log dei container.
Visualizza i log
Puoi visualizzare i log per il tuo servizio o job in diversi modi:
- Utilizzare la pagina Cloud Run nella console Google Cloud
- Utilizza Google Cloud CLI per visualizzare i log utilizzando gcloud (solo servizi)
- Utilizzare Esplora log di Cloud Logging nella console Google Cloud
- Utilizza Cloud Code
Entrambi i metodi di visualizzazione dei log della console esaminano gli stessi log archiviati Cloud Logging, ma Esplora log di Cloud Logging fornisce più dettagli e più funzionalità di filtro.
Visualizza i log in Cloud Run
Puoi visualizzare i log per i servizi e i job nel servizio e nei job corrispondenti pagine.
Visualizza i log per un servizio
Per visualizzare i log del servizio nella pagina Cloud Run:
Fai clic sul servizio desiderato nell'elenco visualizzato.
Fai clic sulla scheda LOG per ottenere i log delle richieste e dei container per tutti le revisioni di questo servizio. Puoi filtrare in base al livello di gravità dei log.
Visualizzare i log di un job
Per visualizzare i log dei job nella pagina Cloud Run:
Fai clic sulla scheda JOB.
Individua il job nell'elenco dei job e fai clic su di esso.
Fai clic sulla scheda LOG per ottenere i log dei container per tutti più esecuzioni di questo job. Puoi filtrare in base al livello di gravità dei log.
In alternativa, se vuoi visualizzare i log precedentemente filtrati per un job specifico dell'esecuzione, fai clic sull'esecuzione del job e quindi sulla scheda LOG.
Visualizza i log di servizio utilizzando Google Cloud CLI
Puoi utilizzare Google Cloud CLI per visualizzare i log di tailing o leggere i log esistenti per un servizio Cloud Run nella riga di comando Per impostazione predefinita, i log sono formattati in un formato a riga singola ottimizzato per la console.
Per caricare i log, devi installare il componente log-streaming
in
Google Cloud CLI. Se il componente non è installato, verrà visualizzato un messaggio di richiesta
per installarlo quando necessario.
Visualizza i log di tailing nella riga di comando
Per un servizio Cloud Run, puoi monitorare i log in tempo reale dal servizio Cloud Run direttamente nella riga di comando:
gcloud beta run services logs tail SERVICE --project PROJECT-ID
Sostituisci
- SERVICE con il nome del servizio Cloud Run
- PROJECT-ID con l'ID progetto Google Cloud. Puoi visualizzare
eseguendo il comando
gcloud config get-value project
.
Leggi i log nella riga di comando
Per un servizio Cloud Run, puoi leggere i log esistenti in due modi:
- In un formato ottimizzato per la console:
gcloud beta run services logs read SERVICE --limit=10 --project PROJECT-ID
- Direttamente da Cloud Logging:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=SERVICE" --project PROJECT-ID --limit 10
Sostituisci
- SERVICE con il nome del servizio Cloud Run
- PROJECT-ID con l'ID progetto Google Cloud. Puoi visualizzare
eseguendo il comando
gcloud config get-value project
.
Visualizza i log in Cloud Logging
Per visualizzare i log di Cloud Run in Esplora log di Cloud Logging:
Vai alla pagina Esplora log nel Console Google Cloud:
Seleziona un progetto Google Cloud esistente nella parte superiore della pagina oppure per creare un nuovo progetto.
Utilizza i menu a discesa per selezionare la risorsa Revisione Cloud Run. per un servizio o Job Cloud Run per un job.
Per ulteriori informazioni, consulta Utilizzo di Esplora log.
Visualizza i log di servizio in Cloud Code
Per visualizzare i log in Cloud Code: leggi l'articolo IntelliJ e Visual Studio Code guide.
Leggi i log in modo programmatico
Se vuoi leggere i log in modo programmatico, puoi utilizzare uno di questi metodi:
- Usa un sink di log in Pub/Sub e uno script per eseguire il pull da Pub/Sub.
- Chiama l'API Logging tramite Librerie client per il tuo linguaggio di programmazione.
- Chiama gli endpoint REST dell'API Logging .
Scrivi log dei container
Quando scrivi i log dal tuo servizio o job, questi vengono raccolti automaticamente Cloud Logging purché i log siano scritti in uno qualsiasi di questi località:
- Stream di output standard (
stdout
) o di errore standard (stderr
) - Tutti i file nella directory
/var/log
- syslog (
/dev/log
) - Log scritti utilizzando le librerie client di Cloud Logging. disponibili per molte lingue popolari
La maggior parte degli sviluppatori dovrebbe scrivere i log utilizzando output standard e .
I log del contenitore scritti in queste posizioni supportate vengono associati automaticamente al servizio, alla revisione e alla posizione di Cloud Run o al job Cloud Run. Le eccezioni contenute in questi log vengono acquisite e registrate in Error Reporting.
Il logging integrato bilancia l'affidabilità e l'utilizzo delle risorse e dovrebbe funzionare per la maggior parte delle applicazioni. Se la tua applicazione ha requisiti per volumi elevati o all'affidabilità, consigliamo di utilizzare direttamente l'API Cloud Logging, come una libreria all'interno della tua applicazione o come container collaterale separato.
Usa testo semplice o JSON strutturato nei log
Quando scrivi i log, puoi inviare una semplice stringa di testo o una singola riga
di JSON serializzato, chiamato anche "structured" e i dati di Google Cloud. Questo viene rilevato e
analizzato da Cloud Logging e inserito in jsonPayload
. Nel
il contrasto, il semplice messaggio di testo viene inserito in textPayload
.
Scrittura di log strutturati
Il seguente snippet mostra come scrivere voci di log strutturate. Inoltre, mostra come correlare i messaggi di log al corrispondente log delle richieste.
Node.js
Python
Vai
La struttura di ogni voce di log è fornita da un tipo Entry
:
Quando viene registrato uno struct Entry, viene chiamato il metodo String
per eseguire il marshal in
il formato JSON previsto da Cloud Logging:
Java
Abilita il logging JSON con Logback e SLF4J abilitando il encoder JSON Logstash nella configurazione logback.xml
.
Personalizza i nomi dei campi standard per escludere i contenuti indesiderati dall'importazione nel payload dei log. Per un elenco dei nomi dei campi e dei formati dei dati previsti, consulta Utilizzare l'agente Logging.
Campi JSON speciali nei messaggi
Quando fornisci un log strutturato come dizionario JSON, alcuni campi speciali vengono
rimosse da jsonPayload
e vengono scritte nel campo corrispondente in
la generazione
LogEntry come descritto in
la documentazione per i campi speciali.
Ad esempio, se il file JSON include una proprietà severity
, viene rimossa da
jsonPayload
e viene visualizzato come severity
della voce di log.
La proprietà message
viene utilizzata come testo di visualizzazione principale della voce di log, se presente.
Per ulteriori informazioni sulle proprietà speciali, leggi la sezione Risorsa di logging.
di seguito.
Correlare i log dei container con un log delle richieste (solo servizi)
In Esplora log, i log correlati allo stesso valore trace
vengono
visibile in "padre-figlio" format: quando fai clic sul triangolo
a sinistra della voce di log delle richieste, i log dei container relativi
vengono visualizzate nidificate sotto il log delle richieste.
I log dei container non vengono correlati automaticamente ai log delle richieste, a meno che non utilizzi un
Libreria client di Cloud Logging.
Per correlare i log dei container con i log delle richieste senza utilizzare una libreria client,
puoi utilizzare una riga di log JSON strutturata che contiene un
Campo logging.googleapis.com/trace
con l'identificatore della traccia estratto da
l'intestazione X-Cloud-Trace-Context
, come mostrato nell'esempio sopra riportato per
log strutturato.
Utilizzo delle risorse del log delle richieste di controllo (solo servizi)
I log delle richieste vengono creati automaticamente. Sebbene non sia possibile controllare la quantità dei log delle richieste direttamente da Cloud Run, puoi utilizzare la funzionalità di esclusione dei log da in Cloud Logging.
Una nota sugli agenti di logging
Se hai utilizzato Cloud Logging con determinati prodotti Google Cloud, come Compute Engine, potresti aver utilizzato gli agenti di logging di Cloud Logging. Cloud Run non utilizza gli agenti di logging perché dispone del supporto integrato per la raccolta dei log.
Nomi delle risorse di Logging
I nomi delle risorse di logging per Cloud Run sono:
- Revisione Cloud Run (
cloud_run_revision
). - Job Cloud Run (
cloud_run_job
).
Logging delle risorse
Se fai clic su una voce di log in Esplora log, si apre un file JSON di voce di log formattata per consentirti di visualizzare i dettagli desiderati.
Tutti i campi in una voce di log, ad esempio timestamp, gravità e httpRequest
sono standard e sono descritti nella documentazione
voce di log.
Cloud Run aggiunge ulteriori metadati, in modo da poter identificare l'origine di un log. Ciò include le (etichette impostate sul servizio Cloud Run) specifiche di Cloud Run.
Campi delle voci di log per un servizio
Di seguito è riportato un elenco dei campi disponibili nella voce di log per un Servizio Cloud Run:
Campo | Valori e note |
---|---|
LogEntry.labels.instanceId |
L'istanza che ha gestito la richiesta. |
LogEntry.labels. mylabel e LogEntry.labels. mysecondlabel |
Le etichette che hai impostato nel servizio. |
LogEntry.logName |
Identifica il log, ad esempio log richieste, errore standard, output standard e così via. |
LogEntry.resource.labels.location |
Identifica la località del servizio Google Cloud. |
LogEntry.resource.labels.project_id |
Il progetto in cui viene eseguito il deployment del servizio. |
LogEntry.resource.labels.revision_name |
La revisione che ha gestito la richiesta. |
LogEntry.resource.labels.service_name |
Il servizio che ha gestito la richiesta. |
LogEntry.resource.type |
cloud_run_revision . Il tipo di risorsa Cloud Run. |
Ecco un esempio di voce di log delle richieste per un servizio Cloud Run:
{
httpRequest: {…}
insertId: "5c82b3d1000ece0000000000"
labels: {
instanceId: "00bf4bf00000fb59c906a00000c9e29c2c4e06dce91500000000056008d2b6460f163c0057b97b2345f2725fb2423ee5f0bafd36df887fdb1122371563cf1ff453717282afe000001"
mylabel: "mylabelvalue"
mysecondlabel: "mysecondlabelvalue"
}
logName: "projects/my-project/logs/run.googleapis.com%2Frequests"
receiveTimestamp: "2019-03-08T18:26:25.981686167Z"
resource: {
labels: {
configuration_name: "myservice"
location: "us-central1"
project_id: "my-project"
revision_name: "myservice-00002"
service_name: "myservice"
}
type: "cloud_run_revision"
}
severity: "INFO"
timestamp: "2019-03-08T18:26:25.970397Z"
}
Campi di immissione dei log per i job
Di seguito è riportato un elenco dei campi che puoi trovare nella voce di log per un job Cloud Run:
Campo | Valori e note |
LogEntry.labels.instanceId | L'istanza. |
LogEntry.labels.mylabel,
LogEntry.labels.mysecondlabel |
Le etichette che hai impostato nel job. |
LogEntry.logName | Identifica il log, ad esempio log richieste, errore standard, output standard e così via. |
LogEntry.resource.labels.location | Identifica la posizione di Google Cloud del servizio. |
LogEntry.resource.labels.project_id | Il progetto in cui viene eseguito il deployment del servizio. |
LogEntry.resource.labels.job_name | Il nome del job. |
LogEntry.labels.execution_name | Il nome dell'esecuzione del job. |
LogEntry.labels.task_index | L'indice delle attività. |
LogEntry.labels.task_attempt | Quante volte è stata tentata questa attività. |
LogEntry.resource.type | cloud_run_job . Il tipo di risorsa Cloud Run.
|