-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
✨ Type: FeatureNew functionality or enhancementNew functionality or enhancement🟡 Test: MediumModerate testing effort requiredModerate testing effort required🟢 Priority: LowNice to have, can waitNice to have, can wait
Milestone
Description
Description
Add built-in metrics collection and observability features for monitoring migration performance and health in production.
Requirements
Metrics to Collect
- Execution Time - Per migration and total
- Success/Failure Rate - Track reliability
- Database Size Changes - Before/after migration
- Rollback Frequency - How often rollbacks occur
- Migration Queue Depth - How many pending
- Validation Errors - Pre-execution issues
Configuration
config.metrics = {
enabled: true,
collectors: [
new PrometheusCollector({ port: 9090 }),
new DataDogCollector({ apiKey: 'xxx' }),
new CloudWatchCollector({ region: 'us-east-1' }),
new CustomCollector() // User-defined
]
};Metrics Interface
interface IMetricsCollector {
recordMigrationStart(script: IMigrationScript): void;
recordMigrationComplete(script: IMigrationScript, duration: number): void;
recordMigrationError(script: IMigrationScript, error: Error): void;
recordRollback(strategy: RollbackStrategy, success: boolean): void;
recordValidationError(errors: ValidationError[]): void;
}Built-in Collectors
- ConsoleMetricsCollector - Log metrics to console
- FileMetricsCollector - Write metrics to JSON file
- PrometheusCollector - Expose Prometheus endpoint
- DataDogCollector - Send to DataDog
- CloudWatchCollector - Send to AWS CloudWatch
Example Prometheus Metrics
# HELP msr_migrations_total Total migrations executed
# TYPE msr_migrations_total counter
msr_migrations_total{status="success"} 150
msr_migrations_total{status="failed"} 2
# HELP msr_migration_duration_seconds Migration execution time
# TYPE msr_migration_duration_seconds histogram
msr_migration_duration_seconds_bucket{le="0.1"} 50
msr_migration_duration_seconds_bucket{le="1.0"} 120
# HELP msr_rollbacks_total Total rollbacks triggered
# TYPE msr_rollbacks_total counter
msr_rollbacks_total{strategy="BACKUP"} 2
Use Cases
- Production Monitoring - Track migration health
- Performance Analysis - Identify slow migrations
- Alerting - Get notified of failures
- Capacity Planning - Database size trends
- SLA Compliance - Migration time objectives
Implementation Notes
- Create IMetricsCollector interface
- Implement built-in collectors
- Add metrics collection hooks throughout execution
- Support multiple collectors simultaneously
- Make it lightweight (low overhead)
Acceptance Criteria
- IMetricsCollector interface defined
- 3+ built-in collectors implemented
- Metrics collected at key lifecycle points
- Integration examples for popular tools
- Performance impact < 5% overhead
- Documentation with dashboard examples
Metadata
Metadata
Assignees
Labels
✨ Type: FeatureNew functionality or enhancementNew functionality or enhancement🟡 Test: MediumModerate testing effort requiredModerate testing effort required🟢 Priority: LowNice to have, can waitNice to have, can wait