Aller au contenu principal

Métriques

info

Le point de terminaison des métriques est disponible depuis Semaphore version 2.20. Si vous utilisez une version plus ancienne, effectuez une mise à niveau pour bénéficier de cette fonctionnalité.

Semaphore expose un point de terminaison GET /api/metrics au format texte d'exposition standard de Prometheus, de sorte qu'une installation Prometheus + Grafana existante peut superviser le serveur sans aucun outil de sondage externe.

Deux catégories de métriques sont exposées :

  • Métriques de processus : statistiques du runtime Go et du processus — nombre de goroutines, mémoire (heap/résidente), temps CPU, pauses du GC. Elles sont fournies d'office par les collecteurs Go/processus standard de Prometheus.
  • Métriques de tâches, propres à la charge de travail de Semaphore :
    • semaphore_tasks_running (jauge) : nombre de tâches en cours d'exécution à l'instant présent.
    • semaphore_tasks_total{status} (compteur) : nombre total de tâches terminées, ventilé par résultat : success, error, stopped.

Les deux sont mises à jour en temps réel au fur et à mesure que les tâches changent d'état — il n'y a aucun délai de sondage, puisque les compteurs sont mis à jour directement dans l'exécuteur de tâches au moment où le statut d'une tâche change réellement.

Activer les métriques

Le point de terminaison est désactivé par défaut et requiert une authentification HTTP Basic avec un identifiant statique de niveau service — non lié à un compte utilisateur, puisque Prometheus ne peut pas effectuer de connexion interactive :

{
"metrics": {
"enabled": true,
"username": "prometheus",
"password": "changeme"
}
}

Ou à l'aide de variables d'environnement :

SEMAPHORE_METRICS_ENABLED=true
SEMAPHORE_METRICS_USERNAME=prometheus
SEMAPHORE_METRICS_PASSWORD=changeme

Options des métriques

ParamètreVariables d'environnementDescription
enabledSEMAPHORE_METRICS_ENABLEDActive ou désactive le point de terminaison /api/metrics. Désactivé par défaut.
usernameSEMAPHORE_METRICS_USERNAMENom d'utilisateur Basic Auth requis pour collecter le point de terminaison.
passwordSEMAPHORE_METRICS_PASSWORDMot de passe Basic Auth requis pour collecter le point de terminaison (sensible).

Si enabled reste à false (valeur par défaut), ou si les identifiants sont absents ou incorrects, chaque requête vers /api/metrics renvoie 401 Unauthorized.

Collecte avec Prometheus

Configurez une tâche de collecte avec basic_auth en utilisant les identifiants ci-dessus :

scrape_configs:
- job_name: semaphore
metrics_path: /api/metrics
basic_auth:
username: prometheus
password: changeme
static_configs:
- targets: ["<semaphore-host>:3000"]

Visualiser les métriques dans Grafana

La vue Explore de Grafana vous permet d'exécuter n'importe quelle requête PromQL directement sur les métriques et d'en voir les résultats bruts, sans devoir d'abord construire un tableau de bord :

Grafana Explore affichant les métriques Semaphore collectées

Un tableau de bord peut ensuite être construit sur ces mêmes métriques — cet exemple couvre les deux catégories avec quatre panneaux : tâches en cours, total des tâches par résultat, goroutines et mémoire résidente du processus.

Tableau de bord Grafana avec des panneaux Semaphore