Tipi di evento

Questo documento descrive i tipi di eventi che possono essere visualizzati come annotazioni sui grafici. Un evento è un'attività, ad esempio un riavvio o un arresto anomalo, che influisce sul funzionamento di un sistema. La visualizzazione degli eventi può aiutarti a correlare i dati provenienti da origini diverse durante la risoluzione di un problema.

Per ogni evento, vengono forniti link ai riferimenti o alla documentazione per la risoluzione dei problemi, oltre a informazioni su come eseguire una query per l'evento. Ad esempio, quando gli eventi vengono identificati analizzando i log, viene fornita una query adatta all'utilizzo con Esplora log o con un criterio di avviso basato su log.

Per aggiungere annotazioni ai grafici, devi configurare la dashboard o la scheda che mostra il grafico. Ad esempio, puoi configurare la maggior parte delle dashboard elencate nella pagina Dashboard della console Google Cloud per mostrare gli eventi. Allo stesso modo, puoi configurare alcune schede Observability specifiche del servizio, ad esempio quelle per Compute Engine e Google Kubernetes Engine, per mostrare gli eventi. Per informazioni sulla configurazione, consulta Mostrare gli eventi in una dashboard.

Il seguente screenshot illustra un grafico che mostra diversi eventi identificati dall'analisi delle voci di log e un evento Service Health:

Grafico che mostra annotazioni relative ad avvisi e eventi informativi.

Ogni annotazione può elencare più eventi. Nello screenshot precedente è elencato un evento per un deployment GKE.

Tipi di eventi di avviso

In questa sezione vengono descritti i tipi di eventi di avviso che possono essere visualizzati in una dashboard.

Avviso aperto

Gli eventi aperti dagli avvisi ti consentono di correlare i dati dei grafici al momento dell'apertura degli incidenti. Viene mostrato un evento di avviso aperto quando si verificano le seguenti condizioni:

  • L'incidente corrispondente è stato aperto durante l'intervallo di tempo specificato dalla dashboard.
  • L'incidente corrispondente non è chiuso.

Non vengono visualizzate annotazioni create per gli incidenti aperti al di fuori dell'intervallo di tempo specificato dalla dashboard. Allo stesso modo, l'evento di avviso aperto non viene mostrato quando l'incidente corrispondente è stato aperto e poi chiuso nell'intervallo di tempo specificato dalla dashboard.

La descrizione comando per un evento di avviso aperto include quanto segue:

  • Nome del criterio di avviso.
  • Informazioni di riepilogo, se disponibili. Ad esempio, queste informazioni potrebbero includere la soglia e il valore misurato.
  • La durata dell'incidente e la data e l'ora in cui è stato aperto.
  • Etichette di metriche ed risorse. La descrizione comando potrebbe non mostrare tutte le etichette.
  • Un pulsante Visualizza, che apre la pagina Dettagli dell'incidente.

Tipi di eventi di Google Kubernetes Engine

Questa sezione descrive i tipi di eventi di Google Kubernetes Engine che possono essere visualizzati in una dashboard.

Carico di lavoro GKE con patch o aggiornato

Questo tipo di evento consente di risolvere i problemi relativi al deployment del carico di lavoro GKE o alle modifiche statefulSet, in quanto questi eventi possono essere correlati a regressioni delle prestazioni o altri problemi delle prestazioni. Questo tipo di evento viene mostrato quando un carico di lavoro viene creato, aggiornato o eliminato.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=k8s_cluster protoPayload.methodName=(
    io.k8s.apps.v1.deployments.create OR io.k8s.apps.v1.deployments.patch OR
    io.k8s.apps.v1.deployments.update OR io.k8s.apps.v1.deployments.delete OR
    io.k8s.apps.v1.deployments.deletecollection OR io.k8s.apps.v1.statefulsets.create OR
    io.k8s.apps.v1.statefulsets.patch OR io.k8s.apps.v1.statefulsets.update OR
    io.k8s.apps.v1.statefulsets.delete OR io.k8s.apps.v1.statefulsets.deletecollection OR
    io.k8s.apps.v1.daemonsets.create OR io.k8s.apps.v1.daemonsets.patch OR
    io.k8s.apps.v1.daemonsets.update OR io.k8s.apps.v1.daemonsets.delete OR
    io.k8s.apps.v1.daemonsets.deletecollection
)
-protoPayload.authenticationInfo.principalEmail="system:addon-manager"
-protoPayload.request.metadata.namespace=(kube-system OR gmp-system OR gmp-public OR gke-gmp-system)

Per ulteriori informazioni, consulta Panoramica del deployment dei carichi di lavoro e Visualizzare le metriche di osservabilità.

Arresto anomalo di un pod GKE

Questo tipo di evento consente di identificare gli arresti anomali dei pod GKE e risolvere eventuali problemi. Gli arresti anomali dei pod possono essere causati da un esaurimento della memoria o da un errore dell'applicazione. Questo tipo di evento viene mostrato quando si verifica una delle seguenti condizioni:

  • Lo stato del pod è CrashLoopBackoff
  • Il pod termina con un codice di uscita diverso da zero.
  • Il pod termina con una condizione di esaurimento memoria.
  • Il pod è stato rimosso.
  • Il probe di idoneità/attività ha esito negativo.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

(
    log_id(events)
    (
        (resource.type=k8s_pod jsonPayload.reason=(BackOff OR Unhealthy OR Killing OR Evicted)) OR
        (resource.type=k8s_node jsonPayload.reason=OOMKilling)
    )
    severity=WARNING
) OR (
    log_id(cloudaudit.googleapis.com%2Factivity) resource.type=k8s_cluster
    (protoPayload.methodName=io.k8s.core.v1.pods.eviction.create OR
        (protoPayload.methodName=io.k8s.core.v1.pods.delete
        protoPayload.response.status.containerStatuses.state.terminated.exitCode:*
        -protoPayload.response.status.containerStatuses.state.terminated.exitCode=0
        )
    )
)

Per informazioni sulla risoluzione dei problemi, consulta Risoluzione dei problemi: CrashLoopBackOff.

Errore durante la pianificazione di un pod GKE

Questo tipo di evento consente di identificare i pod che non possono essere pianificati su un nodo e risolvere i relativi problemi. Questo tipo di evento viene mostrato quando la pianificazione dei pod non va a buon fine per uno dei seguenti motivi:

  • CPU nodo insufficiente.
  • Memoria del nodo insufficiente.
  • Nessun nodo per incompatibilità o tolleranze.
  • Nodi al limite massimo di pod.
  • Pool di nodi alla dimensione massima.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

(
    log_id(events) resource.type=k8s_pod jsonPayload.reason=(NotTriggerScaleUp OR FailedScheduling)
) OR (
    log_id(container.googleapis.com/cluster-autoscaler-visibility)
    resource.type=k8s_cluster jsonPayload.noDecisionStatus.noScaleUp:*
)

Per informazioni sulla risoluzione dei problemi, consulta Risoluzione dei problemi: pod non pianificabile.

Impossibile creare un container GKE

Questo tipo di evento consente di identificare e risolvere gli errori per la creazione di un container GKE. La creazione dei container potrebbe non riuscire per motivi quali montaggi dei volumi non riusciti o pull delle immagini non riusciti.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

log_id(events) resource.type=k8s_pod jsonPayload.reason=(Failed OR FailedMount) severity=WARNING

Per informazioni sulla risoluzione dei problemi, vedi Risoluzione dei problemi: ImagePullBackOff ed ErrImagePull.

Scale up e scale down del gestore della scalabilità automatica dei pod

Questo evento ti offre visibilità sulle riscalazioni di Horizontal Pod Autoscaler, che aumentano o diminuiscono il numero di pod in esecuzione per un carico di lavoro. Per maggiori informazioni, consulta Scalabilità automatica orizzontale dei pod.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=k8s_cluster log_id(events)
jsonPayload.involvedObject.kind=HorizontalPodAutoscaler jsonPayload.reason=SuccessfulRescale

Scale up e scale down del gestore della scalabilità automatica dei cluster

Questo evento ti offre visibilità su quando il gestore della scalabilità automatica dei cluster fa lo scale up o lo scale down del numero di nodi in un pool di nodi del tuo cluster. Per ulteriori informazioni, consulta Informazioni sulla scalabilità automatica dei cluster e Visualizzazione degli eventi di scalabilità automatica dei cluster.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

(resource.type=k8s_cluster log_id(container.googleapis.com%2Fcluster-autoscaler-visibility)
jsonPayload.decision:*)

Creazione ed eliminazione del cluster

Questo evento monitora le azioni di creazione ed eliminazione del cluster GKE. Per ulteriori informazioni, consulta Creare un cluster Autopilot, Creazione di un cluster di zona ed Eliminazione di un cluster.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gke_cluster log_id(cloudaudit.googleapis.com%2Factivity)
protoPayload.methodName=(
    google.container.v1alpha1.ClusterManager.CreateCluster OR
    google.container.v1beta1.ClusterManager.CreateCluster OR
    google.container.v1.ClusterManager.CreateCluster OR
    google.container.v1alpha1.ClusterManager.DeleteCluster OR
    google.container.v1beta1.ClusterManager.DeleteCluster OR
    google.container.v1.ClusterManager.DeleteCluster
)
operation.first=true

Aggiornamento del cluster

Questo evento monitora gli aggiornamenti del cluster GKE. Gli aggiornamenti includono upgrade automatici delle versioni del piano di controllo, oltre ad upgrade manuali e modifiche alla configurazione del cluster. Per ulteriori informazioni, consulta Upgrade manuale di un cluster o un pool di nodi e Upgrade standard dei cluster.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gke_cluster log_id(cloudaudit.googleapis.com%2Factivity)
(
    protoPayload.methodName=(
        google.container.internal.ClusterManagerInternal.PatchCluster OR
        google.container.internal.ClusterManagerInternal.UpdateClusterInternal OR
        google.container.internal.ClusterManagerInternal.UpdateCluster
    )
) OR (
    protoPayload.methodName=(
        google.container.v1beta1.ClusterManager.UpdateCluster OR
        google.container.v1.ClusterManager.UpdateCluster
    )
    operation.first=true
)
protoPayload.metadata.operationType=(UPGRADE_MASTER OR REPAIR_CLUSTER OR UPDATE_CLUSTER)

Aggiornamento del pool di nodi

Questo evento monitora gli aggiornamenti del pool di nodi GKE. Gli aggiornamenti includono upgrade automatici delle versioni del pool di nodi, oltre ad upgrade manuali, modifiche alla configurazione e ridimensionamenti. Per ulteriori informazioni, consulta Upgrade manuale di un cluster o un pool di nodi e Upgrade standard dei cluster.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gke_nodepool log_id(cloudaudit.googleapis.com%2Factivity)
(
    protoPayload.methodName=(
        google.container.internal.ClusterManagerInternal.UpdateClusterInternal OR
        google.container.internal.ClusterManagerInternal.RepairNodePool
    )
) OR (
    protoPayload.methodName=(
        google.container.v1beta1.ClusterManager.UpdateNodePool OR
        google.container.v1.ClusterManager.UpdateNodePool OR
        google.container.v1beta1.ClusterManager.SetNodePoolSize OR
        google.container.v1.ClusterManager.SetNodePoolSize OR
        google.container.v1beta1.ClusterManager.SetNodePoolManagement OR
        google.container.v1.ClusterManager.SetNodePoolManagement OR
        google.container.v1beta1.ClusterManager.SetNodePoolAutoscaling OR
        google.container.v1.ClusterManager.SetNodePoolAutoscaling
    )
    operation.first=true
)

Tipi di eventi Cloud Run

Questa sezione descrive i tipi di eventi Cloud Run che possono essere visualizzati in una dashboard.

Deployment di Cloud Run

Questo tipo di evento consente di identificare e risolvere gli errori di deployment di Cloud Run. Il deployment potrebbe non riuscire per motivi come l'eliminazione di un account di servizio, autorizzazioni errate, l'importazione di un container non riuscita o l'avvio di un container non riuscito.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

log_id(cloudaudit.googleapis.com%2Factivity) resource.type=cloud_run_revision
protoPayload.methodName=google.cloud.run.v1.Services.ReplaceService

Per informazioni sulla risoluzione dei problemi, consulta Risoluzione dei problemi: problemi di Cloud Run.

Tipi di eventi Cloud SQL

Questa sezione descrive i tipi di eventi Cloud SQL che possono essere visualizzati in una dashboard.

Failover di Cloud SQL

Questo tipo di evento consente di identificare quando si verificano failover manuali o automatici. Un failover si verifica quando si verifica un errore dell'istanza o della zona e l'istanza in standby diventa la nuova istanza principale. Durante un failover, Cloud SQL passa automaticamente alla gestione dei dati dall'istanza in standby.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=cloudsql_database
(
    (
        log_id(cloudaudit.googleapis.com%2Factivity)
        protoPayload.methodName=cloudsql.instances.failover
        operation.last=true
    ) OR (
        log_id(cloudaudit.googleapis.com%2Fsystem_event)
        protoPayload.methodName=cloudsql.instances.autoFailover
    )
)

Per ulteriori informazioni, consulta Informazioni sull'alta disponibilità.

Avvio o arresto di Cloud SQL

Questo tipo di evento consente di identificare che un'istanza Cloud SQL è stata avviata, arrestata o riavviata manualmente. Quando un'istanza viene arrestata, vengono arrestate anche tutte le connessioni, le operazioni in esecuzione e i file aperti.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

log_id(cloudaudit.googleapis.com%2Factivity) resource.type=cloudsql_database
protoPayload.methodName=cloudsql.instances.update operation.last=true
protoPayload.metadata.intents.intent=(START_INSTANCE OR STOP_INSTANCE)

Per ulteriori informazioni, consulta Informazioni sull'alta disponibilità e Avviare, arrestare e riavviare le istanze.

Spazio di archiviazione di Cloud SQL

Questo tipo di evento consente di identificare gli eventi relativi all'archiviazione di Cloud SQL, inclusi quando lo spazio di archiviazione del database è esaurito e quando un database viene arrestato perché ha raggiunto la capacità di archiviazione. I database che raggiungono la capacità di archiviazione e che non hanno l'archiviazione automatica abilitata potrebbero essere arrestati per evitare il danneggiamento dei dati.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=cloudsql_database
(
    (
        (log_id(cloudsql.googleapis.com%2Fpostgres.log) OR log_id(cloudsql.googleapis.com%2Fmysql.err))
        textPayload=~"No space left on device"
        severity=(ERROR OR EMERGENCY)
    ) OR (
        log_id(cloudaudit.googleapis.com%2Fsystem_event)
        protoPayload.methodName=cloudsql.instances.databaseShutdownOutOfStorage
    )
)

Tipi di eventi Compute Engine

Questa sezione descrive i tipi di eventi di Compute Engine che possono essere visualizzati in una dashboard.

Terminazioni delle macchine virtuali

Questo tipo di evento consente di identificare terminazioni delle macchine virtuali (VM), inclusi arresti e ripristini attivati manualmente, terminazioni del sistema operativo guest, terminazioni della manutenzione ed errori dell'host.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gce_instance
(
    (
        log_id(cloudaudit.googleapis.com%2Factivity)
        protoPayload.methodName=(
            beta.compute.instances.reset OR v1.compute.instances.reset OR
            beta.compute.instances.stop OR v1.compute.instances.stop
        )
        operation.first=true
    ) OR (
        log_id(cloudaudit.googleapis.com%2Fsystem_event)
        protoPayload.methodName=(
            compute.instances.hostError OR
            compute.instances.guestTerminate OR
            compute.instances.terminateOnHostMaintenance
        )
    )
)

Per ulteriori informazioni, consulta Arresta e avvia una VM e Risoluzione dei problemi di arresto e riavvio delle VM.

Errore di avvio dell'istanza VM

Questo evento monitora gli errori di avvio delle istanze VM di Compute Engine. L'evento mostra errori di avvio dovuti a problemi di disponibilità, esaurimento dello spazio IP, quota superata o errori di integrità della Shielded VM.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gce_instance
(
    (
        log_id(cloudaudit.googleapis.com%2Factivity)
        protoPayload.methodName=(beta.compute.instances.insert OR v1.compute.instances.insert)
        protoPayload.status.message=(ZONE_RESOURCE_POOL_EXHAUSTED OR IP_SPACE_EXHAUSTED OR QUOTA_EXCEEDED)
    ) OR (
        log_id(compute.googleapis.com%2Fshielded_vm_integrity)
        severity="ERROR"
    )
)

Errore del sistema operativo guest dell'istanza VM

Questo evento monitora errori specifici del sistema operativo guest delle istanze VM di Compute Engine, come registrati dai log della console seriale. Gli errori rilevati riguardano disco pieno, montaggio del file system non riuscito e errori di avvio che attivano la modalità di emergenza di Linux.

Affinché questi eventi siano visibili, devi abilitare il logging dell'output della porta seriale in Cloud Logging impostando serial-port-logging-enable=true nella VM o nei metadati di progetto. Per maggiori informazioni, consulta Attivazione e disattivazione del logging dell'output della porta seriale.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gce_instance
log_id(serialconsole.googleapis.com%2Fserial_port_1_output)
textPayload=~("No space left on device" OR "Failed to mount" OR "You are in emergency mode")

Aggiornamento del gruppo di istanze gestite

Questo tipo di evento consente di identificare quando il gruppo di istanze gestite è stato aggiornato. Ad esempio, le VM sono state aggiunte o rimosse oppure il limite di dimensioni è stato aggiornato. Per maggiori informazioni, consulta Applicare automaticamente gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=gce_instance_group_manager
log_id(cloudaudit.googleapis.com%2Factivity) operation.first=true
protoPayload.methodName=(beta.compute.instanceGroupManagers.patch OR v1.compute.instanceGroupManagers.patch)

Per ulteriori informazioni, consulta Utilizzare le istanze gestite e Risoluzione dei problemi relativi ai gruppi di istanze gestite.

Gestore della scalabilità automatica dei gruppi di istanze gestite

Questo evento monitora le decisioni di scalabilità prese dal gestore della scalabilità automatica di un gruppo di istanze gestite. Queste decisioni potrebbero includere modifiche delle dimensioni consigliate per un gruppo di istanze gestite o una modifica dello stato del gestore della scalabilità automatica stesso. Per ulteriori informazioni, consulta Scalabilità automatica dei gruppi di istanze.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

resource.type=autoscaler log_id(cloudaudit.googleapis.com%2Fsystem_event)
protoPayload.methodName=(compute.autoscalers.resize OR compute.autoscalers.changeStatus)

Tipi di eventi personalizzati di Service Health

Questa sezione descrive i tipi di Personalized Service Health che possono essere visualizzati in una dashboard.

Incidente Google Cloud

Per la risoluzione dei problemi, è consigliabile distinguere tra errori causati da un servizio di tua proprietà e errori causati da un servizio Google Cloud che utilizzi. Quando abiliti le annotazioni Personalized Service Health in una dashboard, puoi visualizzare le interruzioni o gli eventi di integrità dei servizi per i servizi Google Cloud. Per un elenco dei servizi integrati con Service Health, vedi Prodotti Google supportati.

A differenza degli altri tipi di eventi, gli incidenti di Google Cloud non vengono identificati analizzando le voci di log. Se vuoi ricevere una notifica quando si verificano questi eventi, crea un criterio di avviso. Puoi selezionare un criterio di avviso preconfigurato utilizzando le opzioni nella pagina Dashboard dell'integrità dei servizi. Per ulteriori informazioni, consulta la Guida rapida: configurare un avviso.

Monitoring identifica gli incidenti di Google Cloud inviando una richiesta all'API Service Health e filtrando la risposta a quegli incidenti pertinenti ai dati che stai visualizzando. La richiesta ha la seguente configurazione:

  • L'enumerazione Relevance è impostata su RELATED, IMPACTED o PARTIALLY_RELATED. Questa limitazione garantisce che la dashboard mostri solo gli eventi per i servizi Google Cloud utilizzati dal tuo progetto Google Cloud.

  • L'enumerazione DetailedState non è impostata su FALSE_POSITIVE.

Le annotazioni di Service Health vengono visualizzate con un'ora di inizio e una durata. La durata viene visualizzata modificando il colore di sfondo del grafico. La descrizione comando per un incidente Google Cloud identifica quanto segue:

  • Il servizio Google Cloud.
  • Se l'incidente è aperto o risolto.
  • Data e ora di inizio dell'evento.
  • Chip che mostrano il numero di sedi e prodotti interessati. Per elencare le località o i prodotti interessati, posiziona il puntatore sul chip corrispondente.
  • Un pulsante Visualizza, che quando selezionato apre la pagina dei dettagli dell'incidente.

Per informazioni su come inviare una richiesta all'API Service Health, consulta Verificare la presenza di interruzioni con Service Health.

Per informazioni sulla risoluzione dei problemi, consulta Risolvere i problemi comuni di Service Health.

Tipi di eventi dei controlli di uptime

Questa sezione descrive i tipi di eventi dei controlli di uptime che possono essere mostrati in una dashboard.

Errore del controllo di uptime

Questo tipo di evento consente di identificare gli errori dei controlli di uptime nelle regioni configurate.

Se vuoi creare un criterio di avviso basato su log per questo tipo di evento, utilizza la seguente query:

log_id(monitoring.googleapis.com%2Fuptime_checks)
(
  resource.type=uptime_url OR resource.type=gce_instance OR
  resource.type=gae_app OR resource.type=k8s_service OR
  resource.type=servicedirectory_service OR resource.type=cloud_run_revision OR
  resource.type=aws_ec2_instance OR resource.type=aws_elb_load_balancer
)
labels.uptime_result_type=UptimeCheckResult
severity=NOTICE

Per informazioni sulla risoluzione dei problemi, vedi Risolvere i problemi relativi ai monitoraggi sintetici e ai controlli di uptime.

Passaggi successivi

Per scoprire come mostrare gli eventi sulle dashboard, consulta Mostrare gli eventi su una dashboard.