[Phase 4] Create operational dashboard and logging #20

Closed
opened 2025-12-21 13:04:43 +00:00 by Damien · 1 comment
Owner

Description

Create an operational dashboard and structured logging for monitoring the orchestrator's activity.

Tasks

  • Implement structured JSON logging
  • Add log levels and filtering
  • Create CLI command for viewing recent activity
  • Add metrics collection (operations count, success rate, latency)
  • Optional: Simple web dashboard for status overview

Logging Structure

{
    "timestamp": "2024-01-15T10:30:00Z",
    "level": "INFO",
    "event": "reconciler.apply_completed",
    "device": "leaf1",
    "changes_applied": 3,
    "duration_ms": 1250,
    "correlation_id": "abc-123"
}

CLI Commands

# View recent events
fabric-orch logs [--level INFO] [--device leaf1] [--last 100]

# View current status
fabric-orch status

# Output example:
Fabric Orchestrator Status
─────────────────────────────
Uptime: 2d 5h 32m
Devices monitored: 10
Active gNMI subscriptions: 10

Recent Activity (last 24h):
  Plans generated: 15
  Changes applied: 42
  Drift events: 3
  Remediations: 2

Device Status:
  leaf1: ✓ connected, no drift
  leaf2: ✓ connected, no drift
  leaf3: ⚠ drift detected (VLAN 40)
  ...

Metrics to Track

  • Total operations (plan, apply, drift)
  • Success/failure rate
  • Average operation duration
  • Drift events per device
  • Time since last drift per device

Optional: Web Dashboard

Simple FastAPI + HTML/JS dashboard showing:

  • Real-time device status
  • Event stream
  • Drift alerts
  • Operation history

Output

  • src/logging.py
  • src/metrics.py
  • src/cli.py (extend with logs/status commands)
## Description Create an operational dashboard and structured logging for monitoring the orchestrator's activity. ## Tasks - [ ] Implement structured JSON logging - [ ] Add log levels and filtering - [ ] Create CLI command for viewing recent activity - [ ] Add metrics collection (operations count, success rate, latency) - [ ] Optional: Simple web dashboard for status overview ## Logging Structure ```python { "timestamp": "2024-01-15T10:30:00Z", "level": "INFO", "event": "reconciler.apply_completed", "device": "leaf1", "changes_applied": 3, "duration_ms": 1250, "correlation_id": "abc-123" } ``` ## CLI Commands ```bash # View recent events fabric-orch logs [--level INFO] [--device leaf1] [--last 100] # View current status fabric-orch status # Output example: Fabric Orchestrator Status ───────────────────────────── Uptime: 2d 5h 32m Devices monitored: 10 Active gNMI subscriptions: 10 Recent Activity (last 24h): Plans generated: 15 Changes applied: 42 Drift events: 3 Remediations: 2 Device Status: leaf1: ✓ connected, no drift leaf2: ✓ connected, no drift leaf3: ⚠ drift detected (VLAN 40) ... ``` ## Metrics to Track - Total operations (plan, apply, drift) - Success/failure rate - Average operation duration - Drift events per device - Time since last drift per device ## Optional: Web Dashboard Simple FastAPI + HTML/JS dashboard showing: - Real-time device status - Event stream - Drift alerts - Operation history ## Output - `src/logging.py` - `src/metrics.py` - `src/cli.py` (extend with logs/status commands)
Damien added the phase-4-event-driven label 2025-12-21 13:04:48 +00:00
Author
Owner

🔄 Clôture - Migration vers Kestra

Cette issue est obsolète suite à la migration vers Kestra comme moteur d'orchestration.

Raison

Kestra inclut nativement toutes ces fonctionnalités :

  • Dashboard UI : Interface web complète avec vue d'ensemble des workflows
  • Logs structurés : Logs détaillés par exécution avec recherche
  • Métriques : Durée d'exécution, taux de succès, compteurs custom
  • Historique : Historique complet des exécutions avec replay possible
  • Alerting : Notifications Slack/Discord/Teams sur échec

Screenshot Kestra UI

L'interface Kestra à http://localhost:8080 offre :

  • Vue temps réel des exécutions
  • Logs par tâche
  • Gantt chart des workflows
  • Métriques et statistiques

Aucun développement custom n'est nécessaire.

## 🔄 Clôture - Migration vers Kestra Cette issue est **obsolète** suite à la migration vers [Kestra](https://kestra.io) comme moteur d'orchestration. ### Raison Kestra inclut nativement toutes ces fonctionnalités : - **Dashboard UI** : Interface web complète avec vue d'ensemble des workflows - **Logs structurés** : Logs détaillés par exécution avec recherche - **Métriques** : Durée d'exécution, taux de succès, compteurs custom - **Historique** : Historique complet des exécutions avec replay possible - **Alerting** : Notifications Slack/Discord/Teams sur échec ### Screenshot Kestra UI L'interface Kestra à `http://localhost:8080` offre : - Vue temps réel des exécutions - Logs par tâche - Gantt chart des workflows - Métriques et statistiques Aucun développement custom n'est nécessaire.
Sign in to join this conversation.