Monitora lo stato dei job utilizzando le notifiche Pub/Sub e BigQuery

Questo documento spiega come monitorare le modifiche dello stato dei job e delle attività impostando le notifiche Pub/Sub. Puoi utilizzare le notifiche per vari casi d'uso. Ad esempio, questo documento spiega come eseguire lo streaming delle notifiche in una tabella BigQuery, che puoi utilizzare per analizzare i dati. Per scoprire di più sui casi d'uso delle notifiche Pub/Sub, consulta Scegliere un tipo di sottoscrizione nella documentazione di Pub/Sub.

In alternativa, se vuoi esportare tutte le informazioni su un job in BigQuery, consulta Esportare le informazioni sui job.

Prima di iniziare

  1. Se non hai mai utilizzato Batch, consulta la guida introduttiva all'utilizzo di Batch e attivalo completando i prerequisiti per progetti e utenti.
  2. Se vuoi configurare le notifiche Pub/Sub per i tuoi job Batch, segui questi passaggi:
    1. Enable the Pub/Sub API.

      Enable the API

    2. Per ottenere le autorizzazioni necessarie per configurare un argomento e una sottoscrizione Pub/Sub, chiedi all'amministratore di concederti il ruolo IAM Editor Pub/Sub (roles/pubsub.editor) in un progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

      Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  3. I requisiti aggiuntivi variano in base al tipo di abbonamento che decidi di configurare. Ad esempio, se vuoi trasmettere in streaming e analizzare le notifiche in una tabella BigQuery, devi:
    1. Enable the BigQuery API.

      Enable the API

    2. Per assicurarti che l'account di servizio Pub/Sub disponga delle autorizzazioni necessarie per eseguire lo streaming delle notifiche Pub/Sub in BigQuery, chiedi all'amministratore di concedere all'account di servizio Pub/Sub il ruolo IAM Editor dati BigQuery (roles/bigquery.dataEditor) nel progetto dell'argomento Pub/Sub.

      Per ulteriori informazioni sull'assegnazione di questo ruolo, consulta Assegnare i ruoli BigQuery all'account di servizio Pub/Sub.

    3. Assicurati che tutti gli utenti di cui vuoi analizzare le notifiche in BigQuery dispongano delle autorizzazioni necessarie.

      Per ottenere le autorizzazioni necessarie per eseguire query sulle notifiche Pub/Sub in BigQuery, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Configurare le notifiche Pub/Sub per Batch

Batch supporta le notifiche Pub/Sub per le modifiche agli stati di job e attività, che puoi utilizzare per avvisi, osservabilità o analisi.

Per configurare le notifiche Pub/Sub per uno o più job Batch, completa i passaggi descritti nelle sezioni seguenti:

  1. Crea o identifica un argomento Pub/Sub per i tuoi job Batch.
  2. Crea almeno una sottoscrizione per il tuo argomento per ricevere e utilizzare le relative notifiche.
  3. Configura i job per inviare notifiche al tuo argomento.

Dopo aver configurato le notifiche Pub/Sub per Batch, puoi optionally configurare ogni job in modo da inviare notifiche specifiche. Puoi ricevere notifiche ogni volta che cambiano gli stati dei job o delle attività oppure puoi filtrare le notifiche in base a stati specifici dei job o delle attività. In particolare, Pub/Sub non invia notifiche per il primo stato in cui entra un job o un'attività, ma solo quando un job passa da uno stato all'altro. Per ulteriori informazioni sugli attributi che puoi configurare per le notifiche Pub/Sub, consulta Creare ed eseguire un job che invia notifiche di stato Pub/Sub.

Crea o identifica un argomento Pub/Sub per Batch

Crea un nuovo argomento Pub/Sub o identifica un argomento Pub/Sub esistente che vuoi utilizzare per le notifiche di Batch.

Come spiegato più avanti in questo documento, i job non possono inviare notifiche a questo argomento Pub/Sub finché l'amministratore non concede autorizzazioni aggiuntive che lo consentano.

Crea un abbonamento per ricevere e utilizzare le notifiche

Per ricevere e utilizzare i messaggi pubblicati in un argomento Pub/Sub, devi creare almeno una sottoscrizione per quell'argomento.

Ad esempio, un'opzione è configurare l'argomento in modo da trasmettere le notifiche in streaming a BigQuery. Quando esegui job che pubblicano notifiche, puoi riceverle e analizzarle in una tabella BigQuery. Per ulteriori informazioni, consulta Esempio: ricevi e utilizza le notifiche Pub/Sub in BigQuery in questo documento.

In caso contrario, per saperne di più sugli abbonamenti e su altre opzioni di abbonamento, consulta la Panoramica degli abbonamenti nella documentazione di Pub/Sub.

Configurare i job per inviare notifiche all'argomento

Per configurare i job che inviano notifiche Pub/Sub al tuo argomento, segui le istruzioni riportate nella pagina Creare ed eseguire un job che invia notifiche di stato Pub/Sub. In particolare:

  1. Se non lo hai già fatto, chiedi all'amministratore di concedere tutte le autorizzazioni necessarie per consentire ai job di inviare notifiche al tuo argomento Pub/Sub. Queste autorizzazioni sono elencate nella sezione Ruoli richiesti di quella pagina.
  2. Crea ed esegui un job che attiva le notifiche Pub/Sub definendo il campo notifications del job.

Esempio: ricevi e utilizza le notifiche Pub/Sub in BigQuery

Le sezioni seguenti illustrano un caso d'uso di esempio per la ricezione e l'utilizzo delle notifiche Pub/Sub in BigQuery. Configurando un abbonamento che trasmette in streaming le notifiche Pub/Sub dell'argomento in una tabella BigQuery, puoi conservare la cronologia delle modifiche dello stato dei job e delle attività ed eseguire query su queste modifiche.

Configurare una sottoscrizione che trasmette le notifiche in streaming a BigQuery

Configura un abbonamento Pub/Sub che trasmette le notifiche da un argomento a una tabella BigQuery nel seguente modo:

  1. Se non l'hai ancora fatto, crea o identifica un argomento Pub/Sub per Batch.

  2. Se non ne hai già uno, crea un set di dati BigQuery.

  3. Crea una tabella BigQuery con la seguente definizione di schema:

    [
      {
        "name": "data",
        "type": "STRING"
      },
      {
        "name": "subscription_name",
        "type": "STRING"
      },
      {
        "name": "message_id",
        "type": "STRING"
      },
      {
        "name": "attributes",
        "type": "JSON"
      },
      {
        "name": "publish_time",
        "type": "TIMESTAMP",
        "mode": "NULLABLE"
      }
    ]
    
  4. Crea una sottoscrizione Pub/Sub che trasmette in streaming in BigQuery e specifica le seguenti opzioni:

    • Argomento: seleziona l'argomento Pub/Sub per Batch.
    • Progetto: seleziona il progetto contenente la tabella BigQuery.
    • Set di dati: seleziona il set di dati contenente la tabella BigQuery.
    • Tabella: seleziona la tabella creata nel passaggio precedente.
    • Seleziona Utilizza schema argomento.
    • Seleziona Scrivere metadati.

Ora, ogni volta che viene inviata una notifica Pub/Sub a quell'argomento, Pub/Sub la invia in streaming alla tabella BigQuery. Dopo aver configurato i job per inviare notifiche Pub/Sub, puoi analizzare le notifiche in BigQuery.

Analizzare le notifiche in BigQuery

Puoi analizzare le notifiche in BigQuery dopo aver configurato un abbonamento a una tabella BigQuery per il tuo argomento ed eseguito job che inviano notifiche al tuo argomento. Per analizzare le notifiche in BigQuery, esegui una query sulla colonna attributes della tabella BigQuery. Gli attributi su cui puoi eseguire query dipendono dal fatto che tu abbia configurato le notifiche per attività o job.

Puoi eseguire query sui seguenti attributi delle notifiche delle attività:

  • JobUID
  • NewTaskState
  • Region
  • TaskName
  • TaskUID
  • Type

Puoi eseguire query sui seguenti attributi delle notifiche dei job:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

Ad esempio, la seguente query mostra il JobUID associato a ogni notifica:

select attributes.JobUID from `example-table`

Passaggi successivi