Invia i log di esecuzione a Cloud Logging

Workflows generano automaticamente log di esecuzione per le esecuzioni dei flussi di lavoro in Cloud Logging.

Puoi anche attivare il logging delle chiamate. In alternativa, puoi creare log personalizzati che utilizzano la funzione sys.log nell'origine. La registrazione delle chiamate e i log personalizzati ti consentono di controllare quando i log vengono inviati a Logging durante l'esecuzione di un flusso di lavoro e possono essere particolarmente utili per il debug del flusso di lavoro.

Per maggiori dettagli, inclusi i file proto per la registrazione engine_call e executions_system, consulta questo repository GitHub.

Log di esecuzione

Ogni esecuzione del flusso di lavoro attiva automaticamente almeno due log di esecuzione: uno all'inizio di un'esecuzione e uno alla fine.

Per ulteriori informazioni sui log della piattaforma di Workflows disponibili in Logging, consulta Log della piattaforma Google Cloud.

Registrazione delle chiamate

Puoi impostare un flag in modo che ogni passaggio di chiamata durante l'esecuzione del flusso di lavoro venga registrato e che vengano restituiti i nomi dei passaggi, i nomi delle funzioni, gli argomenti delle funzioni e le risposte alle chiamate. In alternativa, puoi registrare eventuali eccezioni rilevate o che interrompono una chiamata.

Vengono registrati solo i passaggi di chiamata espliciti, ad esempio le chiamate a flussi di lavoro secondari o a funzioni della libreria. Le chiamate all'interno di espressioni o di funzioni della libreria standard (ad esempio http.post in sys.log) e all'interno dei connettori non vengono registrate.

Le intestazioni delle richieste HTTP Authorization vengono oscurate dai log per le chiamate HTTP.

Quando applichi il logging delle chiamate a una definizione del flusso di lavoro o all'esecuzione di un flusso di lavoro, puoi specificare il livello di logging richiesto. Il livello di log dell'esecuzione ha la precedenza su qualsiasi livello di log del flusso di lavoro, a meno che non sia specificato il livello di log dell'esecuzione (valore predefinito). In questo caso, viene applicato il livello di log del flusso di lavoro.

Tieni presente che il limite di dimensione delle voci di log impostato da Cloud Logging si applica anche al logging delle chiamate.

Log personalizzati

Per creare una voce di log in Logging durante l'esecuzione di un flusso di lavoro, definisci un passaggio nel flusso di lavoro che esegue una chiamata alla funzione sys.log della libreria standard:

YAML

  - step1:
      assign:
          - varA: "Hello"
          - varB: "World"
  - logStep:
      call: sys.log
      args:
          text: TEXT
          severity: SEVERITY 
  - step2:
      return: ${varA + " " + varB}
    

JSON

    [
      {
        "step1": {
          "assign": [
            {
              "varA": "Hello"
            },
            {
              "varB": "World"
            }
          ]
        }
      },
      {
        "logStep": {
          "call": "sys.log",
          "args": {
            "text": "TEXT",
            "severity": "SEVERITY"
          }
        }
      },
      {
        "step2": {
          "return": "${varA + " " + varB}"
        }
      }
    ]
      

Quando crei una voce di log, definisci quanto segue:

  • TEXT: obbligatorio. Il testo da registrare. Se devi registrare i valori di una mappa, utilizza ${json.encode_to_string(myMap)}.
  • SEVERITY: facoltativo. Il livello di gravità della voce di log. Ad esempio, INFO, WARNING o CRITICAL.

Per ulteriori informazioni, consulta il riferimento alla funzione sys.log.

Autorizzazioni obbligatorie

Per applicare il logging delle chiamate o inviare log personalizzati a Logging, un flusso di lavoro deve essere associato a un account di servizio che includa l'autorizzazione logging.logEntries.create (ad esempio, il ruolo roles/logging.logWriter). Se devi modificare l'account di servizio aggiornato con il flusso di lavoro, consulta Aggiornare un flusso di lavoro. Per scoprire di più sulla creazione di account di servizio e sull'assegnazione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Visualizza i log del flusso di lavoro

Puoi visualizzare i log in Workflows o in Logging. Per visualizzare i log di un singolo flusso di lavoro, utilizza la scheda Log in Workflows. Per ottenere una visualizzazione aggregata dei log per tutti i tuoi flussi di lavoro, utilizza la pagina Esplora log in Logging.

Visualizzare i log in Workflows

Per visualizzare i log di un flusso di lavoro in Workflows:

  1. Nella console Google Cloud, vai alla pagina Workflows:

    Vai a Flussi di lavoro

  2. Per accedere ai log di un flusso di lavoro, fai clic sul nome del flusso di lavoro per visualizzarne la pagina Dettagli.

  3. Per visualizzare i log, fai clic su Log.

  4. Per filtrare i log in base alla gravità, nell'elenco Predefinito, seleziona il tipo di log da visualizzare. Per impostazione predefinita, vengono mostrati i log di tutti i livelli di gravità.

La scheda Log nella pagina Dettagli di un flusso di lavoro mostra i seguenti tipi di log:

  • Log inviati a Logging

  • Audit log di qualsiasi operazione eseguita sul flusso di lavoro, ad esempio aggiornamenti alla definizione del flusso di lavoro

Visualizzare i log in Logging

Per visualizzare i log in Logging:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

  2. In Query Builder, fai clic su Risorsa e inserisci workflow. Seleziona Cloud Workflow dall'elenco e fai clic su Aggiungi.

    Log del flusso di lavoro

  3. Fai clic su Esegui query.

Per scoprire di più sulla visualizzazione dei log in Log, consulta Utilizzare Esplora log.

Passaggi successivi