Skip to main content
Version: 0.15

Interface: MonitoringRule

Defined in: src/types.ts:90

Monitoring rule configuration

Pass a MonitoringRule to checkFreshness, checkVolumeAnomaly, or checkSchemaChanges to define what to monitor and the alert thresholds.

Example

const rule: MonitoringRule = {
id: 'orders-freshness',
sourceId: 'prod_pg',
name: 'Orders Freshness',
tableName: 'orders',
ruleType: 'freshness',
toleranceMinutes: 60,
timestampColumn: 'updated_at',
checkIntervalMinutes: 5,
isActive: true,
createdAt: new Date(),
updatedAt: new Date(),
};

Properties

baselineConfig?

optional baselineConfig: object

Defined in: src/types.ts:109

calculationMethod?

optional calculationMethod: "mean" | "median" | "trimmed_mean"

excludeWeekends?

optional excludeWeekends: boolean

minimumDataPoints?

optional minimumDataPoints: number

seasonalAdjustment?

optional seasonalAdjustment: boolean

timeoutSeconds?

optional timeoutSeconds: number

trimmedMeanPercentile?

optional trimmedMeanPercentile: number

windowDays?

optional windowDays: number


baselineWindowDays?

optional baselineWindowDays: number

Defined in: src/types.ts:104


checkIntervalMinutes

checkIntervalMinutes: number

Defined in: src/types.ts:141


consecutiveFailures?

optional consecutiveFailures: number

Defined in: src/types.ts:148


createdAt

createdAt: Date

Defined in: src/types.ts:150


customSql?

optional customSql: string

Defined in: src/types.ts:137


description?

optional description: string

Defined in: src/types.ts:94


deviationThresholdPercent?

optional deviationThresholdPercent: number

Defined in: src/types.ts:105


expectedFrequency?

optional expectedFrequency: string

Defined in: src/types.ts:99


expectedResult?

optional expectedResult: unknown

Defined in: src/types.ts:138


id

id: string

Defined in: src/types.ts:91


isActive

isActive: boolean

Defined in: src/types.ts:145


lastCheckAt?

optional lastCheckAt: Date

Defined in: src/types.ts:146


lastStatus?

optional lastStatus: CheckStatus

Defined in: src/types.ts:147


minimumRowCount?

optional minimumRowCount: number

Defined in: src/types.ts:106


name

name: string

Defined in: src/types.ts:93


ruleType

ruleType: RuleType

Defined in: src/types.ts:96


schemaChangeConfig?

optional schemaChangeConfig: object

Defined in: src/types.ts:124

adaptationMode?

optional adaptationMode: "auto" | "manual" | "alert_only"

baselineRefreshDays?

optional baselineRefreshDays: number

monitoringMode?

optional monitoringMode: "full" | "partial"

trackedColumns?

optional trackedColumns: object

trackedColumns.alertLevel?

optional alertLevel: "low" | "medium" | "high"

trackedColumns.columns?

optional columns: string[]

trackedColumns.trackNullability?

optional trackNullability: boolean

trackedColumns.trackTypes?

optional trackTypes: boolean


sourceId

sourceId: string

Defined in: src/types.ts:92


tableName

tableName: string

Defined in: src/types.ts:95


timestampColumn?

optional timestampColumn: string

Defined in: src/types.ts:101


timezone?

optional timezone: string

Defined in: src/types.ts:142


toleranceMinutes?

optional toleranceMinutes: number

Defined in: src/types.ts:100


trackColumnChanges?

optional trackColumnChanges: boolean

Defined in: src/types.ts:120


trackTableChanges?

optional trackTableChanges: boolean

Defined in: src/types.ts:121


updatedAt

updatedAt: Date

Defined in: src/types.ts:151