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" | "paused" | "pending" | "up"): 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" | "paused" | "pending" | "up"

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


reconcileScheduledMonitors()​

reconcileScheduledMonitors(sites: readonly Site[]): number;

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

Stops scheduler jobs absent or disabled in an authoritative snapshot.

Parameters​

sites​

readonly Site[]

Returns​

number


isMonitorActiveInScheduler()​

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

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

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

Reports whether any monitors are currently active.

Returns​

boolean


restartMonitorWithNewConfig()​

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

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

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

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

Parameters​

monitor​

Monitor

Monitor candidate for remediation.

Returns​

boolean