Class: MonitorManager
Defined in: electron/managers/MonitorManager.ts:135
Main class for orchestrating monitor scheduling, status checks, and event-driven updates.
Remarks
All monitoring operations, including lifecycle management, scheduling, and event emission, are coordinated here. This class is the central entry point for all backend monitoring logic.
Constructors
Constructor
new MonitorManager(
dependencies:MonitorManagerDependencies,enhancedServices:EnhancedMonitoringServices):MonitorManager
Defined in: electron/managers/MonitorManager.ts:586
Creates a new manager using the supplied dependencies and enhanced services.
Parameters
dependencies
Data, cache, and event collaborators.
enhancedServices
Enhanced monitoring orchestrator bundle.
Returns
MonitorManager
Properties
dependencies
privatereadonlydependencies:MonitorManagerDependencies
Defined in: electron/managers/MonitorManager.ts:137
Injected dependencies for orchestration and data access.
enhancedMonitoringServices
privatereadonlyenhancedMonitoringServices:EnhancedMonitoringServices
Defined in: electron/managers/MonitorManager.ts:140
Enhanced monitoring services that coordinate stateful operations.
eventEmitter
privatereadonlyeventEmitter:TypedEventBus<UptimeEvents>
Defined in: electron/managers/MonitorManager.ts:143
Typed event bus used for monitor event emission.
isMonitoring
privateisMonitoring:boolean=false
Defined in: electron/managers/MonitorManager.ts:146
Tracks whether any monitors are currently active.
monitorScheduler
privatereadonlymonitorScheduler:MonitorScheduler
Defined in: electron/managers/MonitorManager.ts:149
Schedules monitor checks and lifecycle callbacks.
Methods
checkSiteManually()
checkSiteManually(
identifier:string,monitorId?:string):Promise<StatusUpdate|undefined>
Defined in: electron/managers/MonitorManager.ts:159
Triggers an immediate monitor check and emits completion events.
Parameters
identifier
string
Site identifier to inspect.
monitorId?
string
Optional monitor identifier to target.
Returns
Promise<StatusUpdate | undefined>
Latest StatusUpdate when available.
setupNewMonitors()
setupNewMonitors(
site:Site,newMonitorIds:string[]):Promise<void>
Defined in: electron/managers/MonitorManager.ts:186
Applies default configuration for monitors newly attached to a site.
Parameters
site
Site containing the monitors.
newMonitorIds
string[]
Monitor identifiers to initialize.
Returns
Promise<void>
setupSiteForMonitoring()
Defined in: electron/managers/MonitorManager.ts:204
Prepares a site for scheduling by applying default cadence and auto-start rules.
Parameters
site
Site to prime before monitoring begins.
Returns
Promise<void>
startMonitoring()
startMonitoring():
Promise<MonitoringStartSummary>
Defined in: electron/managers/MonitorManager.ts:220
Starts monitoring across the full fleet and emits lifecycle events.
Returns
Promise<MonitoringStartSummary>
Summary describing attempted and successful starts.
startMonitoringForSite()
startMonitoringForSite(
identifier:string,monitorId?:string):Promise<boolean>
Defined in: electron/managers/MonitorManager.ts:241
Starts monitoring for a site or a single monitor and emits lifecycle events.
Parameters
identifier
string
Site identifier being toggled.
monitorId?
string
Optional monitor identifier to scope the request.
Returns
Promise<boolean>
stopMonitoring()
stopMonitoring():
Promise<MonitoringStopSummary>
Defined in: electron/managers/MonitorManager.ts:274
Stops monitoring globally and reports the resulting summary.
Returns
Promise<MonitoringStopSummary>
Breakdown of attempted and successful stops.
stopMonitoringForSite()
stopMonitoringForSite(
identifier:string,monitorId?:string):Promise<boolean>
Defined in: electron/managers/MonitorManager.ts:294
Stops monitoring for a site or individual monitor and emits lifecycle events.
Parameters
identifier
string
Site identifier being toggled.
monitorId?
string
Optional monitor identifier to scope the request.
Returns
Promise<boolean>
runSequentially()
privaterunSequentially<TItem>(items: readonlyTItem[],task: (item:TItem) =>Promise<void>):Promise<void>
Defined in: electron/managers/MonitorManager.ts:326
Execute asynchronous tasks sequentially while preserving order.
Type Parameters
TItem
TItem
Parameters
items
readonly TItem[]
task
(item: TItem) => Promise<void>
Returns
Promise<void>
applyDefaultIntervals()
Defined in: electron/managers/MonitorManager.ts:341
Ensures every monitor in the site respects the shared minimum interval.
Parameters
site
Site whose monitors need remediation.
Returns
Promise<void>
startAllMonitoringEnhanced()
privatestartAllMonitoringEnhanced(config:EnhancedLifecycleConfig,isMonitoring:boolean):Promise<MonitoringStartSummary>
Defined in: electron/managers/MonitorManager.ts:367
Internal
Enhanced start all monitoring - replaces the previous startAllMonitoring implementation function.
Parameters
config
Configuration object with required dependencies
isMonitoring
boolean
Current monitoring state
Returns
Promise<MonitoringStartSummary>
Promise
autoStartMonitoringIfAppropriate()
privateautoStartMonitoringIfAppropriate(site:Site):Promise<void>
Defined in: electron/managers/MonitorManager.ts:379
Applies auto-start rules for a site that has newly loaded monitors.
Parameters
site
Returns
Promise<void>
stopAllMonitoringEnhanced()
privatestopAllMonitoringEnhanced(config:EnhancedLifecycleConfig):Promise<MonitoringStopSummary>
Defined in: electron/managers/MonitorManager.ts:398
Internal
Enhanced stop all monitoring - replaces the previous stopAllMonitoring implementation function.
Parameters
config
Configuration object with required dependencies
Returns
Promise<MonitoringStopSummary>
Promise
autoStartNewMonitors()
privateautoStartNewMonitors(site:Site,newMonitors:Monitor[]):Promise<void>
Defined in: electron/managers/MonitorManager.ts:408
Auto-starts eligible monitors that have just been added to a site.
Parameters
site
newMonitors
Monitor[]
Returns
Promise<void>
startMonitoringForSiteEnhanced()
privatestartMonitoringForSiteEnhanced(config:EnhancedLifecycleConfig,identifier:string,monitorId?:string,monitorAction?:MonitorActionDelegate):Promise<boolean>
Defined in: electron/managers/MonitorManager.ts:434
Internal
Enhanced start monitoring for site - replaces the earlier implementation startMonitoringForSite function.
Parameters
config
Configuration object with required dependencies
identifier
string
Site identifier
monitorId?
string
Optional monitor ID
monitorAction?
Optional recursive handler for nested starts
Returns
Promise<boolean>
Promise
handleScheduledCheck()
privatehandleScheduledCheck(siteIdentifier:string,monitorId:string,signal:AbortSignal):Promise<void>
Defined in: electron/managers/MonitorManager.ts:463
Internal
Handles scheduled monitor checks from the MonitorScheduler.
Parameters
siteIdentifier
string
The identifier of the site.
monitorId
string
The monitor ID to check.
signal
Returns
Promise<void>
A promise that resolves when the scheduled check is complete.
Remarks
Invoked by the scheduler to perform a check on a specific monitor at the scheduled interval.
stopMonitoringForSiteEnhanced()
privatestopMonitoringForSiteEnhanced(config:EnhancedLifecycleConfig,identifier:string,monitorId?:string,monitorAction?:MonitorActionDelegate):Promise<boolean>
Defined in: electron/managers/MonitorManager.ts:491
Internal
Enhanced stop monitoring for site - replaces the previous stopMonitoringForSite implementation function.
Parameters
config
Configuration object with required dependencies
identifier
string
Site identifier
monitorId?
string
Optional monitor ID
monitorAction?
Optional recursive handler for nested stops
Returns
Promise<boolean>
Promise
setupIndividualNewMonitors()
privatesetupIndividualNewMonitors(site:Site,newMonitors:Monitor[]):Promise<void>
Defined in: electron/managers/MonitorManager.ts:507
Applies default intervals and optional auto-start for new monitors.
Parameters
site
newMonitors
Monitor[]
Returns
Promise<void>
applyMonitorState()
privateapplyMonitorState(site:Site,monitor:Monitor,changes:Partial<Monitor>,newStatus:"degraded"|"down"|"up"|"paused"|"pending"):Promise<void>
Defined in: electron/managers/MonitorManager.ts:530
Applies state changes, writes them to the database, and emits events.
Parameters
site
Site containing the monitor.
monitor
Monitor to update.
changes
Partial mutations to persist.
newStatus
Status used for downstream notifications.
"degraded" | "down" | "up" | "paused" | "pending"
Returns
Promise<void>
createEnhancedLifecycleConfig()
privatecreateEnhancedLifecycleConfig():EnhancedLifecycleConfig
Defined in: electron/managers/MonitorManager.ts:555
Builds the enhanced lifecycle configuration used by monitoring helpers.
Returns
Immutable configuration snapshot for lifecycle flows.
createEnhancedLifecycleHost()
privatecreateEnhancedLifecycleHost():EnhancedLifecycleHost
Defined in: electron/managers/MonitorManager.ts:571
Builds the lifecycle context consumed by enhanced monitoring helpers.
Returns
Bound callbacks and services required for helper execution.
getActiveMonitorCount()
getActiveMonitorCount():
number
Defined in: electron/managers/MonitorManager.ts:600
Returns the number of monitors currently scheduled for checks.
Returns
number
isMonitorActiveInScheduler()
isMonitorActiveInScheduler(
siteIdentifier:string,monitorId:string):boolean
Defined in: electron/managers/MonitorManager.ts:610
Checks whether a specific monitor currently has a scheduled job.
Parameters
siteIdentifier
string
Site containing the monitor.
monitorId
string
Monitor identifier under inspection.
Returns
boolean
isMonitoringActive()
isMonitoringActive():
boolean
Defined in: electron/managers/MonitorManager.ts:618
Reports whether any monitors are currently active.
Returns
boolean
restartMonitorWithNewConfig()
restartMonitorWithNewConfig(
siteIdentifier:string,monitor:Monitor):boolean
Defined in: electron/managers/MonitorManager.ts:628
Restarts a monitor after its configuration changes.
Parameters
siteIdentifier
string
Site containing the monitor.
monitor
Updated monitor definition.
Returns
boolean
shouldApplyDefaultInterval()
privateshouldApplyDefaultInterval(monitor:Monitor):boolean
Defined in: electron/managers/MonitorManager.ts:640
Determines whether the default interval should be applied to a monitor.
Parameters
monitor
Monitor candidate for remediation.
Returns
boolean