Aller au contenu principal

Observabilité

STOA inclut une stack d'observabilité intégrée avec Prometheus pour les métriques, Grafana pour les tableaux de bord et Loki pour l'agrégation des logs.

Vue d'Ensemble de la Stack​

ComposantObjectifAccès
PrometheusCollecte de métriques et alertesInterne (en cluster)
GrafanaTableaux de bord et visualisationhttps://grafana.<YOUR_DOMAIN>
LokiAgrégation et recherche de logsVia Grafana

Métriques​

API du Plan de Contrôle​

Le backend FastAPI expose les métriques Prometheus à /metrics :

MétriqueTypeDescription
http_requests_totalCounterTotal des requêtes HTTP par méthode, chemin, statut
http_request_duration_secondsHistogramDistribution de la latence des requêtes
db_query_duration_secondsHistogramLatence des requêtes base de données
kafka_events_published_totalCounterÉvénements publiés sur Kafka

MCP Gateway​

MétriqueTypeDescription
mcp_tool_calls_totalCounterInvocations d'outils par nom, tenant, statut
mcp_tool_call_duration_secondsHistogramLatence des appels d'outils
opa_policy_evaluations_totalCounterVérifications de politiques OPA par résultat
mcp_active_connectionsGaugeConnexions SSE actives

Kafka / Redpanda​

MétriqueTypeDescription
kafka_consumer_lagGaugeLag du consommateur par topic/partition
kafka_messages_in_totalCounterMessages produits par topic

Tableaux de Bord Grafana​

Vue d'Ensemble de la Plateforme​

Le tableau de bord principal affiche :

  • Taux de requêtes et taux d'erreur sur tous les services
  • Percentiles de latence (p50, p95, p99)
  • Utilisateurs actifs et sessions
  • Utilisation du pool de connexions base de données

Tableau de Bord MCP Gateway​

  • Taux d'appels d'outils par tenant et nom d'outil
  • Ratio d'autorisation/refus des politiques OPA
  • Nombre de connexions SSE
  • Débit du pipeline de métering

Tableau de Bord Tenant​

Vue par tenant montrant :

  • Volume d'appels API
  • Activité des abonnements
  • Répartition des erreurs par API
  • Utilisation des limites de débit

Agrégation des Logs​

Interroger les Logs​

Accédez aux logs via la vue Explore de Grafana avec Loki :

# Tous les logs d'erreur des 5 dernières minutes
{job=~".+"} |= "level=error"

# Logs de l'API du Plan de Contrôle pour un tenant spécifique
{app="control-plane-api"} |= "tenant=acme"

# Appels d'outils MCP Gateway
{app="mcp-gateway"} |= "tool.call"

# Requêtes lentes (>1s)
{app="control-plane-api"} | json | duration > 1s

Format des Logs​

Tous les services STOA journalisent en format JSON structuré :

{
"timestamp": "2026-02-04T10:30:00Z",
"level": "INFO",
"service": "control-plane-api",
"message": "API published",
"tenant": "acme",
"api": "petstore",
"version": "1.0.0",
"trace_id": "abc123"
}

Définissez LOG_FORMAT=text pour une sortie lisible par l'humain en développement local.

Alertes​

Règles d'Alerte Prometheus​

STOA est livré avec des règles d'alerte par défaut :

AlerteConditionSévérité
HighErrorRateTaux d'erreur > 5% pendant 5 minutesCritique
HighLatencyLatence p99 > 2s pendant 5 minutesAvertissement
DatabaseConnectionExhaustedPool de connexions > 90%Critique
KafkaConsumerLagLag > 10000 pendant 10 minutesAvertissement
MCPGatewayDownAucun pod sain pendant 1 minuteCritique
VaultSealedStatut scellé de Vault détectéCritique

Destinations des Alertes​

Configurez le routage des alertes dans alertmanager.yaml :

  • Slack : Notifications dans le canal pour les alertes d'équipe
  • PagerDuty : Escalade d'astreinte pour les alertes critiques
  • Email : Résumés périodiques pour les alertes non critiques

Runbooks​

STOA inclut des runbooks opérationnels organisés par sévérité :

Critique​

  • Gateway Hors Service — Gateway inaccessible
  • Connexion Base de Données — Problèmes de connectivité PostgreSQL
  • Vault Scellé — Vault nécessite un déverrouillage
  • Restauration Vault — Reprise après sinistre Vault

Haute Priorité​

  • Expiration de Certificat — Certificat TLS approchant l'expiration
  • Latence Élevée Gateway — Dégradation du temps de réponse
  • Lag Kafka — Consommateur prenant du retard

Priorité Moyenne​

  • Rollback d'API — Revenir à un déploiement d'API défectueux
  • Échec Adaptateur Gateway — Instance gateway inaccessible ou dégradée

Endpoints de Santé​

Tous les services exposent des endpoints de contrôle de santé :

EndpointObjectif
/health/readySonde de préparation — toutes les dépendances accessibles
/health/liveSonde de vivacité — processus actif
/health/startupSonde de démarrage — initialisation complète
curl ${STOA_API_URL}/health/ready
# {"status": "ok"}