Skip to main content

Class: MonitorManager

Defined in: electron/managers/MonitorManager.ts:137

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:588

Creates a new manager using the supplied dependencies and enhanced services.

Parameters

dependencies

MonitorManagerDependencies

Data, cache, and event collaborators.

enhancedServices

EnhancedMonitoringServices

Enhanced monitoring orchestrator bundle.

Returns

MonitorManager

Properties

dependencies

private readonly dependencies: MonitorManagerDependencies

Defined in: electron/managers/MonitorManager.ts:139

Injected dependencies for orchestration and data access.


enhancedMonitoringServices

private readonly enhancedMonitoringServices: EnhancedMonitoringServices

Defined in: electron/managers/MonitorManager.ts:142

Enhanced monitoring services that coordinate stateful operations.


eventEmitter

private readonly eventEmitter: TypedEventBus<UptimeEvents>

Defined in: electron/managers/MonitorManager.ts:145

Typed event bus used for monitor event emission.


isMonitoring

private isMonitoring: boolean = false

Defined in: electron/managers/MonitorManager.ts:148

Tracks whether any monitors are currently active.


monitorScheduler

private readonly monitorScheduler: MonitorScheduler

Defined in: electron/managers/MonitorManager.ts:151

Schedules monitor checks and lifecycle callbacks.

Methods

checkSiteManually()

checkSiteManually(identifier: string, monitorId?: string): Promise<StatusUpdate | undefined>

Defined in: electron/managers/MonitorManager.ts:161

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:188

Applies default configuration for monitors newly attached to a site.

Parameters

site

Site

Site containing the monitors.

newMonitorIds

string[]

Monitor identifiers to initialize.

Returns

Promise<void>


setupSiteForMonitoring()

setupSiteForMonitoring(site: Site): Promise<void>

Defined in: electron/managers/MonitorManager.ts:206

Prepares a site for scheduling by applying default cadence and auto-start rules.

Parameters

site

Site

Site to prime before monitoring begins.

Returns

Promise<void>


startMonitoring()

startMonitoring(): Promise<MonitoringStartSummary>

Defined in: electron/managers/MonitorManager.ts:222

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:243

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:276

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:296

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()

private runSequentially<TItem>(items: readonly TItem[], task: (item: TItem) => Promise<void>): Promise<void>

Defined in: electron/managers/MonitorManager.ts:328

Execute asynchronous tasks sequentially while preserving order.

Type Parameters

TItem

TItem

Parameters

items

readonly TItem[]

task

(item: TItem) => Promise<void>

Returns

Promise<void>


applyDefaultIntervals()

private applyDefaultIntervals(site: Site): Promise<void>

Defined in: electron/managers/MonitorManager.ts:343

Ensures every monitor in the site respects the shared minimum interval.

Parameters

site

Site

Site whose monitors need remediation.

Returns

Promise<void>


startAllMonitoringEnhanced()

private startAllMonitoringEnhanced(config: EnhancedLifecycleConfig, isMonitoring: boolean): Promise<MonitoringStartSummary>

Defined in: electron/managers/MonitorManager.ts:369

Internal

Enhanced start all monitoring - replaces the previous startAllMonitoring implementation function.

Parameters

config

EnhancedLifecycleConfig

Configuration object with required dependencies

isMonitoring

boolean

Current monitoring state

Returns

Promise<MonitoringStartSummary>

Promise - New monitoring state


autoStartMonitoringIfAppropriate()

private autoStartMonitoringIfAppropriate(site: Site): Promise<void>

Defined in: electron/managers/MonitorManager.ts:381

Applies auto-start rules for a site that has newly loaded monitors.

Parameters

site

Site

Returns

Promise<void>


stopAllMonitoringEnhanced()

private stopAllMonitoringEnhanced(config: EnhancedLifecycleConfig): Promise<MonitoringStopSummary>

Defined in: electron/managers/MonitorManager.ts:400

Internal

Enhanced stop all monitoring - replaces the previous stopAllMonitoring implementation function.

Parameters

config

EnhancedLifecycleConfig

Configuration object with required dependencies

Returns

Promise<MonitoringStopSummary>

Promise - Always false (monitoring stopped)


autoStartNewMonitors()

private autoStartNewMonitors(site: Site, newMonitors: Monitor[]): Promise<void>

Defined in: electron/managers/MonitorManager.ts:410

Auto-starts eligible monitors that have just been added to a site.

Parameters

site

Site

newMonitors

Monitor[]

Returns

Promise<void>


startMonitoringForSiteEnhanced()

private startMonitoringForSiteEnhanced(config: EnhancedLifecycleConfig, identifier: string, monitorId?: string, monitorAction?: MonitorActionDelegate): Promise<boolean>

Defined in: electron/managers/MonitorManager.ts:436

Internal

Enhanced start monitoring for site - replaces the earlier implementation startMonitoringForSite function.

Parameters

config

EnhancedLifecycleConfig

Configuration object with required dependencies

identifier

string

Site identifier

monitorId?

string

Optional monitor ID

monitorAction?

MonitorActionDelegate

Optional recursive handler for nested starts

Returns

Promise<boolean>

Promise - True if operation succeeded


handleScheduledCheck()

private handleScheduledCheck(siteIdentifier: string, monitorId: string, signal: AbortSignal): Promise<void>

Defined in: electron/managers/MonitorManager.ts:465

Internal

Handles scheduled monitor checks from the MonitorScheduler.

Parameters

siteIdentifier

string

The identifier of the site.

monitorId

string

The monitor ID to check.

signal

AbortSignal

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()

private stopMonitoringForSiteEnhanced(config: EnhancedLifecycleConfig, identifier: string, monitorId?: string, monitorAction?: MonitorActionDelegate): Promise<boolean>

Defined in: electron/managers/MonitorManager.ts:493

Internal

Enhanced stop monitoring for site - replaces the previous stopMonitoringForSite implementation function.

Parameters

config

EnhancedLifecycleConfig

Configuration object with required dependencies

identifier

string

Site identifier

monitorId?

string

Optional monitor ID

monitorAction?

MonitorActionDelegate

Optional recursive handler for nested stops

Returns

Promise<boolean>

Promise - True if operation succeeded


setupIndividualNewMonitors()

private setupIndividualNewMonitors(site: Site, newMonitors: Monitor[]): Promise<void>

Defined in: electron/managers/MonitorManager.ts:509

Applies default intervals and optional auto-start for new monitors.

Parameters

site

Site

newMonitors

Monitor[]

Returns

Promise<void>


applyMonitorState()

private applyMonitorState(site: Site, monitor: Monitor, changes: Partial<Monitor>, newStatus: "degraded" | "down" | "up" | "paused" | "pending"): Promise<void>

Defined in: electron/managers/MonitorManager.ts:532

Applies state changes, writes them to the database, and emits events.

Parameters

site

Site

Site containing the monitor.

monitor

Monitor

Monitor to update.

changes

Partial<Monitor>

Partial mutations to persist.

newStatus

"degraded" | "down" | "up" | "paused" | "pending"

Status used for downstream notifications.

Returns

Promise<void>


createEnhancedLifecycleConfig()

private createEnhancedLifecycleConfig(): EnhancedLifecycleConfig

Defined in: electron/managers/MonitorManager.ts:557

Builds the enhanced lifecycle configuration used by monitoring helpers.

Returns

EnhancedLifecycleConfig

Immutable configuration snapshot for lifecycle flows.


createEnhancedLifecycleHost()

private createEnhancedLifecycleHost(): EnhancedLifecycleHost

Defined in: electron/managers/MonitorManager.ts:573

Builds the lifecycle context consumed by enhanced monitoring helpers.

Returns

EnhancedLifecycleHost

Bound callbacks and services required for helper execution.


getActiveMonitorCount()

getActiveMonitorCount(): number

Defined in: electron/managers/MonitorManager.ts:602

Returns the number of monitors currently scheduled for checks.

Returns

number


isMonitorActiveInScheduler()

isMonitorActiveInScheduler(siteIdentifier: string, monitorId: string): boolean

Defined in: electron/managers/MonitorManager.ts:612

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:620

Reports whether any monitors are currently active.

Returns

boolean


restartMonitorWithNewConfig()

restartMonitorWithNewConfig(siteIdentifier: string, monitor: Monitor): boolean

Defined in: electron/managers/MonitorManager.ts:630

Restarts a monitor after its configuration changes.

Parameters

siteIdentifier

string

Site containing the monitor.

monitor

Monitor

Updated monitor definition.

Returns

boolean


shouldApplyDefaultInterval()

private shouldApplyDefaultInterval(monitor: Monitor): boolean

Defined in: electron/managers/MonitorManager.ts:642

Determines whether the default interval should be applied to a monitor.

Parameters

monitor

Monitor

Monitor candidate for remediation.

Returns

boolean