@freshguard/freshguard-core 0.13.2 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -1
- package/README.md +74 -1
- package/SKILL.md +229 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +74 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/connectors/azure-sql.d.ts +121 -0
- package/dist/connectors/azure-sql.d.ts.map +1 -0
- package/dist/connectors/azure-sql.js +489 -0
- package/dist/connectors/azure-sql.js.map +1 -0
- package/dist/connectors/base-connector.d.ts +139 -0
- package/dist/connectors/base-connector.d.ts.map +1 -1
- package/dist/connectors/base-connector.js +160 -3
- package/dist/connectors/base-connector.js.map +1 -1
- package/dist/connectors/bigquery.d.ts +100 -0
- package/dist/connectors/bigquery.d.ts.map +1 -1
- package/dist/connectors/bigquery.js +143 -2
- package/dist/connectors/bigquery.js.map +1 -1
- package/dist/connectors/duckdb.d.ts +96 -0
- package/dist/connectors/duckdb.d.ts.map +1 -1
- package/dist/connectors/duckdb.js +144 -7
- package/dist/connectors/duckdb.js.map +1 -1
- package/dist/connectors/index.d.ts +28 -0
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +28 -0
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/mssql.d.ts +119 -0
- package/dist/connectors/mssql.d.ts.map +1 -0
- package/dist/connectors/mssql.js +483 -0
- package/dist/connectors/mssql.js.map +1 -0
- package/dist/connectors/mysql.d.ts +85 -0
- package/dist/connectors/mysql.d.ts.map +1 -1
- package/dist/connectors/mysql.js +118 -3
- package/dist/connectors/mysql.js.map +1 -1
- package/dist/connectors/postgres.d.ts +85 -0
- package/dist/connectors/postgres.d.ts.map +1 -1
- package/dist/connectors/postgres.js +113 -6
- package/dist/connectors/postgres.js.map +1 -1
- package/dist/connectors/redshift.d.ts +90 -0
- package/dist/connectors/redshift.d.ts.map +1 -1
- package/dist/connectors/redshift.js +131 -7
- package/dist/connectors/redshift.js.map +1 -1
- package/dist/connectors/snowflake.d.ts +108 -0
- package/dist/connectors/snowflake.d.ts.map +1 -1
- package/dist/connectors/snowflake.js +137 -3
- package/dist/connectors/snowflake.js.map +1 -1
- package/dist/connectors/synapse.d.ts +123 -0
- package/dist/connectors/synapse.d.ts.map +1 -0
- package/dist/connectors/synapse.js +495 -0
- package/dist/connectors/synapse.js.map +1 -0
- package/dist/db/index.d.ts +25 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +23 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrate.d.ts +23 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +38 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.d.ts +11 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +70 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/errors/debug-factory.d.ts +38 -0
- package/dist/errors/debug-factory.d.ts.map +1 -1
- package/dist/errors/debug-factory.js +40 -0
- package/dist/errors/debug-factory.js.map +1 -1
- package/dist/errors/index.d.ts +59 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +110 -7
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata/duckdb-storage.d.ts +3 -0
- package/dist/metadata/duckdb-storage.d.ts.map +1 -1
- package/dist/metadata/duckdb-storage.js +6 -0
- package/dist/metadata/duckdb-storage.js.map +1 -1
- package/dist/metadata/factory.d.ts +30 -0
- package/dist/metadata/factory.d.ts.map +1 -1
- package/dist/metadata/factory.js +31 -0
- package/dist/metadata/factory.js.map +1 -1
- package/dist/metadata/index.d.ts +26 -0
- package/dist/metadata/index.d.ts.map +1 -1
- package/dist/metadata/index.js +26 -0
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/interface.d.ts +33 -0
- package/dist/metadata/interface.d.ts.map +1 -1
- package/dist/metadata/interface.js +3 -0
- package/dist/metadata/interface.js.map +1 -1
- package/dist/metadata/postgresql-storage.d.ts +3 -0
- package/dist/metadata/postgresql-storage.d.ts.map +1 -1
- package/dist/metadata/postgresql-storage.js +12 -2
- package/dist/metadata/postgresql-storage.js.map +1 -1
- package/dist/metadata/schema-config.d.ts +53 -0
- package/dist/metadata/schema-config.d.ts.map +1 -1
- package/dist/metadata/schema-config.js +64 -0
- package/dist/metadata/schema-config.js.map +1 -1
- package/dist/metadata/types.d.ts +3 -0
- package/dist/metadata/types.d.ts.map +1 -1
- package/dist/metadata/types.js +3 -0
- package/dist/metadata/types.js.map +1 -1
- package/dist/monitor/baseline-calculator.d.ts +56 -0
- package/dist/monitor/baseline-calculator.d.ts.map +1 -1
- package/dist/monitor/baseline-calculator.js +72 -0
- package/dist/monitor/baseline-calculator.js.map +1 -1
- package/dist/monitor/baseline-config.d.ts +77 -0
- package/dist/monitor/baseline-config.d.ts.map +1 -1
- package/dist/monitor/baseline-config.js +79 -1
- package/dist/monitor/baseline-config.js.map +1 -1
- package/dist/monitor/freshness.d.ts +40 -0
- package/dist/monitor/freshness.d.ts.map +1 -1
- package/dist/monitor/freshness.js +82 -3
- package/dist/monitor/freshness.js.map +1 -1
- package/dist/monitor/index.d.ts +29 -0
- package/dist/monitor/index.d.ts.map +1 -1
- package/dist/monitor/index.js +29 -0
- package/dist/monitor/index.js.map +1 -1
- package/dist/monitor/schema-baseline.d.ts +45 -0
- package/dist/monitor/schema-baseline.d.ts.map +1 -1
- package/dist/monitor/schema-baseline.js +63 -5
- package/dist/monitor/schema-baseline.js.map +1 -1
- package/dist/monitor/schema-changes.d.ts +45 -0
- package/dist/monitor/schema-changes.d.ts.map +1 -1
- package/dist/monitor/schema-changes.js +85 -0
- package/dist/monitor/schema-changes.js.map +1 -1
- package/dist/monitor/volume.d.ts +43 -0
- package/dist/monitor/volume.d.ts.map +1 -1
- package/dist/monitor/volume.js +89 -0
- package/dist/monitor/volume.js.map +1 -1
- package/dist/observability/logger.d.ts +91 -0
- package/dist/observability/logger.d.ts.map +1 -1
- package/dist/observability/logger.js +108 -0
- package/dist/observability/logger.js.map +1 -1
- package/dist/observability/metrics.d.ts +140 -0
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +184 -7
- package/dist/observability/metrics.js.map +1 -1
- package/dist/resilience/circuit-breaker.d.ts +112 -2
- package/dist/resilience/circuit-breaker.d.ts.map +1 -1
- package/dist/resilience/circuit-breaker.js +140 -6
- package/dist/resilience/circuit-breaker.js.map +1 -1
- package/dist/resilience/index.d.ts +9 -0
- package/dist/resilience/index.d.ts.map +1 -1
- package/dist/resilience/index.js +13 -0
- package/dist/resilience/index.js.map +1 -1
- package/dist/resilience/retry-policy.d.ts +105 -0
- package/dist/resilience/retry-policy.d.ts.map +1 -1
- package/dist/resilience/retry-policy.js +158 -7
- package/dist/resilience/retry-policy.js.map +1 -1
- package/dist/resilience/timeout-manager.d.ts +137 -0
- package/dist/resilience/timeout-manager.d.ts.map +1 -1
- package/dist/resilience/timeout-manager.js +151 -4
- package/dist/resilience/timeout-manager.js.map +1 -1
- package/dist/security/query-analyzer.d.ts +124 -0
- package/dist/security/query-analyzer.d.ts.map +1 -1
- package/dist/security/query-analyzer.js +150 -9
- package/dist/security/query-analyzer.js.map +1 -1
- package/dist/security/schema-cache.d.ts +152 -0
- package/dist/security/schema-cache.d.ts.map +1 -1
- package/dist/security/schema-cache.js +144 -12
- package/dist/security/schema-cache.js.map +1 -1
- package/dist/types/connector.d.ts +68 -1
- package/dist/types/connector.d.ts.map +1 -1
- package/dist/types/connector.js +38 -15
- package/dist/types/connector.js.map +1 -1
- package/dist/types/driver-results.d.ts +28 -0
- package/dist/types/driver-results.d.ts.map +1 -1
- package/dist/types/driver-results.js +12 -0
- package/dist/types/driver-results.js.map +1 -1
- package/dist/types.d.ts +113 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/dist/validation/index.d.ts +8 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +12 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/runtime-validator.d.ts +98 -0
- package/dist/validation/runtime-validator.d.ts.map +1 -1
- package/dist/validation/runtime-validator.js +114 -1
- package/dist/validation/runtime-validator.js.map +1 -1
- package/dist/validation/sanitizers.d.ts +59 -0
- package/dist/validation/sanitizers.d.ts.map +1 -1
- package/dist/validation/sanitizers.js +104 -20
- package/dist/validation/sanitizers.js.map +1 -1
- package/dist/validation/schemas.d.ts +73 -0
- package/dist/validation/schemas.d.ts.map +1 -1
- package/dist/validation/schemas.js +132 -5
- package/dist/validation/schemas.js.map +1 -1
- package/dist/validators/index.d.ts +54 -0
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +93 -2
- package/dist/validators/index.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-config.js","sourceRoot":"","sources":["../../src/metadata/schema-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-config.js","sourceRoot":"","sources":["../../src/metadata/schema-config.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE;YACP,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;CACH"}
|
package/dist/metadata/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced baseline calculator for volume monitoring
|
|
3
|
+
*
|
|
4
|
+
* Provides advanced statistical methods for baseline calculation including
|
|
5
|
+
* mean, median, trimmed mean, weekend exclusion, and seasonal adjustment.
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
1
9
|
import type { MetadataCheckExecution } from '../metadata/types.js';
|
|
2
10
|
import type { ResolvedBaselineConfig } from './baseline-config.js';
|
|
11
|
+
/**
|
|
12
|
+
* Historical data point with timestamp information
|
|
13
|
+
*/
|
|
3
14
|
export interface HistoricalDataPoint {
|
|
4
15
|
rowCount: number;
|
|
5
16
|
executedAt: Date;
|
|
6
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Baseline calculation result
|
|
20
|
+
*/
|
|
7
21
|
export interface BaselineResult {
|
|
8
22
|
mean: number;
|
|
9
23
|
deviationPercent: number;
|
|
@@ -11,20 +25,62 @@ export interface BaselineResult {
|
|
|
11
25
|
calculationMethod: string;
|
|
12
26
|
seasonalAdjusted?: boolean;
|
|
13
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Enhanced baseline calculator
|
|
30
|
+
*
|
|
31
|
+
* Calculates baselines using various statistical methods with support for
|
|
32
|
+
* weekend exclusion and seasonal adjustment for day-of-week patterns.
|
|
33
|
+
*/
|
|
14
34
|
export declare class BaselineCalculator {
|
|
15
35
|
private readonly config;
|
|
16
36
|
constructor(config: ResolvedBaselineConfig);
|
|
37
|
+
/**
|
|
38
|
+
* Calculate baseline from historical check execution data
|
|
39
|
+
*/
|
|
17
40
|
calculateBaseline(historicalData: MetadataCheckExecution[], currentRowCount: number): BaselineResult;
|
|
41
|
+
/**
|
|
42
|
+
* Convert check executions to data points
|
|
43
|
+
*/
|
|
18
44
|
private convertToDataPoints;
|
|
45
|
+
/**
|
|
46
|
+
* Filter data based on configuration
|
|
47
|
+
*/
|
|
19
48
|
private filterData;
|
|
49
|
+
/**
|
|
50
|
+
* Apply seasonal adjustment based on day-of-week patterns
|
|
51
|
+
*/
|
|
20
52
|
private applySeasonalAdjustment;
|
|
53
|
+
/**
|
|
54
|
+
* Adjust current value for seasonal patterns
|
|
55
|
+
*/
|
|
21
56
|
private adjustCurrentValueForSeason;
|
|
57
|
+
/**
|
|
58
|
+
* Calculate day-of-week statistics
|
|
59
|
+
*/
|
|
22
60
|
private calculateDayOfWeekStats;
|
|
61
|
+
/**
|
|
62
|
+
* Calculate statistic based on configured method
|
|
63
|
+
*/
|
|
23
64
|
private calculateStatistic;
|
|
65
|
+
/**
|
|
66
|
+
* Validate row count values
|
|
67
|
+
*/
|
|
24
68
|
private validateValues;
|
|
69
|
+
/**
|
|
70
|
+
* Calculate arithmetic mean
|
|
71
|
+
*/
|
|
25
72
|
private calculateMean;
|
|
73
|
+
/**
|
|
74
|
+
* Calculate median
|
|
75
|
+
*/
|
|
26
76
|
private calculateMedian;
|
|
77
|
+
/**
|
|
78
|
+
* Calculate trimmed mean (excluding outliers from both ends)
|
|
79
|
+
*/
|
|
27
80
|
private calculateTrimmedMean;
|
|
81
|
+
/**
|
|
82
|
+
* Calculate deviation percentage safely
|
|
83
|
+
*/
|
|
28
84
|
private calculateDeviation;
|
|
29
85
|
}
|
|
30
86
|
//# sourceMappingURL=baseline-calculator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline-calculator.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseline-calculator.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD;;;;;GAKG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,sBAAsB;IAE3D;;OAEG;IACH,iBAAiB,CACf,cAAc,EAAE,sBAAsB,EAAE,EACxC,eAAe,EAAE,MAAM,GACtB,cAAc;IAyDjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA2BnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAe3B"}
|
|
@@ -1,12 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced baseline calculator for volume monitoring
|
|
3
|
+
*
|
|
4
|
+
* Provides advanced statistical methods for baseline calculation including
|
|
5
|
+
* mean, median, trimmed mean, weekend exclusion, and seasonal adjustment.
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
1
9
|
import { MonitoringError } from '../errors/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Enhanced baseline calculator
|
|
12
|
+
*
|
|
13
|
+
* Calculates baselines using various statistical methods with support for
|
|
14
|
+
* weekend exclusion and seasonal adjustment for day-of-week patterns.
|
|
15
|
+
*/
|
|
2
16
|
export class BaselineCalculator {
|
|
3
17
|
config;
|
|
4
18
|
constructor(config) {
|
|
5
19
|
this.config = config;
|
|
6
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Calculate baseline from historical check execution data
|
|
23
|
+
*/
|
|
7
24
|
calculateBaseline(historicalData, currentRowCount) {
|
|
25
|
+
// Convert to data points with timestamp information
|
|
8
26
|
const dataPoints = this.convertToDataPoints(historicalData);
|
|
27
|
+
// Filter data based on configuration
|
|
9
28
|
const filteredData = this.filterData(dataPoints);
|
|
29
|
+
// Check if we have enough data for reliable baseline calculation
|
|
10
30
|
if (filteredData.length < this.config.minimumDataPoints) {
|
|
11
31
|
return {
|
|
12
32
|
mean: currentRowCount,
|
|
@@ -17,14 +37,19 @@ export class BaselineCalculator {
|
|
|
17
37
|
};
|
|
18
38
|
}
|
|
19
39
|
try {
|
|
40
|
+
// Apply seasonal adjustment if enabled and sufficient data
|
|
20
41
|
const adjustedData = this.config.seasonalAdjustment
|
|
21
42
|
? this.applySeasonalAdjustment(filteredData)
|
|
22
43
|
: filteredData;
|
|
44
|
+
// Check if seasonal adjustment was actually applied
|
|
23
45
|
const seasonalAdjustmentApplied = this.config.seasonalAdjustment && filteredData.length >= 14;
|
|
46
|
+
// Calculate baseline using configured method
|
|
24
47
|
const baseline = this.calculateStatistic(adjustedData);
|
|
48
|
+
// Seasonally adjust current row count if seasonal adjustment was applied
|
|
25
49
|
const adjustedCurrentRowCount = seasonalAdjustmentApplied
|
|
26
50
|
? this.adjustCurrentValueForSeason(filteredData, currentRowCount)
|
|
27
51
|
: currentRowCount;
|
|
52
|
+
// Calculate deviation percentage
|
|
28
53
|
const deviationPercent = this.calculateDeviation(baseline, adjustedCurrentRowCount);
|
|
29
54
|
return {
|
|
30
55
|
mean: Math.round(baseline),
|
|
@@ -35,6 +60,7 @@ export class BaselineCalculator {
|
|
|
35
60
|
};
|
|
36
61
|
}
|
|
37
62
|
catch {
|
|
63
|
+
// If calculation fails, return safe defaults
|
|
38
64
|
return {
|
|
39
65
|
mean: currentRowCount,
|
|
40
66
|
deviationPercent: 0,
|
|
@@ -44,6 +70,9 @@ export class BaselineCalculator {
|
|
|
44
70
|
};
|
|
45
71
|
}
|
|
46
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Convert check executions to data points
|
|
75
|
+
*/
|
|
47
76
|
convertToDataPoints(executions) {
|
|
48
77
|
return executions
|
|
49
78
|
.filter(e => e.rowCount !== undefined && e.executedAt)
|
|
@@ -52,27 +81,38 @@ export class BaselineCalculator {
|
|
|
52
81
|
executedAt: e.executedAt,
|
|
53
82
|
}));
|
|
54
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Filter data based on configuration
|
|
86
|
+
*/
|
|
55
87
|
filterData(dataPoints) {
|
|
56
88
|
if (!this.config.excludeWeekends) {
|
|
57
89
|
return dataPoints;
|
|
58
90
|
}
|
|
91
|
+
// Filter out weekend data (Saturday = 6, Sunday = 0)
|
|
59
92
|
return dataPoints.filter(point => {
|
|
60
93
|
const dayOfWeek = point.executedAt.getDay();
|
|
61
94
|
return dayOfWeek !== 0 && dayOfWeek !== 6;
|
|
62
95
|
});
|
|
63
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Apply seasonal adjustment based on day-of-week patterns
|
|
99
|
+
*/
|
|
64
100
|
applySeasonalAdjustment(dataPoints) {
|
|
65
101
|
if (dataPoints.length < 14) {
|
|
102
|
+
// Need at least 2 weeks of data for seasonal adjustment
|
|
66
103
|
return dataPoints;
|
|
67
104
|
}
|
|
68
105
|
const dayOfWeekStats = this.calculateDayOfWeekStats(dataPoints);
|
|
69
106
|
const overallMean = this.calculateMean(dataPoints.map(p => p.rowCount));
|
|
107
|
+
// Adjust each data point based on day-of-week factor
|
|
70
108
|
const adjustedPoints = dataPoints.map(point => {
|
|
71
109
|
const dayOfWeek = point.executedAt.getDay();
|
|
72
110
|
const dayStats = dayOfWeekStats[dayOfWeek];
|
|
73
111
|
if (!dayStats || dayStats.count < 2) {
|
|
112
|
+
// Not enough data for this day of week
|
|
74
113
|
return point;
|
|
75
114
|
}
|
|
115
|
+
// Calculate adjustment factor
|
|
76
116
|
const dayFactor = overallMean / dayStats.mean;
|
|
77
117
|
const adjustedRowCount = point.rowCount * dayFactor;
|
|
78
118
|
return {
|
|
@@ -82,6 +122,9 @@ export class BaselineCalculator {
|
|
|
82
122
|
});
|
|
83
123
|
return adjustedPoints;
|
|
84
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Adjust current value for seasonal patterns
|
|
127
|
+
*/
|
|
85
128
|
adjustCurrentValueForSeason(dataPoints, currentRowCount) {
|
|
86
129
|
if (dataPoints.length < 14) {
|
|
87
130
|
return currentRowCount;
|
|
@@ -91,20 +134,27 @@ export class BaselineCalculator {
|
|
|
91
134
|
const currentDayOfWeek = new Date().getDay();
|
|
92
135
|
const currentDayStats = dayOfWeekStats[currentDayOfWeek];
|
|
93
136
|
if (!currentDayStats || currentDayStats.count < 2) {
|
|
137
|
+
// Not enough data for today's day of week, no adjustment
|
|
94
138
|
return currentRowCount;
|
|
95
139
|
}
|
|
140
|
+
// Apply the same adjustment factor used for historical data
|
|
96
141
|
const dayFactor = overallMean / currentDayStats.mean;
|
|
97
142
|
const adjustedCurrentRowCount = currentRowCount * dayFactor;
|
|
98
143
|
return adjustedCurrentRowCount;
|
|
99
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Calculate day-of-week statistics
|
|
147
|
+
*/
|
|
100
148
|
calculateDayOfWeekStats(dataPoints) {
|
|
101
149
|
const stats = {};
|
|
150
|
+
// Group by day of week
|
|
102
151
|
dataPoints.forEach(point => {
|
|
103
152
|
const dayOfWeek = point.executedAt.getDay();
|
|
104
153
|
stats[dayOfWeek] ??= { mean: 0, count: 0 };
|
|
105
154
|
stats[dayOfWeek].mean += point.rowCount;
|
|
106
155
|
stats[dayOfWeek].count += 1;
|
|
107
156
|
});
|
|
157
|
+
// Calculate means
|
|
108
158
|
Object.values(stats).forEach(stat => {
|
|
109
159
|
if (stat.count > 0) {
|
|
110
160
|
stat.mean = stat.mean / stat.count;
|
|
@@ -112,6 +162,9 @@ export class BaselineCalculator {
|
|
|
112
162
|
});
|
|
113
163
|
return stats;
|
|
114
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Calculate statistic based on configured method
|
|
167
|
+
*/
|
|
115
168
|
calculateStatistic(dataPoints) {
|
|
116
169
|
const values = dataPoints.map(p => p.rowCount);
|
|
117
170
|
this.validateValues(values);
|
|
@@ -126,6 +179,9 @@ export class BaselineCalculator {
|
|
|
126
179
|
throw new MonitoringError(`Unknown calculation method: ${this.config.calculationMethod}`, 'volume', undefined, undefined);
|
|
127
180
|
}
|
|
128
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Validate row count values
|
|
184
|
+
*/
|
|
129
185
|
validateValues(values) {
|
|
130
186
|
if (values.length === 0) {
|
|
131
187
|
throw new MonitoringError('No valid data points for baseline calculation', 'volume');
|
|
@@ -134,6 +190,9 @@ export class BaselineCalculator {
|
|
|
134
190
|
throw new MonitoringError('Invalid row count values detected', 'volume');
|
|
135
191
|
}
|
|
136
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Calculate arithmetic mean
|
|
195
|
+
*/
|
|
137
196
|
calculateMean(values) {
|
|
138
197
|
const sum = values.reduce((a, b) => {
|
|
139
198
|
const result = a + b;
|
|
@@ -144,6 +203,9 @@ export class BaselineCalculator {
|
|
|
144
203
|
}, 0);
|
|
145
204
|
return sum / values.length;
|
|
146
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Calculate median
|
|
208
|
+
*/
|
|
147
209
|
calculateMedian(values) {
|
|
148
210
|
const sorted = [...values].sort((a, b) => a - b);
|
|
149
211
|
const mid = Math.floor(sorted.length / 2);
|
|
@@ -163,24 +225,34 @@ export class BaselineCalculator {
|
|
|
163
225
|
return middle;
|
|
164
226
|
}
|
|
165
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Calculate trimmed mean (excluding outliers from both ends)
|
|
230
|
+
*/
|
|
166
231
|
calculateTrimmedMean(values, trimPercentile) {
|
|
167
232
|
if (values.length < 4) {
|
|
233
|
+
// Need at least 4 values for meaningful trimming
|
|
168
234
|
return this.calculateMean(values);
|
|
169
235
|
}
|
|
170
236
|
const sorted = [...values].sort((a, b) => a - b);
|
|
171
237
|
const trimCount = Math.floor((sorted.length * trimPercentile) / 100);
|
|
238
|
+
// Remove outliers from both ends
|
|
172
239
|
const trimmedValues = sorted.slice(trimCount, sorted.length - trimCount);
|
|
173
240
|
if (trimmedValues.length === 0) {
|
|
241
|
+
// Fallback to mean if too much trimming
|
|
174
242
|
return this.calculateMean(values);
|
|
175
243
|
}
|
|
176
244
|
return this.calculateMean(trimmedValues);
|
|
177
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Calculate deviation percentage safely
|
|
248
|
+
*/
|
|
178
249
|
calculateDeviation(baseline, currentValue) {
|
|
179
250
|
if (baseline <= 0) {
|
|
180
251
|
return 0;
|
|
181
252
|
}
|
|
182
253
|
const deviation = Math.abs(currentValue - baseline);
|
|
183
254
|
const deviationPercent = (deviation / baseline) * 100;
|
|
255
|
+
// Validate result is reasonable
|
|
184
256
|
if (isNaN(deviationPercent) || deviationPercent === Infinity) {
|
|
185
257
|
return 0;
|
|
186
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline-calculator.js","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseline-calculator.js","sourceRoot":"","sources":["../../src/monitor/baseline-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA6BrD;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAE/D;;OAEG;IACH,iBAAiB,CACf,cAAwC,EACxC,eAAuB;QAEvB,oDAAoD;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAE5D,qCAAqC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEjD,iEAAiE;QACjE,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACxD,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,gBAAgB,EAAE,CAAC;gBACnB,cAAc,EAAE,YAAY,CAAC,MAAM;gBACnC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBAChD,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,2DAA2D;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB;gBACjD,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;gBAC5C,CAAC,CAAC,YAAY,CAAC;YAEjB,oDAAoD;YACpD,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;YAE9F,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAEvD,yEAAyE;YACzE,MAAM,uBAAuB,GAAG,yBAAyB;gBACvD,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,eAAe,CAAC;gBACjE,CAAC,CAAC,eAAe,CAAC;YAEpB,iCAAiC;YACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAEpF,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC1B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;gBAC1D,cAAc,EAAE,YAAY,CAAC,MAAM;gBACnC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBAChD,gBAAgB,EAAE,yBAAyB;aAC5C,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;YAC7C,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,gBAAgB,EAAE,CAAC;gBACnB,cAAc,EAAE,YAAY,CAAC,MAAM;gBACnC,iBAAiB,EAAE,UAAU;gBAC7B,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,UAAoC;QAC9D,OAAO,UAAU;aACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC;aACrD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;YACzB,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,UAAiC;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,qDAAqD;QACrD,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,UAAiC;QAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3B,wDAAwD;YACxD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAIxE,qDAAqD;QACrD,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACpC,uCAAuC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,8BAA8B;YAC9B,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC9C,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;YAEpD,OAAO;gBACL,GAAG,KAAK;gBACR,QAAQ,EAAE,gBAAgB;aAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;QAGH,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,2BAA2B,CACjC,UAAiC,EACjC,eAAuB;QAEvB,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAE7C,MAAM,eAAe,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAEzD,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAClD,yDAAyD;YACzD,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,4DAA4D;QAC5D,MAAM,SAAS,GAAG,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QACrD,MAAM,uBAAuB,GAAG,eAAe,GAAG,SAAS,CAAC;QAG5D,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,UAAiC;QAC/D,MAAM,KAAK,GAAmB,EAAE,CAAC;QAEjC,uBAAuB;QACvB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAE3C,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC;YACxC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,UAAiC;QAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,QAAQ,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9E;gBACE,MAAM,IAAI,eAAe,CACvB,+BAA+B,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAC9D,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAAgB;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,eAAe,CAAC,+CAA+C,EAAE,QAAQ,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,eAAe,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAgB;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACrC,MAAM,IAAI,eAAe,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAgB;QACtC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,IAAI,eAAe,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,eAAe,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAgB,EAAE,cAAsB;QACnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,iDAAiD;YACjD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;QAErE,iCAAiC;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAEzE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,wCAAwC;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,QAAgB,EAAE,YAAoB;QAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;QAEtD,gCAAgC;QAChC,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC7D,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Baseline configuration resolver for enhanced volume monitoring
|
|
3
|
+
*
|
|
4
|
+
* Provides configuration resolution with backwards compatibility,
|
|
5
|
+
* parameter validation, and default value management.
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
1
9
|
import type { MonitoringRule } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Resolved baseline configuration with applied defaults
|
|
12
|
+
*/
|
|
2
13
|
export interface ResolvedBaselineConfig {
|
|
3
14
|
windowDays: number;
|
|
4
15
|
minimumDataPoints: number;
|
|
@@ -10,28 +21,94 @@ export interface ResolvedBaselineConfig {
|
|
|
10
21
|
deviationThresholdPercent: number;
|
|
11
22
|
minimumRowCount: number;
|
|
12
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Baseline configuration resolver
|
|
26
|
+
*
|
|
27
|
+
* Resolves monitoring rule baseline configuration with defaults and validates parameters.
|
|
28
|
+
* Maintains backwards compatibility with existing rule configurations.
|
|
29
|
+
*/
|
|
13
30
|
export declare class BaselineConfigResolver {
|
|
14
31
|
private readonly config;
|
|
15
32
|
constructor(rule: MonitoringRule);
|
|
33
|
+
/**
|
|
34
|
+
* Get resolved configuration
|
|
35
|
+
*/
|
|
16
36
|
getConfig(): ResolvedBaselineConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Get window days for historical data retrieval
|
|
39
|
+
*/
|
|
17
40
|
getWindowDays(): number;
|
|
41
|
+
/**
|
|
42
|
+
* Get minimum required data points
|
|
43
|
+
*/
|
|
18
44
|
getMinimumDataPoints(): number;
|
|
45
|
+
/**
|
|
46
|
+
* Get timeout for baseline calculation queries
|
|
47
|
+
*/
|
|
19
48
|
getTimeoutSeconds(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Check if weekends should be excluded from baseline
|
|
51
|
+
*/
|
|
20
52
|
shouldExcludeWeekends(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Get statistical calculation method
|
|
55
|
+
*/
|
|
21
56
|
getCalculationMethod(): 'mean' | 'median' | 'trimmed_mean';
|
|
57
|
+
/**
|
|
58
|
+
* Get trimmed mean percentile (for trimmed_mean method)
|
|
59
|
+
*/
|
|
22
60
|
getTrimmedMeanPercentile(): number;
|
|
61
|
+
/**
|
|
62
|
+
* Check if seasonal adjustment should be applied
|
|
63
|
+
*/
|
|
23
64
|
shouldApplySeasonalAdjustment(): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Get deviation threshold percentage
|
|
67
|
+
*/
|
|
24
68
|
getDeviationThresholdPercent(): number;
|
|
69
|
+
/**
|
|
70
|
+
* Get minimum row count threshold
|
|
71
|
+
*/
|
|
25
72
|
getMinimumRowCount(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Resolve configuration with backwards compatibility
|
|
75
|
+
*/
|
|
26
76
|
private resolveConfiguration;
|
|
77
|
+
/**
|
|
78
|
+
* Resolve window days with backwards compatibility
|
|
79
|
+
*/
|
|
27
80
|
private resolveWindowDays;
|
|
81
|
+
/**
|
|
82
|
+
* Validate all configuration parameters
|
|
83
|
+
*/
|
|
28
84
|
private validateConfiguration;
|
|
85
|
+
/**
|
|
86
|
+
* Validate window days parameter
|
|
87
|
+
*/
|
|
29
88
|
private validateWindowDays;
|
|
89
|
+
/**
|
|
90
|
+
* Validate minimum data points parameter
|
|
91
|
+
*/
|
|
30
92
|
private validateMinimumDataPoints;
|
|
93
|
+
/**
|
|
94
|
+
* Validate timeout seconds parameter
|
|
95
|
+
*/
|
|
31
96
|
private validateTimeoutSeconds;
|
|
97
|
+
/**
|
|
98
|
+
* Validate calculation method parameter
|
|
99
|
+
*/
|
|
32
100
|
private validateCalculationMethod;
|
|
101
|
+
/**
|
|
102
|
+
* Validate trimmed mean percentile parameter
|
|
103
|
+
*/
|
|
33
104
|
private validateTrimmedMeanPercentile;
|
|
105
|
+
/**
|
|
106
|
+
* Validate deviation threshold percentage parameter
|
|
107
|
+
*/
|
|
34
108
|
private validateDeviationThresholdPercent;
|
|
109
|
+
/**
|
|
110
|
+
* Validate minimum row count parameter
|
|
111
|
+
*/
|
|
35
112
|
private validateMinimumRowCount;
|
|
36
113
|
}
|
|
37
114
|
//# sourceMappingURL=baseline-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline-config.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseline-config.d.ts","sourceRoot":"","sources":["../../src/monitor/baseline-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;IACtD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,IAAI,EAAE,cAAc;IAKhC;;OAEG;IACH,SAAS,IAAI,sBAAsB;IAInC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,oBAAoB,IAAI,MAAM,GAAG,QAAQ,GAAG,cAAc;IAI1D;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAIlC;;OAEG;IACH,6BAA6B,IAAI,OAAO;IAIxC;;OAEG;IACH,4BAA4B,IAAI,MAAM;IAItC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA4BjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IA4BzC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAmBhC"}
|