Expand description
Status and metrics reporting.
§Status Reporter - IPC Monitoring & Health Checking
File Responsibilities: This module provides comprehensive monitoring and health checking for the IPC layer. It reports Mountain’s IPC status to Sky (the monitoring system) and enables real-time observability of the Wind-Mountain communication bridge.
Architectural Role in Wind-Mountain Connection:
The StatusReporter is the observability layer that provides:
- Real-time Monitoring: Continuous tracking of IPC health and performance
- Performance Metrics: Collection of latency, throughput, and resource usage data
- Health Scoring: Automated health assessments with alerting
- Service Discovery: Automatic detection and monitoring of Mountain services
- Incident Response: Automatic recovery attempts for degraded states
Monitoring Architecture (Microsoft-Inspired):
This module follows Microsoft’s monitoring and observability patterns:
1. Three-Pillar Monitoring:
- Telemetry: Collect and send metrics to Sky
- Health Checks: Periodic health assessments
- Logging: Detailed operation and error logging
2. Metric Categories:
- Availability: Connection uptime, service status
- Performance: Latency, throughput, response times
- Reliability: Error rates, success rates, retry counts
- Capacity: Resource usage, connection pool utilization
3. Health Scoring Algorithm:
- Start with perfect health (100%)
- Deduct points for detected issues:
- Connection loss: -25%
- Queue overflow: -15%
- High latency (>100ms): -20%
- Security violations: -30%
- Alert when score < 70%
- Critical when score < 50%
Key Structures:
ComprehensiveStatusReport: Combines all monitoring data into a single report:
- Basic status (connection, queue, errors)
- Performance metrics (latency, throughput, compression)
- Health status (score, issues, recovery attempts)
- Timestamp for correlation
PerformanceMetrics: Real-time performance data:
- Messages per second (throughput)
- Average and peak latency (performance)
- Compression ratio (efficiency)
- Connection pool utilization (capacity)
- Memory and CPU usage (resources)
HealthMonitor: Health state tracking:
- Overall health score (0-100)
- Detected issues with severity levels
- Recovery attempt counter
- Last health check timestamp
ServiceInfo: Individual service status:
- Service name and version
- Current status (Running/Degraded/Stopped/Error)
- Uptime and last heartbeat
- Dependencies for impact analysis
- Performance metrics per service
- Network endpoint information
ServiceRegistry: Service discovery registry:
- All discovered services
- Last discovery timestamp
- Configurable discovery interval
Health Issue Types:
HighLatency: Response time exceeds thresholdMemoryPressure: High memory usageConnectionLoss: IPC connection failureQueueOverflow: Message queue capacity exceededSecurityViolation: Unauthorized access or suspicious activityPerformanceDegradation: General performance decline
Severity Levels:
Low: Informational, no action neededMedium: Monitor closely, may need attentionHigh: Requires investigation and actionCritical: Immediate attention required
Reporting to Sky:
StatusReporter emits events that Sky listens to:
StatusReporter
|
| emit("ipc-status-report")
v
Sky (Monitoring System)
|
| Collects metrics
| Runs analytics
| Triggers alerts
| Displays dashboardsTauri Commands:
The module provides Tauri commands for external monitoring:
mountain_get_ipc_status- Get current statusmountain_get_ipc_status_history- Get historical statusmountain_start_ipc_status_reporting- Enable periodic reportingmountain_get_performance_metrics- Get performance datamountain_get_health_status- Get health statusmountain_perform_health_check- Trigger health checkmountain_attempt_recovery- Attempt automatic recoverymountain_get_service_registry- Get all servicesmountain_get_service_info- Get specific service infomountain_discover_services- Trigger service discoverymountain_get_comprehensive_status- Get complete report
Service Discovery:
Automatically discovers Mountain services:
// Core services always discovered
let core_services = vec![
("EditorService", "1.0.0", Running),
("ExtensionHostService", "1.0.0", Running),
("ConfigurationService", "1.0.0", Running),
("FileService", "1.0.0", Running),
("StorageService", "1.0.0", Running),
];Automatic Recovery:
When health score drops below threshold:
- Dispose current IPC server
- Reinitialize IPC server
- Clear error counters
- Log recovery attempt
- Return to normal operation
Performance Calculations:
Message Rate:
messages_per_second = total_messages / time_span_seconds Average Latency:
average_latency_ms = sum(latencies) / message_count Metric Collection Strategy:
- Continuous Collection: Background tasks collect metrics constantly
- Sliding Window: Calculate metrics over recent time window (5-10 samples)
- Periodic Reporting: Emit to Sky at configured interval (default: 30s)
- Event-Driven: Emit immediately for critical events
Health Check Process:
Every 30 seconds:
- Check IPC connection status
- Check message queue size
- Check performance metrics
- Update health score
- Emit health status event
- Trigger alerts if needed
Structs§
- Comprehensive
Status Report - Comprehensive status report combining all monitoring data
- Connection
Status - Connection status details
- Health
Issue - Health
Monitor - Health monitoring system
- IPCStatus
Report - IPC status information for Sky monitoring
- Message
Stats - Message statistics
- Performance
Metrics - Advanced performance metrics
- Service
Info - Service discovery information
- Service
Metrics - Service metrics
- Service
Registry - Service discovery registry
- Status
Reporter - Status reporter for IPC communication
Enums§
- Health
Issue Type - Service
Status - Service status
- Severity
Level
Functions§
- initialize_
status_ reporter - Initialize status reporter in Mountain’s setup
- mountain_
attempt_ recovery - Tauri command to attempt recovery
- mountain_
discover_ services - Tauri command to discover services
- mountain_
get_ comprehensive_ status - Tauri command to get comprehensive status report
- mountain_
get_ health_ status - Tauri command to get health status
- mountain_
get_ ipc_ status - Tauri command to get current IPC status
- mountain_
get_ ipc_ status_ history - Tauri command to get IPC status history
- mountain_
get_ performance_ metrics - TAURI COMMANDS: Microsoft-inspired comprehensive monitoring Tauri command to get performance metrics
- mountain_
get_ service_ info - Tauri command to get service information
- mountain_
get_ service_ registry - Tauri command to get service registry
- mountain_
perform_ health_ check - Tauri command to perform health check
- mountain_
start_ ipc_ status_ reporting - Tauri command to start periodic status reporting
- mountain_
start_ service_ discovery - Tauri command to start periodic service discovery