Automation Config expose plusieurs mesures système qui peuvent être utilisées pour la surveillance et les diagnostics. Ces mesures sont disponibles sous forme graphique sur le tableau de bord de l'interface utilisateur de Automation Config et sous forme lisible par machine en utilisant le point de terminaison HTTP /metrics
.
Pour plus d'informations sur la visualisation des rapports dans l'interface utilisateur de Automation Config à l'aide du tableau de bord, reportez-vous à la section Rapports du tableau de bord.
Mesures lisibles par machine
Automation Config exporte les mesures système au format texte OpenMetrics. Ce format est directement exploitable par Prometheus et d'autres outils de surveillance et d'alerte.
Configuration des mesures de Automation Config
La configuration de la collecte des mesures système se compose des paramètres suivants dans le fichier de configuration /etc/raas/raas
. Les valeurs par défaut sont affichées.
# 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
Les paramètres suivants contrôlent le traitement des mesures système lisibles par la machine :
- Pour désactiver la collecte des mesures, définissez
enabled:false
. Notez que cela désactivera également le tableau de bord intégré de Automation Config. - Pour activer l'exportation de mesures lisibles par machine depuis le point de terminaison HTTP
/metrics
, définissezprometheus:true
. Ce paramètre n'affecte pas le tableau de bord intégré de Automation Config. - L'accès au point de terminaison HTTP
/metrics
est contrôlé par l'authentification HTTP de base avec des informations d'identification configurées dansprometheus_username
etprometheus_password
. Des valeurs non vides sont requises pour ces paramètres afin d'activer le point de terminaison/metrics
. Ces informations d'identification sont stockées uniquement dans le fichier de configuration/etc/raas/raas
, ne sont associées à aucun compte Automation Config et ne peuvent pas être utilisées pour s'authentifier auprès de Automation Config autrement que pour accéder au point de terminaison HTTP/metrics
.
Les autres paramètres indiqués ci-dessus se rapportent au tableau de bord intégré de Automation Config et n'affectent pas la collecte ou la création de rapports de mesures système lisibles par machine. En particulier, le paramètre snapshot_interval
détermine la fréquence, en secondes, d'enregistrement des mesures pour l'affichage sur le tableau de bord, et le paramètre keep
détermine la durée, en jours, de conservation des données de mesures dans la base de données avant d'être supprimées.
Bien que le point de terminaison HTTP /metrics
constitue le moyen recommandé de collecter des données de mesures lisibles par machine à partir de Automation Config, vous pouvez utiliser l'API (RaaS) pour récupérer les données présentées sur le tableau de bord intégré. L'API stats.get_system_metrics()
permet d'interroger les données de mesures par nom de mesure, source et plage de dates. L'élément de configuration max_query_timedelta
limite la quantité de données renvoyée par Automation Config via un seul appel d'API. Pour obtenir des données de mesures d'une période plus longue, vous pouvez effectuer plusieurs appels d'API avec des dates de début et de fin différentes.
Configuration des mesures de master Salt
La disponibilité de certaines mesures dépend de la configuration des masters Salt connectés à Automation Config :
- Les mesures sur les événements Salt et les retours de tâches seront précises uniquement si le système de retour
sseapi
est configuré sur les masters Salt. La collecte des mesures ne fonctionne pas correctement avec le système de retoursse_pgjsonb
(transfert direct vers la base de données). - Automation Config collecte des informations d'exécution de fonction de bas niveau auprès des masters Salt
master_stats:true
définies dans leur configuration. Cette option est désactivée par défaut. Pour plus de détails, reportez-vous à la section master_stats dans la documentation de Salt.
- Les mesures sur les états des tâches Salt seront précises uniquement si le moteur d'achèvement de tâche est activé dans le plug-in master Salt :
engines: -jobcompletion:{}
Ce moteur est activé dans la configuration par défaut du plug-in master Salt.
Configuration de Prometheus pour une connexion à Automation Config
Vous pouvez activer un serveur Prometheus pour récupérer des mesures de Automation Config en ajoutant une tâche scrape_configs
à la configuration de Prometheus (généralement prometheus.yml
) pour chaque instance de serveur API (RaaS) dont vous disposez:
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
Les informations d'identification de la configuration Prometheus doivent correspondre aux entrées prometheus_username
et prometheus_password
spécifiées dans le fichier de configuration /etc/raas/raas
, comme indiqué ci-dessus.
Consultez la documentation du projet Prometheus pour plus d'informations sur la configuration des cibles d'extraction et d'autres rubriques de configuration de Prometheus.
Descriptions des mesures
Les mesures lisibles par machine exportées par Automation Config relèvent de plusieurs catégories:
Catégorie | Nom de la mesure | Type de mesure | Étiquettes | Description |
---|---|---|---|---|
Mesures de bas niveau de master Salt | salt_event_size_bytes |
Histogramme | master_id |
Taille de l'événement Salt en octets |
salt_master_cmd_duration_seconds |
Histogramme | master_id , cmd |
Durée de la commande de master Salt en secondes. Signalé uniquement si master_stats est configuré sur le master Salt. |
|
Mesures du plug-in master Salt | raas_master_commands_processed |
Compteur | master_id |
Commandes SSE traitées |
raas_master_master_grains_pushed |
Compteur | master_id |
Grain de master Salt mis à jour transmis à Automation Config | |
raas_master_minion_keys_pushed |
Compteur | master_id |
Mises à jour d'états de clés de minion transmises à Automation Config | |
raas_master_minion_cached_pushed |
Compteur | master_id |
Mises à jour du cache de minion transmises à Automation Config | |
raas_master_masterfs_pushed |
Compteur | master_id |
Mises à jour de MasterFS transmises à Automation Config | |
raas_master_sseapi_engine_iteration_seconds |
Histogramme | master_id |
Durée d'itération du moteur API (RaaS) en secondes | |
Mesures de serveur | redis_commands_executed |
Compteur | redis_instance |
Commandes Redis exécutées (cache système) |
redis_memory_bytes |
Jauge | redis_instance |
Utilisation de la mémoire de Redis (cache système) | |
celery_tasks_queued |
Compteur | raas_instance , task |
Tâches Celery en file d'attente (tâches en arrière-plan) | |
celery_tasks_executed |
Compteur | raas_instance , task |
Tâches Celery exécutées (tâches en arrière-plan) | |
celery_queue_length |
Jauge | raas_instance |
Longueur de la file d'attente Celery (tâches en arrière-plan en attente) | |
raas_rpc_request_duration_seconds |
Histogramme | raas_instance |
Durée d'appel de l'API RPC SSE en secondes | |
Mesures PostgreSQL | postgres_connections |
Jauge | postgres_instance |
Connexions Postgres |
postgres_transactions |
Compteur | postgres_instance |
Transactions Postgres engagées | |
postgres_rows_read |
Compteur | postgres_instance |
Lignes Postgres lues | |
postgres_rows_inserted |
Compteur | postgres_instance |
Lignes Postgres insérées | |
postgres_rows_updated |
Compteur | postgres_instance |
Lignes Postgres mises à jour | |
postgres_rows_deleted |
Compteur | postgres_instance |
Lignes Postgres supprimées | |
Mesures système | highstate_minions |
Jauge | Aucune | Nombre de minions qui ont exécuté une tâche Highstate |
highstate_minions_changed |
Jauge | Aucune | Nombre de minions qui ont exécuté une tâche Highstate ayant entraîné une ou plusieurs modifications | |
highstate_minions_succeeded |
Jauge | Aucune | Nombre de minions ayant exécuté une tâche Highstate sans échec | |
highstate_minion_duration_seconds |
Jauge | Aucune | Durée moyenne par minion d'une exécution de Highstate | |
highstate_states |
Jauge | Aucune | Nombre d’états uniques appliqués dans les exécutions de Highstate | |
highstate_states_changed |
Jauge | Aucune | Nombre d’états appliqués dans les exécutions de Highstate qui ont entraîné une ou plusieurs modifications | |
highstate_states_succeeded |
Jauge | Aucune | Nombre d’états appliqués sans échec dans les exécutions de Highstate | |
sse_jobs_in_progress |
Compteur | Aucune | Tâches Automation Config en cours | |
sse_jobs_complete_all_successful |
Compteur | Aucune | Tâches Automation Config terminées dont tous les retours sont réussis | |
sse_jobs_complete_missing_returns |
Compteur | Aucune | Tâches Automation Config terminées dont un ou plusieurs retours sont manquants | |
sse_jobs_complete_with_errors |
Compteur | Aucune | Tâches Automation Config terminées comportant une ou plusieurs erreurs | |
sse_masters |
Jauge | Aucune | Nombre total de masters Salt dans Automation Config | |
sse_minion_grains_deleted |
Compteur | master_id |
Nombre de grains minions supprimés | |
sse_minion_grains_indexing_duration_seconds |
Compteur | raas_instance |
Durée des calculs d’indexation des grains minions, en secondes | |
sse_minion_grains_saved |
Compteur | master_id |
Nombre de grains minions enregistrés | |
sse_minion_target_match_calcs |
Compteur | raas_instace |
Nombre de minions par rapport aux calculs correspondants du groupe cible | |
sse_minion_target_match_duration_seconds |
Compteur | raas_instance |
Durées des calculs du minion par rapport aux calculs correspondants du groupe cible, en secondes | |
sse_minions |
Jauge | Aucune | Nombre total de minions dans Automation Config | |
sse_minions_present |
Jauge | master_id |
Minions présents dans la limite de temps configurée raas_presence_expiration |
|
sse_minions_lost |
Jauge | master_id |
Minions non présents dans la limite de temps | |
sse_minions_unknown |
Jauge | master_id |
Minions inconnus (jamais présents) | |
sse_users_authenticated |
Jauge | Aucune | Utilisateurs authentifiés auprès de Automation Config |