Vérification de l’état
La fonctionnalité de vérification de l’état du Babel Licensing Service fournit un mécanisme complet pour surveiller la santé et l’état opérationnel du service et de ses composants. Elle est essentielle pour assurer la fiabilité du système, faciliter le dépannage et permettre l’intégration avec les outils de surveillance de l’infrastructure.
Configuration
Le comportement de la vérification de l’état se configure dans la section Application du fichier appsettings.json :
"Application": {
"HealthCheckEndPoint": "/health",
"HealthCheckResponseType": "JSON"
}HealthCheckEndPoint
Ce paramètre indique le chemin d’URL auquel le point de terminaison de vérification de l’état est accessible. La valeur par défaut est /health.
Exemple : si votre service s’exécute à l’adresse https://licensing.example.com et que HealthCheckEndPoint est réglé sur /health, l’URL complète de vérification de l’état est https://licensing.example.com/health.
HealthCheckResponseType
Ce paramètre détermine le format de la réponse de la vérification de l’état. Deux formats sont pris en charge :
- JSON : renvoie une réponse JSON structurée (valeur par défaut)
- TEXT : renvoie une réponse en texte brut, lisible par un humain
Format de réponse JSON
Lorsque HealthCheckResponseType est réglé sur "JSON", le point de terminaison de vérification de l’état produit une réponse JSON structurée comme celle-ci :
{
"status": "Healthy",
"duration": "00:00:00.2514204",
"timestamp": "2025-03-20T07:26:07.1085160Z",
"checks": [
{
"name": "babel_service_health",
"status": "Healthy",
"duration": "00:00:00.0010617",
"data": {
"serverTimeUtc": "2025-03-20T07:26:06.8604190Z",
"activeTokens": 0
}
},
{
"name": "database_health",
"status": "Healthy",
"duration": "00:00:00.1003761"
},
{
"name": "webhook_processor_health",
"status": "Healthy",
"duration": "00:00:00.0605641",
"data": {
"hasFailedEvents": false
}
},
{
"name": "geo_location_health",
"status": "Healthy",
"duration": "00:00:00.2456515"
}
]
}Ce format est idéal pour :
- les systèmes de surveillance automatisés
- l’intégration avec des plateformes d’orchestration comme Kubernetes
- l’évaluation de l’état par programmation
- les outils de surveillance tiers capables d’analyser des données JSON
Format de réponse TEXT
Lorsque HealthCheckResponseType est réglé sur "TEXT", le point de terminaison de vérification de l’état produit un format lisible par un humain :
Babel Licensing Service v. 11.0.0.0
Status: Healthy
Duration: 00:00:00.2586788
Timestamp: 2025-03-20T07:23:14.0761680Z
Version: 11.0.0.0
Checks:
- Babel Licensing Service: Healthy (00:00:00.0024254)
* Server Time Utc: 2025-03-20T07:23:13.8180050Z
* Active Tokens: 0
- Database: Healthy (00:00:00.0901153)
- Webhook Processor: Healthy (00:00:00.0687397)
* Has Failed Events: False
- Geo Location: Healthy (00:00:00.2550240)Ce format convient mieux pour :
- l’inspection manuelle par les administrateurs système
- les outils en ligne de commande et les vérifications d’état simples
- les situations où la réponse doit être facile à lire sans analyse supplémentaire
- les entrées de fichier journal et la sortie de la console
Composants de la vérification de l’état
La vérification de l’état du Babel Licensing Service surveille plusieurs composants critiques :
- État du service : fournit des informations sur le service principal, notamment l’heure du serveur, l’édition de la licence, les jetons actifs et le nombre maximal de jetons autorisé.
- État de la base de données : vérifie la connectivité et l’état opérationnel de la base de données.
- Processeur de webhooks : vérifie que le système de traitement des webhooks fonctionne correctement.
- Service de géolocalisation : confirme que le service de géolocalisation configuré (comme IpApiIs) est opérationnel.
Valeurs d’état
Les vérifications de l’état signalent l’un des états suivants :
- Healthy : le composant fonctionne normalement
- Degraded : le composant est opérationnel, mais avec des fonctionnalités ou des performances réduites
- Unhealthy : le composant ne fonctionne pas correctement
Intégration avec les systèmes de surveillance
Le point de terminaison de vérification de l’état peut être intégré à différents systèmes de surveillance :
- Équilibreurs de charge : ils peuvent utiliser la vérification de l’état pour déterminer si le service doit recevoir du trafic
- Orchestration de conteneurs : des plateformes comme Kubernetes peuvent utiliser le point de terminaison pour les sondes de préparation (readiness) et d’activité (liveness)
- Outils de surveillance : des systèmes comme Prometheus, Nagios ou Zabbix peuvent interroger régulièrement le point de terminaison
- Tableaux de bord personnalisés : le format JSON peut être exploité par des tableaux de bord de surveillance personnalisés
Bonnes pratiques
- Surveillance régulière : configurez votre système de surveillance pour qu’il interroge à intervalles réguliers le point de terminaison de vérification de l’état.
- Alertes : configurez des alertes pour le cas où le service passe de Healthy à Degraded ou à Unhealthy.
- Choix du format de réponse : choisissez JSON pour les systèmes automatisés et TEXT pour les opérateurs humains.
- Point de terminaison personnalisé : envisagez de modifier le point de terminaison par défaut pour des raisons de sécurité dans les environnements de production.
- Configuration du pare-feu : vérifiez que votre pare-feu autorise vos systèmes de surveillance à accéder au point de terminaison de vérification de l’état.
La vérification de l’état est un outil essentiel pour maintenir la fiabilité et la stabilité de votre déploiement du Babel Licensing Service : elle fournit en temps réel des informations sur l’état opérationnel du système et de ses composants.