Skip to Content
Nuova versione 12 disponibile 🎉

Controllo di stato

La funzionalità di controllo di stato del Babel Licensing Service offre un meccanismo completo per monitorare l’integrità e lo stato operativo del servizio e dei suoi componenti. È essenziale per garantire l’affidabilità del sistema, facilitare la risoluzione dei problemi e permettere l’integrazione con gli strumenti di monitoraggio dell’infrastruttura.

Configurazione

Il comportamento del controllo di stato si configura nella sezione Application del file appsettings.json:

"Application": { "HealthCheckEndPoint": "/health", "HealthCheckResponseType": "JSON" }

HealthCheckEndPoint

Questa impostazione specifica il percorso URL a cui sarà raggiungibile l’endpoint del controllo di stato. Il valore predefinito è /health.

Esempio: se il tuo servizio è in esecuzione su https://licensing.example.com e HealthCheckEndPoint è impostato su /health, l’URL completo del controllo di stato sarà https://licensing.example.com/health.

HealthCheckResponseType

Questa impostazione determina il formato della risposta del controllo di stato. Sono supportati due formati:

  • JSON: restituisce una risposta JSON strutturata (predefinito)
  • TEXT: restituisce una risposta in testo semplice, leggibile da una persona

Formato di risposta JSON

Quando HealthCheckResponseType è impostato su "JSON", l’endpoint del controllo di stato produce una risposta JSON strutturata come questa:

{ "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" } ] }

Questo formato è ideale per:

  • Sistemi di monitoraggio automatizzati
  • Integrazione con piattaforme di orchestrazione come Kubernetes
  • Valutazione programmatica dello stato
  • Strumenti di monitoraggio di terze parti in grado di analizzare dati JSON

Formato di risposta TEXT

Quando HealthCheckResponseType è impostato su "TEXT", l’endpoint del controllo di stato produce un formato leggibile da una persona:

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)

Questo formato è più adatto a:

  • Ispezione manuale da parte degli amministratori di sistema
  • Strumenti da riga di comando e semplici verifiche dello stato
  • Situazioni in cui la risposta deve essere facilmente leggibile senza ulteriore analisi
  • Voci dei file di log e output della console

Componenti del controllo di stato

Il controllo di stato del Babel Licensing Service monitora diversi componenti critici:

  1. Stato del servizio: fornisce informazioni sul servizio principale, tra cui l’ora del server, l’edizione della licenza, i token attivi e il numero massimo di token consentiti.
  2. Stato del database: verifica la connettività e lo stato operativo del database.
  3. Elaborazione dei webhook: controlla che il sistema di elaborazione dei webhook funzioni correttamente.
  4. Servizio di geolocalizzazione: conferma che il servizio di geolocalizzazione configurato (per esempio IpApiIs) sia operativo.

Valori di stato

I controlli di stato riportano uno dei seguenti stati:

  • Healthy: il componente funziona normalmente
  • Degraded: il componente è operativo ma con funzionalità o prestazioni ridotte
  • Unhealthy: il componente non funziona correttamente

Integrazione con i sistemi di monitoraggio

L’endpoint del controllo di stato può essere integrato con diversi sistemi di monitoraggio:

  • Bilanciatori del carico: possono usare il controllo di stato per stabilire se il servizio deve ricevere traffico
  • Orchestrazione dei container: piattaforme come Kubernetes possono usare l’endpoint per i probe di readiness e liveness
  • Strumenti di monitoraggio: sistemi come Prometheus, Nagios o Zabbix possono interrogare periodicamente l’endpoint
  • Dashboard personalizzate: il formato JSON può essere usato da dashboard di monitoraggio personalizzate

Procedure consigliate

  1. Monitoraggio regolare: configura il tuo sistema di monitoraggio perché controlli l’endpoint di stato a intervalli regolari.
  2. Allarmi: imposta degli allarmi per quando il servizio passa da Healthy a Degraded o Unhealthy.
  3. Scelta del formato di risposta: scegli JSON per i sistemi automatizzati e TEXT per gli operatori umani.
  4. Endpoint personalizzato: valuta di cambiare l’endpoint predefinito per motivi di sicurezza negli ambienti di produzione.
  5. Configurazione del firewall: assicurati che il firewall consenta ai tuoi sistemi di monitoraggio di accedere all’endpoint del controllo di stato.

Il controllo di stato è uno strumento essenziale per mantenere l’affidabilità e la stabilità della tua distribuzione del Babel Licensing Service, perché fornisce in tempo reale informazioni sullo stato operativo del sistema e dei suoi componenti.

Last updated on