Utilizzare Cloud Monitoring per le pipeline Dataflow

Cloud Monitoring offre funzionalità avanzate di logging e diagnostica. L'integrazione di Dataflow con Monitoring ti consente di accedere alle metriche dei job Dataflow, come stato del job, conteggi elementi, ritardo di sistema (per i job di streaming) e contatori utenti, dalle dashboard di Monitoring. Puoi anche utilizzare gli avvisi di Monitoring per ricevere notifiche relative a varie condizioni, come un lungo ritardo di sistema nel flusso o job non riusciti.

Prima di iniziare

Segui il tutorial Java, il tutorial Python o il tutorial Go per configurare il progetto Dataflow. Poi, costruisci ed esegui la pipeline.

Per visualizzare i log in Metrics Explorer, il service account worker deve avere il ruolo roles/monitoring.metricWriter.

Metriche personalizzate

Qualsiasi metrica definita nella pipeline Apache Beam viene segnalata da Dataflow a Monitoring come metrica personalizzata. Apache Beam ha tre tipi di metriche della pipeline: Counter, Distribution e Gauge.

  • Dataflow invia report Counter e metriche Distribution a Monitoring.
  • Distribution viene segnalata come quattro submetriche con i suffissi _MAX, _MIN, _MEAN e _COUNT.
  • Dataflow non supporta la creazione di un istogramma dalle metriche Distribution.
  • Dataflow invia aggiornamenti incrementali a Monitoring circa ogni 30 secondi.
  • Per evitare conflitti, tutte le metriche personalizzate di Dataflow vengono esportate come tipo di dati double.
  • Per semplicità, tutte le metriche personalizzate di Dataflow vengono esportate come GAUGE tipo di metrica. Puoi monitorare la variazione in un periodo di tempo per una metrica GAUGE, come mostrato nell'esempio Monitoring Query Language seguente:

     fetch dataflow_job
     | metric 'dataflow.googleapis.com/job/user_counter'
     | filter (metric.job_id == '[JobID]')
     | delta 1m
     | group_by 1m, [value_user_counter_mean: mean(value.user_counter)]
     | every 1m
     | group_by [metric.ptransform, metric.metric_name],
       [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
    
  • Le metriche personalizzate di Dataflow vengono visualizzate in Monitoring come dataflow.googleapis.com/job/user_counter con le etichette metric_name: metric-name e ptransform: ptransform-name.

  • Per la compatibilità con le versioni precedenti, Dataflow segnala anche le metriche personalizzate a Monitoring come custom.googleapis.com/dataflow/metric-name.

  • Le metriche personalizzate di Dataflow sono soggette alla limitazione della cardinalità in Monitoring.

  • Ogni progetto ha un limite di 100 metriche personalizzate Dataflow. Queste metriche vengono pubblicate come custom.googleapis.com/dataflow/metric-name.

Le metriche personalizzate segnalate a Monitoring comportano addebiti in base ai prezzi di Cloud Monitoring.

Utilizzare Esplora metriche

Utilizza Monitoring per esplorare le metriche di Dataflow. Segui i passaggi descritti in questa sezione per osservare le metriche standard fornite per ogni pipeline Apache Beam. Per ulteriori informazioni sull'utilizzo di Metrics Explorer, consulta Creare grafici con Esplora metriche.

  1. Nella console Google Cloud , seleziona Monitoring:

    Vai a Monitoring

  2. Nel riquadro di navigazione, seleziona Metrics Explorer.

  3. Nel riquadro Seleziona una metrica, inserisci Dataflow Job nel filtro.

  4. Dall'elenco visualizzato, seleziona una metrica da osservare per uno dei tuoi job.

Quando esegui job Dataflow, ti consigliamo anche di monitorare le metriche per le origini e i sink. Ad esempio, potresti voler monitorare le metriche dell'API BigQuery Storage. Per saperne di più, consulta Creare dashboard, grafici e avvisi e l'elenco completo delle metriche di BigQuery Data Transfer Service.

Creare criteri di avviso e dashboard

Monitoring fornisce l'accesso alle metriche correlate a Dataflow. Crea dashboard per rappresentare graficamente le serie temporali delle metriche e crea criteri di avviso che ti avvisano quando le metriche raggiungono i valori specificati.

Creare gruppi di risorse

Per semplificare l'impostazione degli avvisi e la creazione di dashboard, crea gruppi di risorse che includano più pipeline Apache Beam.

  1. Nella console Google Cloud , seleziona Monitoring:

    Vai a Monitoring

  2. Nel riquadro di navigazione, seleziona Gruppi.

  3. Fai clic su Crea gruppo.

  4. Inserisci un nome per il gruppo.

  5. Aggiungi i criteri di filtro che definiscono le risorse Dataflow incluse nel gruppo. Ad esempio, uno dei criteri di filtro può essere il prefisso del nome delle pipeline. Crea gruppo.

  6. Dopo aver creato il gruppo, puoi visualizzare le metriche di base relative alle risorse del gruppo.

Crea criteri di avviso per le metriche Dataflow

Monitoring ti consente di creare avvisi e ricevere notifiche quando una metrica supera una soglia specificata. Ad esempio, puoi ricevere una notifica quando il ritardo sistema di una pipeline di streaming supera un valore predefinito.

  1. Nella console Google Cloud , seleziona Monitoring:

    Vai a Monitoring

  2. Nel riquadro di navigazione, seleziona Avvisi.

  3. Fai clic su Crea criterio.

  4. Nella pagina Crea nuovo criterio di avviso, definisci le condizioni di avviso e i canali di notifica.
    Ad esempio, per impostare un avviso sul ritardo del sistema per il gruppo di pipeline Apache Beam WindowedWordCount, completa i seguenti passaggi:

    1. Fai clic su Seleziona una metrica.
    2. Nel campo Seleziona una metrica, inserisci Dataflow Job.
    3. Per Categorie di metriche, seleziona Lavoro.
    4. Per Metriche, seleziona Ritardo sistema.

    Ogni volta che viene attivato un avviso, vengono creati un incidente e un evento corrispondente. Se nell'avviso hai specificato un meccanismo di notifica, ad esempio email o SMS, riceverai anche una notifica.

Creare dashboard di monitoraggio personalizzate

Puoi creare dashboard di Monitoring con i grafici correlati a Dataflow più pertinenti. Per aggiungere un grafico a una dashboard:

  1. Nella console Google Cloud , seleziona Monitoring:

    Vai a Monitoring

  2. Nel riquadro di navigazione, seleziona Dashboard.

  3. Fai clic su Crea dashboard.

  4. Fai clic su Aggiungi widget.

  5. Nella finestra Aggiungi widget, seleziona Metrica per Dati.

  6. Nel riquadro Seleziona una metrica, inserisci Dataflow Job per Metrica.

  7. Seleziona una categoria di metriche e una metrica.

Puoi aggiungere alla dashboard tutti i grafici che vuoi.

Ricevi le metriche delle VM worker dall'agente Monitoring

Puoi utilizzare Monitoring per monitorare le metriche relative a disco permanente, CPU, rete e processi. Quando esegui la pipeline, dalle istanze VM worker Dataflow, abilita l'agente Monitoring. Consulta l'elenco delle metriche dell'agente Monitoring disponibili.

Per abilitare l'agente Monitoring, utilizza l'opzione --experiments=enable_stackdriver_agent_metrics quando esegui la pipeline. Il service account worker deve avere il ruolo roles/monitoring.metricWriter.

Per disattivare l'agente di monitoraggio senza arrestare la pipeline, aggiorna la pipeline avviando un job di sostituzione senza il parametro --experiments=enable_stackdriver_agent_metrics.

Archiviazione e conservazione

Le informazioni sui job Dataflow completati o annullati vengono archiviate per 30 giorni.

I log operativi vengono archiviati nel bucket di log _Default. Il nome del servizio API Logging è dataflow.googleapis.com. Per saperne di più sui tipi di risorse monitorate e sui servizi utilizzati in Cloud Logging, consulta Risorse e servizi monitorati. Google Cloud

Per informazioni dettagliate sulla durata di conservazione delle voci di log da parte di Logging, consulta le informazioni sulla conservazione in Quote e limiti: periodi di conservazione dei log.

Per informazioni sulla visualizzazione dei log operativi, vedi Monitorare e visualizzare i log delle pipeline.

Passaggi successivi

Per saperne di più, consulta queste altre risorse: