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 flusso) e contatori utenti dalle dashboard di Monitoring. Puoi anche utilizzare gli avvisi di monitoraggio per ricevere notifiche su varie condizioni, ad esempio un lungo ritardo di sistema nel flusso o job non riusciti.

Prima di iniziare

Segui la guida rapida Java, la guida rapida Python o la guida rapida Go per configurare il tuo progetto Dataflow. Poi, crea ed esegui la pipeline.

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

Metriche personalizzate

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

  • Dataflow registra le metriche Counter e Distribution in Monitoring.
  • Distribution viene riportato come quattro metriche secondarie con suffisso _MAX, _MIN, _MEAN e _COUNT.
  • Dataflow non supporta la creazione di un istogramma dalle metriche Distribution.
  • Dataflow genera aggiornamenti incrementali in Monitoring approssimativamente 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 il delta in un intervallo di tempo per una metrica GAUGE, come mostrato nel seguente esempio di Monitoring Query Language:

     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 registra anche le metriche personalizzate in 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 di Dataflow. Queste metriche vengono pubblicate come custom.googleapis.com/dataflow/metric-name.

Le metriche personalizzate registrate in Monitoraggio comportano addebiti in base ai prezzi di Cloud Monitoring.

Utilizzare Metrics Explorer

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

  1. Nella console Google Cloud, seleziona Monitoring:

    Vai a Monitoring

  2. Nel riquadro di navigazione, seleziona Esplora metriche.

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

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

Quando esegui job Dataflow, ti consigliamo di monitorare anche le metriche per le origini e le destinazioni. 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 accesso alle metriche relative a Dataflow. Crea dashboard per tracciare le serie temporali delle metriche e criteri di avviso che ti inviano una notifica quando le metriche raggiungono valori specifici.

Creare gruppi di risorse

Per semplificare l'impostazione degli avvisi e la creazione di dashboard, crea gruppi di risorse che includono 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 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 al suo interno.

Creare criteri di avviso per le metriche di Dataflow

Il monitoraggio 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, completa i seguenti passaggi:WindowedWordCount

    1. Fai clic su Seleziona una metrica.
    2. Nel campo Seleziona una metrica, inserisci Dataflow Job.
    3. In Metric Categories (Categorie di metriche), seleziona Job (Job).
    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.

Crea dashboard di monitoraggio personalizzate

Puoi creare dashboard di monitoraggio 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 in Metrica.

  7. Seleziona una categoria di metriche e una metrica.

Puoi aggiungere alla dashboard tutti i grafici che vuoi.

Ricevere le metriche delle VM worker dall'agente di monitoraggio

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

Per attivare l'agente Monitoring, utilizza l'opzione --experiments=enable_stackdriver_agent_metrics quando esegui la pipeline. L'account di servizio di lavoro deve avere il ruolo roles/monitoring.metricWriter.

Per disattivare l'agente di monitoraggio senza arrestare la pipeline, aggiornatela avviando un job sostitutivo 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 _Default bucket di log. Il nome del servizio dell'API Logging è dataflow.googleapis.com. Per saperne di più sui tipi di risorse e sui servizi monitorati di Google Cloud utilizzati in Cloud Logging, consulta Risorse e servizi monitorati.

Per informazioni dettagliate sul periodo 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, consulta Monitorare e visualizzare i log della pipeline.

Passaggi successivi

Per saperne di più, ti consigliamo di consultare queste altre risorse: