Se gli errori dell'applicazione non vengono visualizzati in Error Reporting, procedi nel seguente modo per risolvere il problema.
Prima di iniziare
Verifica che le chiavi di crittografia gestite dal cliente (CMEK) siano disabilitate nel tuo bucket di log.
Quando i log sono protetti con CMEK, non vengono resi disponibili a Error Reporting e pertanto non è possibile identificare gruppi di errori. Error Reporting non è disponibile per nessuno dei seguenti log:
- Log archiviati in un bucket di log abilitato CMEK.
- Log archiviati in più bucket di log in cui almeno un bucket di log è abilitato per CMEK.
- Log archiviati in qualsiasi bucket di log all'interno di un'organizzazione, quando un criterio a livello di organizzazione richiede l'abilitazione di CMEK.
Per informazioni su come determinare la configurazione CMEK per un bucket di log, consulta Verificare l'abilitazione della chiave.
Verifica che Error Reporting possa analizzare i tuoi log.
Error Reporting può analizzare solo le voci di log archiviate nei bucket Cloud Logging che si trovano nell'area geografica
global
in cui i progetti Google Cloud di origine e di destinazione coincidono.Per verificare se Error Reporting può analizzare i tuoi log, verifica di aver archiviato i log nei bucket nella regione
global
in cui i progetti Google Cloud di origine e di destinazione coincidono.Per visualizzare un elenco dei sink che hai configurato, esegui questo comando:
gcloud logging sinks list
Il comando restituisce un output simile al seguente:
NAME DESTINATION FILTER _Default logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") _Required logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") logs-from-samples logging.googleapis.com/projects/my-team-project/locations/global/buckets/sample-bucket (empty filter) regional_logs logging.googleapis.com/projects/my-team-project/locations/europe-west1/buckets/bucket_for_regional_logs (empty filter) test-logs logging.googleapis.com/projects/team-b-project/locations/global/buckets/test-bucket (empty filter)
In questo esempio, il progetto di origine dei log di Google Cloud è
my-team-project
. Di conseguenza:- Error Reporting può analizzare i log con routing dai sink
_Default
,_Required
elogs-from-samples
, poiché eseguono il routing dei log ai bucket nella regioneglobal
all'interno dello stesso progetto. - Error Reporting non può analizzare i log con routing dal sink
regional_logs
in quanto indirizza i log a un bucket a livello di regione nella regioneeurope-west1
. - Error Reporting non può analizzare i log con routing dal sink
test-logs
poiché indirizza i log a un progetto diverso (team-b-project
) rispetto al progetto di origine.
- Error Reporting può analizzare i log con routing dai sink
Assicurati di aver installato Google Cloud CLI.
Assicurati di avere abilitato il componente
beta
per l'interfaccia a riga di comando gcloud.
Quando utilizzi i log
Questa sezione fornisce assistenza per la risoluzione dei problemi quando i dati di errore vengono scritti nei bucket Cloud Logging e ti affidi a Error Reporting per analizzare automaticamente questi bucket di log.
Genera una voce di log di esempio
Per confermare le impostazioni del progetto, puoi generare in modo programmatico una voce di log che verrà scelta da Error Reporting con il comando gcloud
seguente:
gcloud logging write --payload-type=json test-errors-log \
'{"serviceContext":
{"service": "manual-testing"},
"message": "Test Error\n at /test.js:42:42",
"context": {"httpRequest":
{"url": "/test","method": "GET","responseStatusCode": 500}}}'
Poi apri Error Reporting e verifica che l'errore appena creato venga visualizzato.
Conferma il formato della voce di log
Vai alla pagina Cloud Logging e individua una voce di log contenente i dati delle eccezioni inviati dalla tua applicazione.
Verifica che la voce di log utilizzi il formato previsto.
Quando utilizzi l'API Error Reporting
Abilita l'API
Nella console Google Cloud, seleziona API e servizi, fai clic su Abilita API e servizi, quindi abilita l'API Error Reporting o fai clic sul seguente pulsante:
Vai alle impostazioni dell'API Error Reporting
Invia un errore di test
Prova a inviare manualmente un errore al servizio.
Puoi segnalare un errore di test a Error Reporting utilizzando il seguente comando gcloud
:
gcloud beta error-reporting events report --service Manual --service-version test1 \
--message "java.lang.TestError: msg
at com.example.TestClass.test(TestClass.java:51)
at com.example.AnotherClass(AnotherClass.java:25)"
Puoi utilizzare un comando cURL per testare le chiamate API REST. Sostituisci PROJECT_ID
e API_KEY
con i valori validi prima di inviare il seguente comando:
curl -X POST -H "Content-Type: application/json" \
-d '{"message":"java.lang.TestError: msg\n\tat com.example.TestClass.test(TestClass.java:51)\n\tat com.example.AnotherClass(AnotherClass.java:25)","serviceContext":{"service":"manual-testing"}}' \
https://clouderrorreporting.googleapis.com/v1beta1/projects/PROJECT_ID/events:report?key=API_KEY
Conferma il payload inviato
Assicurati che l'applicazione invii i dati di eccezione all'API nel formato corretto e che contenga gli attributi obbligatori.