FEAT: Pipeline degradation / circuit breaker IA — dégradation générique (exécutant ONNX / broker) #4
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🎯 Contexte
La spec prévoit une IA avec circuit breaker et niveaux de dégradation. Aucun mécanisme de dégradation n'existe : le pipeline ne sait pas réagir quand l'analyse IA ralentit, tombe, ou quand la file de jobs est saturée. L'architecture IA retenue (tickets #72-77) : inférence ONNX Runtime sur les agents (GPU ou CPU), mutualisée inter-sites via un broker de jobs (RabbitMQ + MassTransit). Le circuit breaker doit donc être générique : il surveille l'exécutant (local ou distant) et le broker, pas un service central.
📚 Référence spec / décision d'architecture
3.5 Pipeline Degradation (Circuit Breaker IA) — niveaux conservés, re-câblés sur l'architecture broker :
3.6 Gestion des erreurs IA : timeout 5s → retry 1× 100ms puis degrade 1 + health check 30s ; broker/exécutant down → degrade 2 + health check 10s ; prédiction vide → log, pas d'événement ; worker désactivé → skip + log.
🔍 État actuel (vérifié dans le code)
CameraEventService.CreateAsynccrée les événements tels quels — aucun degradation tracker, aucun circuit breaker, aucune gestion de dégradation broker/exécutant. Le pipeline agent (SnapshotPipelineService) continue de pousser sans backpressure réseau.🧩 À faire
AIPipelineDegradationTracker(niveaux 0-4) : état partagé central + local agentdegradationLeveldans/health/live(503 si level ≥ 2)🧪 Critères d'acceptation
degradationLevelexposé dans /health/livemake testvert📁 Fichiers concernés
src/Heimdall.Infrastructure/Services/AIPipelineDegradationTracker.cs (nouveau), src/Heimdall.Agent/Services/SnapshotPipelineService.cs,
src/Heimdall.Web/Controllers/HealthController.cs, src/Heimdall.Application/Services/,
📝 Notes
Lié aux tickets #72-77 (broker + mutualisation GPU), #2 (inférence réelle), #13 (health checks). Le circuit breaker est indépendant du backend : il fonctionne que l'analyse soit locale (ONNX) ou distante (broker).
FEAT: Intégration CodeProject.AI au Central + pipeline degradationto FEAT: Pipeline degradation / circuit breaker IA — dégradation générique (exécutant ONNX / broker)