SaltStack 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 SaltStack Config e in formato leggibile in modo automatizzato mediante l'endpoint http /metrics.

Per ulteriori informazioni sulla visualizzazione dei report nell'interfaccia utente di SaltStack Config mediante il dashboard, vedere Report del dashboard.

Metriche leggibili in modo automatizzato

SaltStack 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 SaltStack 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 SaltStack Config.
  • Per abilitare l'esportazione di metriche leggibili in modo automatizzato dall'endpoint http /metrics, impostare prometheus:true. Questa impostazione non influisce sul dashboard integrato di SaltStack Config.
  • L'accesso all'endpoint http /metrics è controllato dall'autenticazione di base http con le credenziali configurate in prometheus_username e prometheus_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 SaltStack Config e non possono essere utilizzate per eseguire l'autenticazione in SaltStack Config oltre che per accedere all'endpoint http /metrics.

Le altre impostazioni illustrate in precedenza si riferiscono al dashboard integrato di SaltStack 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 SaltStack 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 SaltStack 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 SaltStack 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 returner sse_pgjsonb (direct-to-database).
  • SaltStack 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 SaltStack Config

È possibile abilitare un server Prometheus per estrarre metriche da SaltStack 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.

Nota: Nell'ambito dell'iniziativa di VMware volta a rimuovere la terminologia problematica, il termine Salt Master verrà sostituito con un termine più adatto in SaltStack Config, nonché nei prodotti e nella documentazione correlati. Per il completamento di questo aggiornamento della terminologia possono essere necessari alcuni cicli di rilascio.

Descrizioni delle metriche

Le metriche leggibili in modo automatizzato esportate da SaltStack 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 SaltStack Config
raas_master_minion_keys_pushed Contatore master_id Aggiornamenti degli stati delle chiavi dei minion inviati a SaltStack Config
raas_master_minion_cached_pushed Contatore master_id Aggiornamenti della cache dei minion inviati a SaltStack Config
raas_master_masterfs_pushed Contatore master_id Aggiornamenti masterFS inviati a SaltStack 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 sse_jobs_in_progress Contatore Nessuna Processi di SaltStack Config in corso
sse_jobs_complete_all_successful Contatore Nessuna Processi di SaltStack Config completati con tutti i risultati riusciti
sse_jobs_complete_missing_returns Contatore Nessuna Processi di SaltStack Config completati con uno o più risultati mancanti
sse_jobs_complete_with_errors Contatore Nessuna Processi di SaltStack Config completati con uno o più errori
sse_masters Misuratore Nessuna Salt Master totali in SaltStack Config
sse_minions Misuratore Nessuna Minion totali in SaltStack 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 SaltStack Config