Db Replication
Classes
Classes
ReplicationMetricsStorage
Constructor
constructor(config?: Partial<StorageConfig> | undefined)
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
config | Partial<StorageConfig> | undefined | No |
Methods
storeSnapshot
Store a metric snapshot
storeSnapshot(snapshot: MetricSnapshot): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
snapshot | MetricSnapshot | Yes |
storeEvent
Store replication event
storeEvent(event: ReplicationEvent): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
event | ReplicationEvent | Yes |
batchStoreSnapshots
Batch store multiple snapshots
batchStoreSnapshots(snapshots: MetricSnapshot[]): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
snapshots | MetricSnapshot[] | Yes |
getCurrentMetrics
Get current metrics for all collections
getCurrentMetrics(): ReplicationMetrics[]
Returns:
ReplicationMetrics[] -
getHistoricalMetrics
Get historical metrics for a time range
getHistoricalMetrics(query: HistoricalQuery): Promise<ReplicationMetrics[]>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query | HistoricalQuery | Yes |
Returns:
Promise<ReplicationMetrics[]> -
getTimeSeriesData
Get time series data for specific metrics
getTimeSeriesData(collections: string[], metrics: string[], timeRange: { start: Date; end: Date; }, granularity?: "minute" | "hour" | "day"): TimeSeriesData[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
collections | string[] | Yes | |
metrics | string[] | Yes | |
timeRange | { start: Date; end: Date; } | Yes | |
granularity | "minute" | "hour" | "day" | No |
Returns:
TimeSeriesData[] -
getTrendAnalysis
Get trend analysis
getTrendAnalysis(collection: string, metric: string, timeRange: { start: Date; end: Date; }): TrendAnalysis
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
collection | string | Yes | |
metric | string | Yes | |
timeRange | { start: Date; end: Date; } | Yes |
Returns:
TrendAnalysis -
exportMetrics
Export metrics in various formats
exportMetrics(options: ExportOptions): Promise<string>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
options | ExportOptions | Yes |
Returns:
Promise<string> -
getSnapshotStream
Get snapshot stream
getSnapshotStream(): Observable<MetricSnapshot>
Returns:
Observable<MetricSnapshot> -
getAlertStream
Get alert stream
getAlertStream(): Observable<PerformanceAlert>
Returns:
Observable<PerformanceAlert> -
getTrendsStream
Get trends stream
getTrendsStream(): Observable<Map<string, TrendAnalysis>>
Returns:
Observable<Map<string, TrendAnalysis>> -
addAlertThreshold
Add performance alert threshold
addAlertThreshold(collection: string, metric: string, threshold: number, condition: "above" | "below" | "equals", severity?: "warning" | "info" | "critical"): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
collection | string | Yes | |
metric | string | Yes | |
threshold | number | Yes | |
condition | "above" | "below" | "equals" | Yes | |
severity | "warning" | "info" | "critical" | No |
cleanup
Clear old data
cleanup(): Promise<{ removedSnapshots: number; freedBytes: number; }>
Returns:
Promise<{ removedSnapshots: number; freedBytes: number; }> -
getStorageStats
Get storage statistics
getStorageStats(): { totalSnapshots: number; storageUsage: number; collections: number; oldestSnapshot: Date | null; newestSnapshot: Date | null; quotaUsed: number; }
Returns:
{ totalSnapshots: number; storageUsage: number; collections: number; oldestSnapshot: Date \| null; newestSnapshot: Date \| null; quotaUsed: number; } -
destroy
Cleanup resources
destroy(): void
PerformanceThresholdMonitor
Performance threshold monitor
Constructor
constructor(thresholds?: Partial<PerformanceThresholds>)
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
thresholds | Partial<PerformanceThresholds> | No |
Methods
checkThresholds
Check if current metrics violate thresholds
checkThresholds(metrics: PerformanceMetricsResult, resourceUsage: ResourceUsageMetrics): ThresholdViolation[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
metrics | PerformanceMetricsResult | Yes | |
resourceUsage | ResourceUsageMetrics | Yes |
Returns:
ThresholdViolation[] -
onThresholdViolation
Register alert callback
onThresholdViolation(callback: (violation: ThresholdViolation) => void): () => void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
callback | (violation: ThresholdViolation) => void | Yes |
Returns:
() => void -
updateThresholds
Update thresholds
updateThresholds(newThresholds: Partial<PerformanceThresholds>): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
newThresholds | Partial<PerformanceThresholds> | Yes |
getViolationStats
Get violation statistics
getViolationStats(): Record<string, number>
Returns:
Record<string, number> -
clearViolationHistory
Clear violation history
clearViolationHistory(): void
PerformanceOptimizationEngine
Performance optimization engine
Constructor
constructor(thresholds?: Partial<PerformanceThresholds> | undefined)
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
thresholds | Partial<PerformanceThresholds> | undefined | No |
Methods
analyzePerformance
Analyze performance and generate optimization recommendations
analyzePerformance(events: ReplicationEvent[], collections: Map<string, ReplicationStatus>): Promise<OptimizationRecommendation[]>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
collections | Map<string, ReplicationStatus> | Yes |
Returns:
Promise<OptimizationRecommendation[]> -
applyOptimization
Apply an optimization recommendation
applyOptimization(recommendationId: string): Promise<OptimizationResult>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
recommendationId | string | Yes |
Returns:
Promise<OptimizationResult> -
getRecommendations
Get current optimization recommendations
getRecommendations(): OptimizationRecommendation[]
Returns:
OptimizationRecommendation[] -
getOptimizationHistory
Get optimization history
getOptimizationHistory(): OptimizationResult[]
Returns:
OptimizationResult[] -
clearOldRecommendations
Clear old recommendations
clearOldRecommendations(maxAge?: number): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
maxAge | number | No |
ResourceUsageMonitor
Resource usage monitor
Methods
startMonitoring
Start continuous monitoring
startMonitoring(intervalMs?: number): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
intervalMs | number | No |
stopMonitoring
Stop continuous monitoring
stopMonitoring(): void
getCurrentUsage
Get current resource usage
getCurrentUsage(): Promise<ResourceUsageMetrics>
Returns:
Promise<ResourceUsageMetrics> -
getUsageTrends
Get usage trends over time
getUsageTrends(timeWindow?: number): ResourceUsageMetrics[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
timeWindow | number | No |
Returns:
ResourceUsageMetrics[] -
ReplicationRecoveryManager
Constructor
constructor(config?: Partial<RecoveryConfig> | undefined)
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
config | Partial<RecoveryConfig> | undefined | No |
Methods
recoverFromError
Attempt to recover from a replication error
recoverFromError(error: Error, context: RecoveryContext): Promise<RecoveryResult>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
error | Error | Yes | |
context | RecoveryContext | Yes |
Returns:
Promise<RecoveryResult> -
withRecovery
Create an observable with automatic retry and recovery
withRecovery(source: Observable<T>, context: RecoveryContext): Observable<T>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
source | Observable<T> | Yes | |
context | RecoveryContext | Yes |
Returns:
Observable<T> -
registerAuthRefreshCallback
Register an authentication token refresh callback
registerAuthRefreshCallback(domainId: string, callback: () => Promise<string>): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | |
callback | () => Promise<string> | Yes |
getRecoveryStream
Get recovery attempt observable
getRecoveryStream(): Observable<RecoveryAttempt>
Returns:
Observable<RecoveryAttempt> -
getConnectionHealthStream
Get connection health observable
getConnectionHealthStream(): Observable<Map<string, ConnectionHealth>>
Returns:
Observable<Map<string, ConnectionHealth>> -
checkConnectionHealth
Manually trigger connection health check
checkConnectionHealth(endpoint?: string | undefined): Promise<ConnectionHealth>
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
endpoint | string | undefined | No |
Returns:
Promise<ConnectionHealth> -
resetCircuitBreaker
Reset circuit breaker for a specific endpoint
resetCircuitBreaker(key: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | Yes |
getCircuitBreakerStates
Get current circuit breaker states
getCircuitBreakerStates(): Map<string, CircuitBreakerState>
Returns:
Map<string, CircuitBreakerState> -
addRecoveryStrategy
Add custom recovery strategy
addRecoveryStrategy(strategy: RecoveryStrategy): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
strategy | RecoveryStrategy | Yes |
removeRecoveryStrategy
Remove recovery strategy
removeRecoveryStrategy(strategyId: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
strategyId | string | Yes |
destroy
Cleanup resources
destroy(): void
ReplicationEventFormatter
Event formatting utilities
Methods
formatEvent
Format a single event for display
formatEvent(event: ReplicationEvent, options?: EventFormatOptions): string
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
event | ReplicationEvent | Yes | |
options | EventFormatOptions | No |
Returns:
string -
formatEventReport
Format multiple events as a report
formatEventReport(events: ReplicationEvent[], options?: EventFormatOptions): string
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
options | EventFormatOptions | No |
Returns:
string -
generateEventSummary
Generate event summary statistics
generateEventSummary(events: ReplicationEvent[]): { totalEvents: number; firstEvent: Date; lastEvent: Date; collections: string[]; eventTypes: Record<string, number>; errorCount: number; successCount: number; avgLatency: number; }
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes |
Returns:
{ totalEvents: number; firstEvent: Date; lastEvent: Date; collections: string[]; eventTypes: Record<string, number>; errorCount: number; successCount: number; avgLatency: number; } -
ReplicationEventFilter
Event filtering utilities
Methods
filterEvents
Filter events based on criteria
filterEvents(events: ReplicationEvent[], options: EventFilterOptions): ReplicationEvent[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
options | EventFilterOptions | Yes |
Returns:
ReplicationEvent[] -
filterByTimeWindow
Filter events by time window
filterByTimeWindow(events: ReplicationEvent[], windowMs: number, endTime?: Date): ReplicationEvent[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
windowMs | number | Yes | |
endTime | Date | No |
Returns:
ReplicationEvent[] -
filterByErrorPattern
Filter events by error patterns
filterByErrorPattern(events: ReplicationEvent[], pattern: ReplicationErrorPattern): ReplicationEvent[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
pattern | ReplicationErrorPattern | Yes |
Returns:
ReplicationEvent[] -
ReplicationEventAggregator
Event aggregation utilities
Methods
aggregateEvents
Aggregate events by specified criteria
aggregateEvents(events: ReplicationEvent[], options: EventAggregationOptions): AggregatedEventData[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
options | EventAggregationOptions | Yes |
Returns:
AggregatedEventData[] -
createErrorAggregation
Create error aggregation summary
createErrorAggregation(events: ReplicationEvent[], period: { start: Date; end: Date; }): ReplicationErrorAggregation
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
period | { start: Date; end: Date; } | Yes |
Returns:
ReplicationErrorAggregation -
ReplicationPerformanceCalculator
Performance metrics calculator
Methods
calculateMetrics
Calculate comprehensive performance metrics
calculateMetrics(events: ReplicationEvent[], options?: PerformanceMetricsOptions): PerformanceMetricsResult
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
events | ReplicationEvent[] | Yes | |
options | PerformanceMetricsOptions | No |
Returns:
PerformanceMetricsResult -
ReplicationMetrics
Methods
getInstance
getInstance(): ReplicationMetrics
Returns:
ReplicationMetrics -
record
Record a metric
record(name: string, value: number, tags?: Record<string, string>): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
value | number | Yes | |
tags | Record<string, string> | No |
recordSyncLatency
Record sync latency
recordSyncLatency(operation: "push" | "pull", latencyMs: number, domainId: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
operation | "push" | "pull" | Yes | |
latencyMs | number | Yes | |
domainId | string | Yes |
recordDocumentThroughput
Record document throughput
recordDocumentThroughput(operation: "push" | "pull", count: number, domainId: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
operation | "push" | "pull" | Yes | |
count | number | Yes | |
domainId | string | Yes |
recordConflict
Record conflict
recordConflict(collectionName: string, domainId: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
collectionName | string | Yes | |
domainId | string | Yes |
recordError
Record error
recordError(errorType: string, operation: string, domainId: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
errorType | string | Yes | |
operation | string | Yes | |
domainId | string | Yes |
recordStorageUsage
Record storage usage
recordStorageUsage(domainId: string, bytes: number): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | |
bytes | number | Yes |
recordAuthEvent
Record authentication events
recordAuthEvent(event: "retry" | "success" | "failure", domainId?: string | undefined): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
event | "retry" | "success" | "failure" | Yes | |
domainId | string | undefined | No |
recordNetworkLatency
Record network latency
recordNetworkLatency(endpoint: string, method: string, latencyMs: number, statusCode: number): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
endpoint | string | Yes | |
method | string | Yes | |
latencyMs | number | Yes | |
statusCode | number | Yes |
recordRetry
Record retry events
recordRetry(operation: string, attempt: number, domainId: string, successful: boolean): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
operation | string | Yes | |
attempt | number | Yes | |
domainId | string | Yes | |
successful | boolean | Yes |
recordRateLimit
Record rate limit hits
recordRateLimit(endpoint: string, domainId: string, userId?: string | undefined): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
endpoint | string | Yes | |
domainId | string | Yes | |
userId | string | undefined | No |
recordConnectionStatus
Record connection status
recordConnectionStatus(status: "connected" | "disconnected" | "reconnecting", domainId: string): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
status | "connected" | "disconnected" | "reconnecting" | Yes | |
domainId | string | Yes |
recordDocumentOperation
Record document operation performance
recordDocumentOperation(operation: "create" | "update" | "delete", collectionName: string, duration: number, success: boolean): void
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
operation | "create" | "update" | "delete" | Yes | |
collectionName | string | Yes | |
duration | number | Yes | |
success | boolean | Yes |
getSummary
Get metrics summary
getSummary(domainId?: string | undefined): MetricsSummary
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | undefined | No |
Returns:
MetricsSummary -
exportMetrics
Export metrics for external analysis
exportMetrics(startTime?: number | undefined, endTime?: number | undefined): Metric[]
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
startTime | number | undefined | No | |
endTime | number | undefined | No |
Returns:
Metric[] -
clear
Clear all metrics
clear(): void