Files
2026-10-23 18:46:50 +02:00

2.9 KiB
Raw Permalink Blame History

Configuration de l'observabilité externe

Section Observability:External (§74)

{
  "Observability": {
    "External": {
      "Enabled": false,
      "OtlpEndpoint": "",
      "ExportTimeoutSeconds": 3,
      "MaxQueueSize": 2048,
      "MaxExportBatchSize": 512,
      "ScheduledDelayMilliseconds": 2000,
      "CircuitFailureThreshold": 5,
      "CircuitCooldownSeconds": 30,
      "IncludeP4": false
    }
  }
}
Clé Défaut Rôle
Enabled false Kill switch. false = aucun export, aucun réseau, aucun thread externe.
OtlpEndpoint "" Endpoint OTLP HTTP/protobuf du Collector (ex. http://10.0.0.10:4318).
ExportTimeoutSeconds 3 Timeout réseau court d'un export OTLP (2–5 s max, §13).
MaxQueueSize 2048 File SDK OTel bornée (§14).
MaxExportBatchSize 512 Taille max d'un lot OTel.
ScheduledDelayMilliseconds 2000 Délai de regroupement du batch.
CircuitFailureThreshold 5 Échecs consécutifs avant ouverture du circuit.
CircuitCooldownSeconds 30 Durée d'ouverture du circuit avant sonde.
IncludeP4 false Exporter les événements P4 (analytics). Non exportés par défaut (§44).

Autres clés (forwarder) : ForwarderBatchSize (100), ForwarderIntervalSeconds (15), CheckpointFileName (forwarder-checkpoint.json).

Default safe (§18)

Enabled=false par défaut. Activation explicite après installation et validation du Collector (test §88). Ne jamais activer en production sans avoir validé la chaîne.

Kill switch (§17)

Mettre Enabled=false désactive entièrement :

  • OpenTelemetryExporterAdapter (aucun provider, aucun réseau, aucun thread) ;
  • RemoteDiagnosticForwarder externe (la boucle reste au ralenti).

Sans désactiver (inchangé) :

  • LocalFileTelemetryExporter (JSONL local) ;
  • DiagnosticOutbox (omika-diagnostics.db) ;
  • POST /api/diagnostics ;
  • RemoteDiagnosticIngestionStore (JSONL serveur).

Configuration invalide (§75)

Enabled=true + OtlpEndpoint="" (ou URL non http/https, ou bornes invalides) :

  • l'adaptateur externe est désactivé (NoOp) ;
  • un warning EmergencyLogger est écrit ;
  • Omika démarre et fonctionne normalement (jamais de crash au démarrage).

Environnements (§73)

Environnement Enabled Endpoint
Development false (ou true + endpoint local) http://localhost:4318
Production explicite http://<ip-vm-observability>:4318

Les endpoints ne sont jamais codés en dur dans le code : ils viennent de la configuration (appsettings / variables d'environnement / secrets).

Secrets (§30)

Aucun secret dans un fichier versionné. Les credentials éventuels (ClickHouse) sont fournis via .env (non versionné) / variables d'environnement. Ne jamais réutiliser un mot de passe utilisateur, un token mobile, une clé licence ou un secret SMTP pour l'observabilité.