Cloud Composer 1 | Cloud Composer 2
Puoi utilizzare Cloud Monitoring e Cloud Logging con Cloud Composer.
Cloud Monitoring offre visibilità su prestazioni, tempo di attività e integrità complessiva delle applicazioni basate su cloud. Cloud Monitoring raccoglie e importa metriche, eventi e metadati da Cloud Composer per generare insight in dashboard e grafici. Puoi usare Cloud Monitoring per comprendere le prestazioni e l'integrità dei tuoi ambienti Cloud Composer e delle metriche di Airflow.
Logging acquisisce i log prodotti dallo scheduler e dai container worker nel cluster del tuo ambiente. Questi log contengono informazioni sulle dipendenze di Airflow e a livello di sistema utili per il debug. Per informazioni sulla visualizzazione dei log, consulta Visualizzare i log di Airflow.
Prima di iniziare
Per accedere a log e metriche per il tuo ambiente Cloud Composer sono necessarie le seguenti autorizzazioni:
- Accesso di sola lettura a log e metriche:
logging.viewer
emonitoring.viewer
- Accesso di sola lettura ai log, inclusi i log privati:
logging.privateLogViewer
- Accesso in lettura/scrittura alle metriche:
monitoring.editor
Per ulteriori informazioni su altre autorizzazioni e ruoli per Cloud Composer, consulta Controllo dell'accesso.
- Accesso di sola lettura a log e metriche:
Per evitare il logging duplicato, Cloud Logging per Google Kubernetes Engine è disabilitato.
Cloud Logging produce una voce per ogni stato e evento che si verifica nel progetto Google Cloud. Puoi utilizzare i filtri di esclusione per ridurre il volume dei log, inclusi quelli prodotti da Cloud Logging per Cloud Composer.
L'esclusione dei log da
jobs.py
può causare errori del controllo di integrità ed erroriCrashLoopBackOff
. Devi includere-jobs.py
nei filtri di esclusione per evitare che venga escluso.Il monitoraggio non può tracciare i valori di conteggio per i DAG e le attività che vengono eseguite più di una volta al minuto e non traccia le metriche per le attività non riuscite.
Metriche relative all'ambiente
Puoi utilizzare le metriche di ambiente per controllare l'utilizzo e l'integrità delle risorse dei tuoi ambienti Cloud Composer.
Integrità dell'ambiente
Per controllare l'integrità del tuo ambiente, puoi utilizzare la seguente metrica dello stato di integrità: composer.googleapis.com/environment/healthy
.
Cloud Composer esegue un DAG di attività denominato airflow_monitoring
, che viene eseguito in base a una pianificazione e segnala l'integrità dell'ambiente come segue:
- Se l'esecuzione del DAG di attività termina correttamente, lo stato di integrità è
True
. - Se l'esecuzione del DAG di attività non va a buon fine, lo stato di integrità è
False
.
Il DAG di attività è archiviato nella cartella dags/
ed è visibile
nella UI di Airflow. La frequenza e i contenuti del DAG di attività sono immutabili e non devono essere modificati. Le modifiche al DAG di attività non vengono mantenute.
Controlli delle dipendenze dell'ambiente
Cloud Composer controlla periodicamente che l'ambiente possa raggiungere i servizi richiesti per il suo funzionamento e che disponga di autorizzazioni sufficienti per interagire. Esempi di servizi richiesti per il funzionamento dell'ambiente sono Artifact Registry, Cloud Logging e Cloud Monitoring.
Per i controlli delle dipendenze dell'ambiente sono disponibili le seguenti metriche:
Metrica di dipendenza | API | Descrizione |
---|---|---|
Numero di controlli delle dipendenze | composer.googleapis.com/environment/health/dependency_check_count |
Questa metrica monitora il numero di volte in cui i controlli di connettività vengono eseguiti sui servizi richiesti per il funzionamento dell'ambiente. |
Numero di controlli delle autorizzazioni di dipendenza | composer.googleapis.com/environment/health/dependency_permissions_check_count |
Questa metrica monitora il numero di volte in cui vengono eseguiti i controlli delle autorizzazioni sui servizi richiesti per il funzionamento dell'ambiente. |
Integrità del database
Per controllare l'integrità del database, puoi utilizzare la seguente metrica dello stato di integrità: composer.googleapis.com/environment/database_health
.
Il pod di monitoraggio Airflow invia un ping al database ogni minuto e segnala lo stato di integrità come True
se è possibile stabilire una connessione SQL o False
in caso contrario.
Metriche del database
Le seguenti metriche di ambiente sono disponibili per il database di metadati Airflow utilizzato dagli ambienti Cloud Composer. Puoi utilizzare queste metriche per monitorare le prestazioni e l'utilizzo delle risorse dell'istanza di database del tuo ambiente.
Ad esempio, è possibile che tu voglia eseguire l'upgrade del tipo di macchina Cloud SQL del tuo ambiente se il tuo ambiente si avvicina ai limiti delle risorse. Oppure potresti voler ottimizzare i costi relativi all'utilizzo del database di metadati Airflow eseguendo una pulizia del database per mantenere lo spazio di archiviazione sotto una determinata soglia.
Metrica di database | API | Descrizione |
---|---|---|
Utilizzo CPU database |
composer.googleapis.com/environment/database/cpu/usage_time
|
|
Core CPU del database |
composer.googleapis.com/environment/database/cpu/reserved_cores
|
|
Utilizzo CPU database |
composer.googleapis.com/environment/database/cpu/utilization
|
|
Utilizzo memoria di database |
composer.googleapis.com/environment/database/memory/bytes_used
|
|
Quota di memoria del database |
composer.googleapis.com/environment/database/memory/quota
|
|
Utilizzo memoria di database |
composer.googleapis.com/environment/database/memory/utilization
|
|
Utilizzo disco database |
composer.googleapis.com/environment/database/disk/bytes_used
|
|
Quota disco database |
composer.googleapis.com/environment/database/disk/quota
|
|
Utilizzo disco di database |
composer.googleapis.com/environment/database/disk/utilization
|
|
Limite di connessioni al database |
composer.googleapis.com/environment/database/network/max_connections
|
|
Connessioni al database |
composer.googleapis.com/environment/database/network/connections
|
|
Database disponibile per il failover |
composer.googleapis.com/environment/database/available_for_failover
|
È True se l'istanza Cloud SQL dell'ambiente è in modalità ad alta disponibilità ed è pronta per il failover. |
Conteggio delle richieste di failover automatiche del database |
composer.googleapis.com/environment/database/auto_failover_request_count
|
Numero totale di richieste di failover automatico dell'istanza Cloud SQL dell'ambiente. |
Metriche dello scheduler
Nome | API | Descrizione |
---|---|---|
Scheduler attivi |
composer.googleapis.com/environment/active_schedulers
|
Numero di istanze dello scheduler attive. |
Metriche dell'attivatore
Le seguenti metriche dell'attivatore sono fornite esclusivamente per Cloud Composer:
Nome | API | Descrizione |
---|---|---|
Trigger attivi |
composer.googleapis.com/environment/active_triggerers
|
Il numero di istanze dell'attivatore attive. |
Inoltre, le seguenti metriche di Airflow sono disponibili tramite le metriche di Cloud Composer:
Nome | API | Nome in Airflow | Descrizione |
---|---|---|---|
Numero totale di trigger in esecuzione |
composer.googleapis.com/workload/triggerer/num_running_triggers
|
triggers.running
|
Il numero di trigger in esecuzione per istanza triggerer. |
Trigger di blocco |
composer.googleapis.com/environment/trigger/blocking_count
|
triggers.blocked_main_thread
|
Numero di trigger che hanno bloccato il thread principale (probabilmente perché non è completamente asincrono). |
Trigger non riusciti |
composer.googleapis.com/environment/trigger/failed_count
|
triggers.failed
|
Numero di attivatori che non hanno avuto esito positivo con un errore prima che potessero attivare un evento. |
Trigger riusciti |
composer.googleapis.com/environment/trigger/succeeded_count
|
triggers.succeeded
|
Numero di attivatori che hanno attivato almeno un evento. |
Metriche del server web
Le seguenti metriche di ambiente sono disponibili per il server web Airflow utilizzato dagli ambienti Cloud Composer. Puoi utilizzare queste metriche per verificare le prestazioni e l'utilizzo delle risorse dell'istanza del server web Airflow nel tuo ambiente.
Ad esempio, potresti voler eseguire l'upgrade del tipo di macchina del server web se si avvicina costantemente ai limiti delle risorse.
Nome | API | Descrizione |
---|---|---|
Utilizzo CPU server web |
composer.googleapis.com/environment/web_server/cpu/usage_time
|
|
Quota di CPU del server web |
composer.googleapis.com/environment/web_server/cpu/reserved_cores
|
|
Utilizzo memoria server web |
composer.googleapis.com/environment/web_server/memory/bytes_used
|
|
Quota di memoria del server web |
composer.googleapis.com/environment/web_server/memory/quota
|
|
Server web attivi |
composer.googleapis.com/environment/active_webservers
|
Numero di istanze del server web attive. |
Metriche DAG
Per aiutarti a monitorare l'efficienza delle esecuzioni di DAG e identificare le attività che causano un'alta latenza, sono disponibili le seguenti metriche DAG.
Metrica DAG | API |
---|---|
Numero di esecuzioni di DAG |
composer.googleapis.com/workflow/run_count |
Durata di ogni esecuzione di DAG |
composer.googleapis.com/workflow/run_duration |
Numero di esecuzioni di attività |
composer.googleapis.com/workflow/task/run_count |
Durata di ogni esecuzione di attività |
composer.googleapis.com/workflow/task/run_duration |
Cloud Monitoring mostra solo le metriche relative al flusso di lavoro e alle esecuzioni di attività completate (riuscito o non riuscito). Nessun dato viene visualizzato quando non è presente alcuna attività del flusso di lavoro e per le esecuzioni di attività e flusso di lavoro in corso.
Metriche esecutore Celery
Sono disponibili le seguenti metriche Esecutore Celery. Queste metriche possono aiutarti a determinare se sono disponibili risorse worker sufficienti nel tuo ambiente.
Metrica esecutore Celery | API |
---|---|
Numero di attività in coda |
composer.googleapis.com/environment/task_queue_length |
Numero di worker Celery online |
composer.googleapis.com/environment/num_celery_workers |
Metriche Airflow
Sono disponibili le seguenti metriche di Airflow. Queste metriche corrispondono alle metriche fornite da Airflow.
Nome | API | Nome in Airflow | Descrizione |
---|---|---|---|
Codici di uscita diversi da zero dell'attività Celery |
composer.googleapis.com/environment/celery/execute_command_failure_count
|
celery.execute_command.failure
|
Numero di codice di uscita diverso da zero delle attività Celery. |
Timeout di pubblicazione attività Celery |
composer.googleapis.com/environment/celery/task_timeout_error_count
|
celery.task_timeout_error
|
Numero di AirflowTaskTimeout errori generati durante la pubblicazione dell'attività nel broker Celery. |
Durata del recupero dei DAG serializzati |
composer.googleapis.com/environment/collect_db_dag_duration
|
collect_db_dags
|
Tempo impiegato per il recupero di tutti i DAG serializzati dal database. |
Errori di aggiornamento dei DAG |
composer.googleapis.com/environment/dag_callback/exception_count
|
dag.callback_exceptions
|
Numero di eccezioni sollevate dai callback DAG. In questo caso, significa che un callback DAG non funziona. |
Errori di aggiornamento dei DAG |
composer.googleapis.com/environment/dag_file/refresh_error_count
|
dag_file_refresh_error
|
Numero di errori durante il caricamento dei file DAG. |
Tempo di caricamento del file DAG |
composer.googleapis.com/environment/dag_processing/last_duration
|
dag_processing.last_duration.<dag_file>
|
Tempo impiegato per caricare un file DAG specifico. |
Tempo trascorso dall'elaborazione del file DAG |
composer.googleapis.com/environment/dag_processing/last_run_elapsed_time
|
dag_processing.last_run.seconds_ago.<dag_file>
|
Secondi dall'ultima elaborazione di un file DAG. |
Numero di blocchi dagFileProcessorManager |
composer.googleapis.com/environment/dag_processing/manager_stall_count
|
dag_processing.manager_stalls
|
Numero di processi DagFileProcessorManager in stallo. |
Errori di analisi dei DAG |
composer.googleapis.com/environment/dag_processing/parse_error_count
|
dag_processing.import_errors
|
Numero di errori generati durante l'analisi dei file DAG. |
Esecuzione dei processi di analisi dei DAG |
composer.googleapis.com/environment/dag_processing/processes
|
dag_processing.processes
|
Numero di processi di analisi dei DAG attualmente in esecuzione. |
Timeout del processore |
composer.googleapis.com/environment/dag_processing/processor_timeout_count
|
dag_processing.processor_timeouts
|
Numero di processori di file terminati perché impiegano troppo tempo. |
Tempo impiegato per la scansione e l'importazione di tutti i file DAG |
composer.googleapis.com/environment/dag_processing/total_parse_time
|
dag_processing.total_parse_time
|
Tempo totale impiegato per scansionare e importare tutti i file DAG una volta. |
Dimensioni attuali del bag DAG |
composer.googleapis.com/environment/dagbag_size
|
dagbag_size
|
Numero di DAG rilevati quando lo scheduler ha eseguito una scansione in base alla sua configurazione. |
Notifiche di mancata ricezione dello SLA (accordo sul livello del servizio) non riuscite |
composer.googleapis.com/environment/email/sla_notification_failure_count
|
sla_email_notification_failure
|
Numero di tentativi di mancata notifica via email secondo lo SLA (accordo sul livello del servizio) non riusciti. |
Slot aperti sull'esecutore |
composer.googleapis.com/environment/executor/open_slots
|
executor.open_slots
|
Numero di slot aperti nell'esecutore. |
Attività in coda sull'esecutore |
composer.googleapis.com/environment/executor/queued_tasks
|
executor.queued_tasks
|
Numero di attività in coda nell'esecutore. |
Attività in esecuzione sull'esecutore |
composer.googleapis.com/environment/executor/running_tasks
|
executor.running_tasks
|
Numero di attività in esecuzione nell'esecutore. |
Riuscite/fallimento delle istanze delle attività |
composer.googleapis.com/environment/finished_task_instance_count
|
ti_failures , ti_successes
|
Successi/errori complessivi di istanze di attività. |
Lavori avviati/completati |
composer.googleapis.com/environment/job/count
|
<job_name>_start , <job_name>_end
|
Numero di job avviati/completati, ad esempio SchedulerJob, LocalTaskJob. |
Errori dell'heartbeat del job |
composer.googleapis.com/environment/job/heartbeat_failure_count
|
<job_name>_heartbeat_failure
|
Numero di heartbeat non riusciti per un job. |
Attività create per operatore |
composer.googleapis.com/environment/operator/created_task_instance_count
|
task_instance_created-<operator_name>
|
Numero di istanze di attività create per un determinato operatore. |
Esecuzioni dell'operatore |
composer.googleapis.com/environment/operator/finished_task_instance_count
|
operator_failures_<operator_name> , operator_successes_<operator_name>
|
Numero di istanze di attività completate per operatore |
Slot aperti nel pool |
composer.googleapis.com/environment/pool/open_slots
|
pool.open_slots.<pool_name>
|
Numero di slot aperti nel pool. |
Slot in coda nel pool |
composer.googleapis.com/environment/pool/queued_slots
|
pool.queued_slots.<pool_name>
|
Numero di slot in coda nel pool. |
Slot in esecuzione nel pool |
composer.googleapis.com/environment/pool/running_slots
|
pool.running_slots.<pool_name>
|
Numero di slot in esecuzione nel pool. |
Attività speciali nel pool |
composer.googleapis.com/environment/pool/starving_tasks
|
pool.starving_tasks.<pool_name>
|
Numero di attività affamate nel pool. |
Tempo trascorso nella sezione critica dello scheduler |
composer.googleapis.com/environment/scheduler/critical_section_duration
|
scheduler.critical_section_duration
|
Tempo trascorso nella sezione critica del loop dello scheduler. Questo loop può entrare in un solo scheduler alla volta. |
Errori critici di blocco della sezione |
composer.googleapis.com/environment/scheduler/critical_section_lock_failure_count
|
scheduler.critical_section_busy
|
Numero di volte in cui un processo dello scheduler ha tentato di bloccare la sezione critica (necessario inviare attività all'esecutore) e l'ha trovata bloccata da un altro processo. |
Attività terminate esternamente |
composer.googleapis.com/environment/scheduler/task/externally_killed_count
|
scheduler.tasks.killed_externally
|
Numero di attività terminate esternamente. |
Attività orfane |
composer.googleapis.com/environment/scheduler/task/orphan_count
|
scheduler.orphaned_tasks.cleared , scheduler.orphaned_tasks.adopted
|
Numero di attività orfane cancellate/adottate dallo scheduler. |
Attività in esecuzione/a fame/eseguibili |
composer.googleapis.com/environment/scheduler/tasks
|
scheduler.tasks.running , scheduler.tasks.starving , scheduler.tasks.executable
|
Numero di attività in esecuzione/a fame/eseguibili. |
Heartbeat dello scheduler |
composer.googleapis.com/environment/scheduler_heartbeat_count
|
scheduler_heartbeat
|
Heartbeat dello scheduler. |
Notifiche di callback SLA non riuscite |
composer.googleapis.com/environment/sla_callback_notification_failure_count
|
sla_callback_notification_failure
|
Numero di tentativi di notifica di mancata richiamata a livello di SLA non riusciti. |
Errori di eccezione del sensore smart |
composer.googleapis.com/environment/smart_sensor/exception_failures
|
smart_sensor_operator.exception_failures
|
Numero di errori causati da un'eccezione nel precedente ciclo di ricerca del sensore smart. |
Sensore smart che analizza i guasti dell'infrastruttura |
composer.googleapis.com/environment/smart_sensor/infra_failures
|
smart_sensor_operator.infra_failures
|
Numero di errori dell'infrastruttura nel precedente ciclo di analisi dei sensori smart. |
Eccezioni per la ricerca di sensori smart |
composer.googleapis.com/environment/smart_sensor/poked_exception
|
smart_sensor_operator.poked_exception
|
Numero di eccezioni nel precedente ciclo di ricerca dei sensori smart. |
Attività del sensore smart correttamente cercate |
composer.googleapis.com/environment/smart_sensor/poked_success
|
smart_sensor_operator.poked_success
|
Numero di nuove attività riuscite rilevate dal sensore smart nel ciclo di ricerca precedente. |
Attività tramite sensore smart |
composer.googleapis.com/environment/smart_sensor/poked_tasks
|
smart_sensor_operator.poked_tasks
|
Numero di attività sottoposte dal sensore smart nel ciclo di ricerca precedente. |
Istanze attività riuscite in precedenza |
composer.googleapis.com/environment/task_instance/previously_succeeded_count
|
previously_succeeded
|
Numero di istanze attività completate in precedenza. |
Attività zombie uccise |
composer.googleapis.com/environment/zombie_task_killed_count
|
zombies_killed
|
Numero di attività di zombie uccisi. |
Durata di esecuzione di DAG |
composer.googleapis.com/workflow/dag/run_duration
|
dagrun.duration.success.<dag_id> , dagrun.duration.failed.<dag_id>
|
Tempo impiegato da una DagRun per raggiungere lo stato di operazione riuscita/non riuscita. |
Durata del controllo delle dipendenze DAG |
composer.googleapis.com/workflow/dependency_check_duration
|
dagrun.dependency-check.<dag_id>
|
Tempo impiegato per controllare le dipendenze DAG. Questa metrica è diversa dalle metriche dei controlli di dipendenze e autorizzazioni dell'ambiente e si applica ai DAG |
Ritardo pianificazione esecuzione DAG |
composer.googleapis.com/workflow/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tempo di ritardo tra la data di inizio pianificata di DagRun e la data di inizio effettiva di DagRun. |
Attività completate |
composer.googleapis.com/workflow/task_instance/finished_count
|
ti.finish.<dag_id>.<task_id>.<state>
|
Numero di attività completate in un determinato DAG. |
Durata di esecuzione dell'istanza attività |
composer.googleapis.com/workflow/task_instance/run_duration
|
dag.<dag_id>.<task_id>.duration
|
Tempo impiegato per completare un'attività. |
Attività avviate |
composer.googleapis.com/workflow/task_instance/started_count
|
ti.start.<dag_id>.<task_id>
|
Numero di attività avviate in un determinato DAG. |
Attività rimosse da DAG |
composer.googleapis.com/workflow/task/removed_from_dag_count
|
task_removed_from_dag.<dag_id>
|
Numero di attività rimosse per un determinato DAG (ovvero l'attività non esiste più nel DAG). |
Attività ripristinate in DAG |
composer.googleapis.com/workflow/task/restored_to_dag_count
|
task_restored_to_dag.<dag_id>
|
Numero di attività ripristinate per un determinato DAG (ossia, l'istanza dell'attività che in precedenza era nello stato RIMOSSO nel database viene aggiunta al file DAG). |
Ritardo della pianificazione delle attività |
composer.googleapis.com/workflow/task/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tempo trascorso tra la data iniziale della prima attività e l'inizio previsto del dagrun. |
Utilizzo di Monitoring per gli ambienti Cloud Composer
Console
Puoi utilizzare Metrics Explorer per visualizzare le metriche relative ai tuoi ambienti e ai tuoi DAG:
La risorsa Ambiente di Cloud Composer contiene metriche per gli ambienti.
Per visualizzare le metriche per un ambiente specifico, filtra le metriche in base all'etichetta
environment_name
. Puoi anche filtrare in base ad altre etichette, ad esempio la posizione dell'ambiente o la versione immagine.La risorsa Flusso di lavoro di Cloud Composer contiene metriche per i DAG.
Per visualizzare le metriche per un'attività o un DAG specifici, filtra le metriche in base alle etichette
workflow_name
etask_name
. Puoi anche filtrare in base ad altre etichette, ad esempio lo stato dell'attività o il nome dell'operatore Airflow.
API e gcloud
Puoi creare e gestire dashboard e widget personalizzati tramite l'API Cloud Monitoring e il comando gcloud monitoring dashboards
. Per maggiori informazioni, consulta
Gestire le dashboard per API.
Per ulteriori informazioni su risorse, metriche e filtri, consulta il riferimento per l'API Cloud Monitoring:
Utilizzo degli avvisi di Cloud Monitoring
Puoi creare criteri di avviso per monitorare i valori delle metriche e ricevere una notifica quando queste metriche violano una condizione.
-
Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi notifications Avvisi:
- Se non hai creato i canali di notifica e vuoi ricevere una notifica, fai clic su Modifica canali di notifica e aggiungi i tuoi canali di notifica. Torna alla pagina Avvisi dopo aver aggiunto i tuoi canali.
- Nella pagina Avvisi, seleziona Crea criterio.
- Per selezionare la metrica, espandi il menu Seleziona una metrica e poi procedi nel seguente modo:
- Per limitare il menu alle voci pertinenti, inserisci
Cloud Composer
nella barra dei filtri. Se dopo aver filtrato il menu non vengono visualizzati risultati, disattiva l'opzione Mostra solo risorse e metriche attive. - Per Tipo di risorsa, seleziona Ambiente Cloud Composer o Flusso di lavoro Cloud Composer.
- Seleziona una Categoria di metrica e una Metrica, poi seleziona Applica.
- Per limitare il menu alle voci pertinenti, inserisci
- Tocca Avanti.
- Le impostazioni nella pagina Configura trigger di avviso determinano quando viene attivato l'avviso. Seleziona un tipo di condizione e, se necessario, specifica una soglia. Per maggiori informazioni, consulta Creare criteri di avviso per soglia di metriche.
- Tocca Avanti.
- (Facoltativo) Per aggiungere notifiche al criterio di avviso, fai clic su Canali di notifica. Nella finestra di dialogo, seleziona uno o più canali di notifica dal menu, quindi fai clic su OK.
- (Facoltativo) Aggiorna la Durata della chiusura automatica dell'incidente. Questo campo determina quando Monitoring chiude gli incidenti in assenza di dati delle metriche.
- (Facoltativo) Fai clic su Documentazione, quindi aggiungi le informazioni che vuoi includere in un messaggio di notifica.
- Fai clic su Nome avviso e inserisci un nome per il criterio di avviso.
- Fai clic su Crea criterio.