Automation Config espone diverse metriche di sistema che possono essere utilizzate per il monitoraggio e la diagnostica. Queste metriche sono disponibili in formato grafico nel dashboard dell'interfaccia utente di Automation Config e in formato leggibile in modo automatizzato mediante l'endpoint http /metrics
.
Per ulteriori informazioni sulla visualizzazione dei report nell'interfaccia utente di Automation Config mediante il dashboard, vedere Report del dashboard.
Metriche leggibili in modo automatizzato
Automation Config esporta le metriche di sistema in formato basato su testo OpenMetrics. Questo formato è utilizzabile direttamente da Prometheus e altri strumenti di monitoraggio e avviso.
Metriche di configurazione di Automation Config
La configurazione per la raccolta di metriche di sistema è composta dalle seguenti impostazioni nel file di configurazione /etc/raas/raas
. Sono mostrati i valori predefiniti.
# System metrics settings metrics: enabled: true # If True, enable the collection of system metrics prometheus: false # If True, enable the Prometheus endpoint at /metrics prometheus_username: # Static username for retrieving /metrics prometheus_password: # Static password for retrieving /metrics snapshot_interval: 60 # How often to record snapshot metrics, in seconds max_query_timedelta: 86400 # Maximum timedelta for a single call to get_system_metrics, in seconds keep: 30 # How long to retain metrics data, in days
Le seguenti impostazioni controllano la gestione delle metriche di sistema leggibili in modo automatizzato:
- Per disabilitare la raccolta di metriche, impostare
enabled:false
. Si noti che questa operazione disabilita anche il dashboard integrato di Automation Config. - Per abilitare l'esportazione di metriche leggibili in modo automatizzato dall'endpoint http
/metrics
, impostareprometheus:true
. Questa impostazione non influisce sul dashboard integrato di Automation Config. - L'accesso all'endpoint http
/metrics
è controllato dall'autenticazione di base http con le credenziali configurate inprometheus_username
eprometheus_password
. Per abilitare l'endpoint/metrics
sono necessari valori non vuoti per queste impostazioni. Queste credenziali vengono archiviate solo nel file di configurazione di/etc/raas/raas
, non sono associate ad alcun account di Automation Config e non possono essere utilizzate per eseguire l'autenticazione in Automation Config oltre che per accedere all'endpoint http/metrics
.
Le altre impostazioni illustrate in precedenza si riferiscono al dashboard integrato di Automation Config e non influiscono sulla raccolta o sulla creazione di report di metriche di sistema leggibili in modo automatizzato. In particolare, l'impostazione snapshot_interval
determina la frequenza, in secondi, con cui le metriche vengono registrate per la visualizzazione nel dashboard e l'impostazione keep
determina per quanto tempo, in giorni, i dati delle metriche verranno conservati nel database prima di essere tagliati.
Sebbene l'endpoint http /metrics
sia la modalità consigliata per raccogliere dati delle metriche leggibili in modo automatizzato da Automation Config, è possibile utilizzare l'API (RaaS) per recuperare i dati presentati nel dashboard integrato. La chiamata API stats.get_system_metrics()
consente di eseguire query sui dati delle metriche in base al nome, all'origine e all'intervallo di date della metrica. L'elemento di configurazione max_query_timedelta
limita la quantità di dati restituiti da Automation Config da una singola chiamata API. Per recuperare i dati delle metriche da un lasso di tempo più lungo, è possibile effettuare più chiamate API con date di inizio e di fine diverse.
Configurazione delle metriche di Salt Master
La disponibilità di alcune metriche dipende dalla configurazione dei Salt Master connessi a Automation Config:
- Le metriche relative agli eventi Salt e ai risultati dei processi saranno accurate solo se il returner
sseapi
è configurato nei Salt Master. La raccolta delle metriche non funzionerà correttamente con il returnersse_pgjsonb
(direct-to-database). - Automation Config raccoglierà informazioni sul runtime delle funzioni di livello inferiore dai Salt Master con
master_stats:true
impostato nella loro configurazione. Questa opzione è disabilitata per impostazione predefinita. Per dettagli, vedere master_stats nella documentazione di Salt.
- Le metriche relative agli stati dei processi Salt saranno accurate solo se il motore di completamento dei processi è abilitato nel plug-in Salt Master:
engines: -jobcompletion:{}
Questo motore è abilitato nella configurazione predefinita del plug-in Salt Master.
Configurazione della connessione di Prometheus a Automation Config
È possibile abilitare un server Prometheus per estrarre metriche da Automation Config aggiungendo un processo scrape_configs
alla configurazione di Prometheus (in genere prometheus.yml
) per ogni istanza del server API (RaaS) di cui si dispone:
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
Le credenziali nella configurazione di Prometheus devono corrispondere alle credenziali prometheus_username
e prometheus_password
specificate nel file di configurazione /etc/raas/raas
, come indicato sopra.
Vedere la documentazione del progetto Prometheus per ulteriori informazioni sull'impostazione di destinazioni di estrazione e altri argomenti sulla configurazione di Prometheus.
Descrizioni delle metriche
Le metriche leggibili in modo automatizzato esportate da Automation Config rientrano in diverse categorie:
Categoria | Nome metrica | Tipo metrica | Etichette | Descrizione |
---|---|---|---|---|
Metriche di livello inferiore di Salt Master | salt_event_size_bytes |
Istogramma | master_id |
Dimensioni dell'evento Salt, in byte |
salt_master_cmd_duration_seconds |
Istogramma | master_id , cmd |
Durata del comando Master Salt, in secondi. Segnalata solo se master_stats è configurata nel Salt Master. |
|
Metriche del plug-in Salt Master | raas_master_commands_processed |
Contatore | master_id |
Comandi SSE elaborati |
raas_master_master_grains_pushed |
Contatore | master_id |
Aggiornamenti dei grain di Salt Master inviati a Automation Config | |
raas_master_minion_keys_pushed |
Contatore | master_id |
Aggiornamenti degli stati delle chiavi dei minion inviati a Automation Config | |
raas_master_minion_cached_pushed |
Contatore | master_id |
Aggiornamenti della cache dei minion inviati a Automation Config | |
raas_master_masterfs_pushed |
Contatore | master_id |
Aggiornamenti masterFS inviati a Automation Config | |
raas_master_sseapi_engine_iteration_seconds |
Istogramma | master_id |
Durata di iterazione del motore dell'API (RaaS), in secondi | |
Metriche del server | redis_commands_executed |
Contatore | redis_instance |
Comandi Redis eseguiti (cache di sistema) |
redis_memory_bytes |
Misuratore | redis_instance |
Utilizzo della memoria di Redis (cache di sistema) | |
celery_tasks_queued |
Contatore | raas_instance , task |
Attività Celery in coda (processi in background) | |
celery_tasks_executed |
Contatore | raas_instance , task |
Attività Celery eseguite (processi in background) | |
celery_queue_length |
Misuratore | raas_instance |
Lunghezza coda di Celery (processi in background in attesa) | |
raas_rpc_request_duration_seconds |
Istogramma | raas_instance |
Durata della chiamata API RPC SSE, in secondi | |
Metriche PostgreSQL | postgres_connections |
Misuratore | postgres_instance |
Connessioni Postgres |
postgres_transactions |
Contatore | postgres_instance |
Transazioni di Postgres confermate | |
postgres_rows_read |
Contatore | postgres_instance |
Righe Postgres lette | |
postgres_rows_inserted |
Contatore | postgres_instance |
Righe Postgres inserite | |
postgres_rows_updated |
Contatore | postgres_instance |
Righe Postgres aggiornate | |
postgres_rows_deleted |
Contatore | postgres_instance |
Righe Postgres eliminate | |
Metriche di sistema | highstate_minions |
Misuratore | Nessuna | Numero di minion che hanno eseguito un processo highstate |
highstate_minions_changed |
Misuratore | Nessuna | Numero di minion che hanno eseguito un processo highstate con una o più modifiche | |
highstate_minions_succeeded |
Misuratore | Nessuna | Numero di minion che hanno eseguito un processo highstate senza errori | |
highstate_minion_duration_seconds |
Misuratore | Nessuna | Durata media per minion per un'esecuzione highstate | |
highstate_states |
Misuratore | Nessuna | Numero di stati univoci applicati nelle esecuzioni highstate | |
highstate_states_changed |
Misuratore | Nessuna | Numero di stati applicati nelle esecuzioni highstate che hanno restituito una o più modifiche | |
highstate_states_succeeded |
Misuratore | Nessuna | Numero di stati applicati nelle esecuzioni highstate senza errori | |
sse_jobs_in_progress |
Contatore | Nessuna | Processi di Automation Config in corso | |
sse_jobs_complete_all_successful |
Contatore | Nessuna | Processi di Automation Config completati con tutti i risultati riusciti | |
sse_jobs_complete_missing_returns |
Contatore | Nessuna | Processi di Automation Config completati con uno o più risultati mancanti | |
sse_jobs_complete_with_errors |
Contatore | Nessuna | Processi di Automation Config completati con uno o più errori | |
sse_masters |
Misuratore | Nessuna | Salt Master totali in Automation Config | |
sse_minion_grains_deleted |
Contatore | master_id |
Numero di grain dei minion eliminati | |
sse_minion_grains_indexing_duration_seconds |
Contatore | raas_instance |
Durata dei calcoli dell'indicizzazione dei grain dei minion, in secondi | |
sse_minion_grains_saved |
Contatore | master_id |
Numero di grain dei minion eliminati salvati | |
sse_minion_target_match_calcs |
Contatore | raas_instace |
Numero di minion rispetto ai calcoli corrispondenti del gruppo di destinazione | |
sse_minion_target_match_duration_seconds |
Contatore | raas_instance |
Minion rispetto alle durate dei calcoli corrispondenti del gruppo di destinazione, in secondi | |
sse_minions |
Misuratore | Nessuna | Minion totali in Automation Config | |
sse_minions_present |
Misuratore | master_id |
Minion presenti nel limite di tempo raas_presence_expiration configurato |
|
sse_minions_lost |
Misuratore | master_id |
Minion non presenti nel limite di tempo | |
sse_minions_unknown |
Misuratore | master_id |
Minion sconosciuti (mai presenti) | |
sse_users_authenticated |
Misuratore | Nessuna | Utenti autenticati a Automation Config |