@oneuptime/common 10.5.32 → 10.5.34
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/Models/DatabaseModels/KubernetesResource.ts +37 -0
- package/Server/API/KubernetesResourceAPI.ts +27 -18
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780651429467-AddKubernetesLatestMemoryPercent.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/KubernetesResourceService.ts +37 -11
- package/Server/Utils/Monitor/MonitorAlert.ts +34 -0
- package/Server/Utils/Monitor/MonitorIncident.ts +60 -93
- package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +229 -0
- package/Server/Utils/Monitor/MonitorResource.ts +18 -0
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +156 -0
- package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +211 -0
- package/build/dist/Models/DatabaseModels/KubernetesResource.js +38 -0
- package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -1
- package/build/dist/Server/API/KubernetesResourceAPI.js +6 -4
- package/build/dist/Server/API/KubernetesResourceAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780651429467-AddKubernetesLatestMemoryPercent.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780651429467-AddKubernetesLatestMemoryPercent.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesResourceService.js +13 -5
- package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +36 -17
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +60 -107
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +165 -0
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +16 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +106 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -0
- package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js +142 -0
- package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -34,6 +34,7 @@ import logger from "../Logger";
|
|
|
34
34
|
import CaptureSpan from "../Telemetry/CaptureSpan";
|
|
35
35
|
import MonitorTemplateUtil from "./MonitorTemplateUtil";
|
|
36
36
|
import OneUptimeDate from "../../../Types/Date";
|
|
37
|
+
import SeriesResourceLabels from "./SeriesResourceLabels";
|
|
37
38
|
export default class MonitorIncident {
|
|
38
39
|
static async checkOpenIncidentsAndCloseIfResolved(input) {
|
|
39
40
|
var _a, _b, _c, _d, _e;
|
|
@@ -93,7 +94,7 @@ export default class MonitorIncident {
|
|
|
93
94
|
return openIncidents;
|
|
94
95
|
}
|
|
95
96
|
static async criteriaMetCreateIncidentsAndUpdateMonitorStatus(input) {
|
|
96
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
97
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
|
|
97
98
|
const incidentLogAttributes = {
|
|
98
99
|
projectId: (_a = input.monitor.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
99
100
|
};
|
|
@@ -135,6 +136,29 @@ export default class MonitorIncident {
|
|
|
135
136
|
const seriesFingerprint = seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.fingerprint;
|
|
136
137
|
const seriesLabels = seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.labels;
|
|
137
138
|
const seriesRootCause = (seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.rootCause) || input.rootCause;
|
|
139
|
+
/*
|
|
140
|
+
* Per-series scheduled-maintenance suppression: this series'
|
|
141
|
+
* resource is inside an ongoing maintenance window, so skip
|
|
142
|
+
* creating an incident for it. Other series on the same monitor
|
|
143
|
+
* whose resources are not under maintenance still get incidents.
|
|
144
|
+
* Note: we only suppress *new* creation — any incident already
|
|
145
|
+
* open for this series is left to the normal resolve path
|
|
146
|
+
* (checkOpenIncidentsAndCloseIfResolved still sees the full
|
|
147
|
+
* breaching set), so a real incident raised before maintenance
|
|
148
|
+
* is not silently closed.
|
|
149
|
+
*/
|
|
150
|
+
if (seriesFingerprint &&
|
|
151
|
+
((_e = input.suppressedSeriesFingerprints) === null || _e === void 0 ? void 0 : _e.has(seriesFingerprint))) {
|
|
152
|
+
logger.debug(`${(_f = input.monitor.id) === null || _f === void 0 ? void 0 : _f.toString()} - Skipping incident for series ${seriesFingerprint}: its resource is under an active scheduled maintenance window.`, incidentLogAttributes);
|
|
153
|
+
(_g = input.evaluationSummary) === null || _g === void 0 ? void 0 : _g.events.push({
|
|
154
|
+
type: "incident-skipped",
|
|
155
|
+
title: "Incident suppressed by scheduled maintenance",
|
|
156
|
+
message: "Skipped creating an incident because the resource for this series is under an active scheduled maintenance window.",
|
|
157
|
+
relatedCriteriaId: (_h = input.criteriaInstance.data) === null || _h === void 0 ? void 0 : _h.id,
|
|
158
|
+
at: OneUptimeDate.getCurrentDate(),
|
|
159
|
+
});
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
138
162
|
const alreadyOpenIncident = openIncidents.find((incident) => {
|
|
139
163
|
var _a;
|
|
140
164
|
return (incident.createdCriteriaId ===
|
|
@@ -144,8 +168,8 @@ export default class MonitorIncident {
|
|
|
144
168
|
(incident.seriesFingerprint || undefined) === seriesFingerprint);
|
|
145
169
|
});
|
|
146
170
|
const hasAlreadyOpenIncident = Boolean(alreadyOpenIncident);
|
|
147
|
-
logger.debug(`${(
|
|
148
|
-
logger.debug(`${(
|
|
171
|
+
logger.debug(`${(_j = input.monitor.id) === null || _j === void 0 ? void 0 : _j.toString()} - Open Incident ${(_k = alreadyOpenIncident === null || alreadyOpenIncident === void 0 ? void 0 : alreadyOpenIncident.id) === null || _k === void 0 ? void 0 : _k.toString()}`, incidentLogAttributes);
|
|
172
|
+
logger.debug(`${(_l = input.monitor.id) === null || _l === void 0 ? void 0 : _l.toString()} - Has open incident ${hasAlreadyOpenIncident}`, incidentLogAttributes);
|
|
149
173
|
if (hasAlreadyOpenIncident) {
|
|
150
174
|
/*
|
|
151
175
|
* Use the open incident's already-rendered title when
|
|
@@ -156,19 +180,19 @@ export default class MonitorIncident {
|
|
|
156
180
|
* incident somehow has no title.
|
|
157
181
|
*/
|
|
158
182
|
const renderedTitle = (alreadyOpenIncident === null || alreadyOpenIncident === void 0 ? void 0 : alreadyOpenIncident.title) || criteriaIncident.title;
|
|
159
|
-
(
|
|
183
|
+
(_m = input.evaluationSummary) === null || _m === void 0 ? void 0 : _m.events.push({
|
|
160
184
|
type: "incident-skipped",
|
|
161
185
|
title: `Incident already active: ${renderedTitle}`,
|
|
162
186
|
message: "Skipped creating a new incident because an active incident exists for this criteria.",
|
|
163
|
-
relatedCriteriaId: (
|
|
164
|
-
relatedIncidentId: (
|
|
187
|
+
relatedCriteriaId: (_o = input.criteriaInstance.data) === null || _o === void 0 ? void 0 : _o.id,
|
|
188
|
+
relatedIncidentId: (_p = alreadyOpenIncident === null || alreadyOpenIncident === void 0 ? void 0 : alreadyOpenIncident.id) === null || _p === void 0 ? void 0 : _p.toString(),
|
|
165
189
|
relatedIncidentNumber: alreadyOpenIncident === null || alreadyOpenIncident === void 0 ? void 0 : alreadyOpenIncident.incidentNumber,
|
|
166
190
|
relatedIncidentNumberWithPrefix: alreadyOpenIncident === null || alreadyOpenIncident === void 0 ? void 0 : alreadyOpenIncident.incidentNumberWithPrefix,
|
|
167
191
|
at: OneUptimeDate.getCurrentDate(),
|
|
168
192
|
});
|
|
169
193
|
continue;
|
|
170
194
|
}
|
|
171
|
-
logger.debug(`${(
|
|
195
|
+
logger.debug(`${(_q = input.monitor.id) === null || _q === void 0 ? void 0 : _q.toString()} - Create incident.`, incidentLogAttributes);
|
|
172
196
|
const incident = new Incident();
|
|
173
197
|
const storageMap = MonitorTemplateUtil.buildTemplateStorageMap({
|
|
174
198
|
monitorType: input.monitor.monitorType,
|
|
@@ -221,7 +245,7 @@ export default class MonitorIncident {
|
|
|
221
245
|
* "Cannot read properties of undefined (reading 'toString')" and failed
|
|
222
246
|
* the job on every cycle for the affected monitor.
|
|
223
247
|
*/
|
|
224
|
-
if ((
|
|
248
|
+
if ((_r = input.criteriaInstance.data) === null || _r === void 0 ? void 0 : _r.id) {
|
|
225
249
|
incident.createdCriteriaId =
|
|
226
250
|
input.criteriaInstance.data.id.toString();
|
|
227
251
|
}
|
|
@@ -240,14 +264,14 @@ export default class MonitorIncident {
|
|
|
240
264
|
});
|
|
241
265
|
}
|
|
242
266
|
incident.onCallDutyPolicies =
|
|
243
|
-
((
|
|
267
|
+
((_s = criteriaIncident.onCallPolicyIds) === null || _s === void 0 ? void 0 : _s.map((id) => {
|
|
244
268
|
const onCallPolicy = new OnCallDutyPolicy();
|
|
245
269
|
onCallPolicy._id = id.toString();
|
|
246
270
|
return onCallPolicy;
|
|
247
271
|
})) || [];
|
|
248
272
|
// Set labels from criteria
|
|
249
273
|
incident.labels =
|
|
250
|
-
((
|
|
274
|
+
((_t = criteriaIncident.labelIds) === null || _t === void 0 ? void 0 : _t.map((id) => {
|
|
251
275
|
const label = new Label();
|
|
252
276
|
label._id = id.toString();
|
|
253
277
|
return label;
|
|
@@ -275,11 +299,11 @@ export default class MonitorIncident {
|
|
|
275
299
|
});
|
|
276
300
|
}
|
|
277
301
|
if (DisableAutomaticIncidentCreation) {
|
|
278
|
-
(
|
|
302
|
+
(_u = input.evaluationSummary) === null || _u === void 0 ? void 0 : _u.events.push({
|
|
279
303
|
type: "incident-skipped",
|
|
280
304
|
title: "Incident creation skipped",
|
|
281
305
|
message: "Automatic incident creation is disabled by environment configuration.",
|
|
282
|
-
relatedCriteriaId: (
|
|
306
|
+
relatedCriteriaId: (_v = input.criteriaInstance.data) === null || _v === void 0 ? void 0 : _v.id,
|
|
283
307
|
at: OneUptimeDate.getCurrentDate(),
|
|
284
308
|
});
|
|
285
309
|
return;
|
|
@@ -291,8 +315,8 @@ export default class MonitorIncident {
|
|
|
291
315
|
},
|
|
292
316
|
});
|
|
293
317
|
// Add owner teams and users after incident creation
|
|
294
|
-
if (((
|
|
295
|
-
((
|
|
318
|
+
if (((_w = criteriaIncident.ownerTeamIds) === null || _w === void 0 ? void 0 : _w.length) ||
|
|
319
|
+
((_x = criteriaIncident.ownerUserIds) === null || _x === void 0 ? void 0 : _x.length)) {
|
|
296
320
|
await IncidentService.addOwners(input.monitor.projectId, createdIncident.id, criteriaIncident.ownerUserIds || [], criteriaIncident.ownerTeamIds || [], true, // notify owners
|
|
297
321
|
{
|
|
298
322
|
isRoot: true,
|
|
@@ -316,20 +340,20 @@ export default class MonitorIncident {
|
|
|
316
340
|
isRoot: true,
|
|
317
341
|
},
|
|
318
342
|
});
|
|
319
|
-
logger.debug(`${(
|
|
343
|
+
logger.debug(`${(_y = input.monitor.id) === null || _y === void 0 ? void 0 : _y.toString()} - Assigned incident member role ${assignment.roleId.toString()} to user ${assignment.userId.toString()}`, incidentLogAttributes);
|
|
320
344
|
}
|
|
321
345
|
}
|
|
322
346
|
catch (memberError) {
|
|
323
|
-
logger.error(`${(
|
|
347
|
+
logger.error(`${(_z = input.monitor.id) === null || _z === void 0 ? void 0 : _z.toString()} - Failed to assign incident member role: ${memberError}`, incidentLogAttributes);
|
|
324
348
|
}
|
|
325
349
|
}
|
|
326
350
|
}
|
|
327
|
-
(
|
|
351
|
+
(_0 = input.evaluationSummary) === null || _0 === void 0 ? void 0 : _0.events.push({
|
|
328
352
|
type: "incident-created",
|
|
329
353
|
title: `Incident created: ${createdIncident.title || criteriaIncident.title}`,
|
|
330
|
-
message: `Incident triggered from criteria "${((
|
|
331
|
-
relatedCriteriaId: (
|
|
332
|
-
relatedIncidentId: (
|
|
354
|
+
message: `Incident triggered from criteria "${((_1 = input.criteriaInstance.data) === null || _1 === void 0 ? void 0 : _1.name) || "Unnamed criteria"}".`,
|
|
355
|
+
relatedCriteriaId: (_2 = input.criteriaInstance.data) === null || _2 === void 0 ? void 0 : _2.id,
|
|
356
|
+
relatedIncidentId: (_3 = createdIncident.id) === null || _3 === void 0 ? void 0 : _3.toString(),
|
|
333
357
|
relatedIncidentNumber: createdIncident.incidentNumber,
|
|
334
358
|
relatedIncidentNumberWithPrefix: createdIncident.incidentNumberWithPrefix,
|
|
335
359
|
at: OneUptimeDate.getCurrentDate(),
|
|
@@ -338,112 +362,41 @@ export default class MonitorIncident {
|
|
|
338
362
|
}
|
|
339
363
|
}
|
|
340
364
|
/*
|
|
341
|
-
* Pull every host / docker-host / k8s-cluster
|
|
342
|
-
* series labels and attach the matching project-scoped
|
|
343
|
-
* the incident.
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* the `resource.` prefix in ClickHouse, so prefixed and unprefixed
|
|
349
|
-
* forms are both accepted — whichever the group-by query surfaced,
|
|
350
|
-
* we'll find it. Multi-value labels are flattened, so a series that
|
|
351
|
-
* groups by a multi-valued attribute attaches every matching
|
|
352
|
-
* record. Lookups are always project-scoped so a stale or hostile
|
|
353
|
-
* stamp can't pull in a record from another tenant.
|
|
354
|
-
*
|
|
355
|
-
* For Docker hosts we deliberately ignore raw `host.name`/
|
|
356
|
-
* `oneuptime.host.name`: those are the Host's territory, and the
|
|
357
|
-
* ingest pipeline stamps `oneuptime.docker.host.*` independently
|
|
358
|
-
* when the source is a docker host.
|
|
365
|
+
* Pull every host / docker-host / k8s-cluster / service identifier
|
|
366
|
+
* out of the series labels and attach the matching project-scoped
|
|
367
|
+
* records to the incident. The label-key → resource-type mapping
|
|
368
|
+
* lives in SeriesResourceLabels (shared with the scheduled-maintenance
|
|
369
|
+
* suppression path so the two never disagree about which labels
|
|
370
|
+
* identify which resource). Lookups are always project-scoped so a
|
|
371
|
+
* stale or hostile stamp can't pull in a record from another tenant.
|
|
359
372
|
*/
|
|
360
373
|
static async linkResourceContextFromSeries(input) {
|
|
361
|
-
const
|
|
362
|
-
const found = new Set();
|
|
363
|
-
for (const key of keys) {
|
|
364
|
-
const value = input.seriesLabels[key];
|
|
365
|
-
if (typeof value === "string" && value.length > 0) {
|
|
366
|
-
found.add(value);
|
|
367
|
-
continue;
|
|
368
|
-
}
|
|
369
|
-
if (Array.isArray(value)) {
|
|
370
|
-
for (const item of value) {
|
|
371
|
-
if (typeof item === "string" && item.length > 0) {
|
|
372
|
-
found.add(item);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
return Array.from(found);
|
|
378
|
-
};
|
|
379
|
-
const hostIds = collect([
|
|
380
|
-
"resource.oneuptime.host.id",
|
|
381
|
-
"oneuptime.host.id",
|
|
382
|
-
]);
|
|
383
|
-
const hostNames = collect([
|
|
384
|
-
"resource.oneuptime.host.name",
|
|
385
|
-
"oneuptime.host.name",
|
|
386
|
-
"resource.host.name",
|
|
387
|
-
"host.name",
|
|
388
|
-
]);
|
|
389
|
-
const dockerHostIds = collect([
|
|
390
|
-
"resource.oneuptime.docker.host.id",
|
|
391
|
-
"oneuptime.docker.host.id",
|
|
392
|
-
]);
|
|
393
|
-
const dockerHostNames = collect([
|
|
394
|
-
"resource.oneuptime.docker.host.name",
|
|
395
|
-
"oneuptime.docker.host.name",
|
|
396
|
-
]);
|
|
397
|
-
const clusterIds = collect([
|
|
398
|
-
"resource.oneuptime.kubernetes.cluster.id",
|
|
399
|
-
"oneuptime.kubernetes.cluster.id",
|
|
400
|
-
]);
|
|
401
|
-
const clusterNames = collect([
|
|
402
|
-
"resource.oneuptime.kubernetes.cluster.name",
|
|
403
|
-
"oneuptime.kubernetes.cluster.name",
|
|
404
|
-
"resource.k8s.cluster.name",
|
|
405
|
-
"k8s.cluster.name",
|
|
406
|
-
]);
|
|
407
|
-
/*
|
|
408
|
-
* Services come from OTel-ingested telemetry. The ingest pipeline
|
|
409
|
-
* auto-creates a Service row keyed by `service.name`, so any series
|
|
410
|
-
* label that carries that attribute (raw or prefixed) tells us the
|
|
411
|
-
* emitting service. We also accept the `oneuptime.service.id`
|
|
412
|
-
* stamp for callers that already resolved the ID upstream.
|
|
413
|
-
*/
|
|
414
|
-
const serviceIds = collect([
|
|
415
|
-
"resource.oneuptime.service.id",
|
|
416
|
-
"oneuptime.service.id",
|
|
417
|
-
]);
|
|
418
|
-
const serviceNames = collect([
|
|
419
|
-
"resource.service.name",
|
|
420
|
-
"service.name",
|
|
421
|
-
]);
|
|
374
|
+
const refs = SeriesResourceLabels.extractResourceRefs(input.seriesLabels);
|
|
422
375
|
const [resolvedHosts, resolvedDockerHosts, resolvedClusters, resolvedServices,] = await Promise.all([
|
|
423
376
|
this.resolveResourceIds({
|
|
424
|
-
ids: hostIds,
|
|
425
|
-
names: hostNames,
|
|
377
|
+
ids: refs.hostIds,
|
|
378
|
+
names: refs.hostNames,
|
|
426
379
|
nameColumn: "hostIdentifier",
|
|
427
380
|
projectId: input.projectId,
|
|
428
381
|
findBy: HostService.findBy.bind(HostService),
|
|
429
382
|
}),
|
|
430
383
|
this.resolveResourceIds({
|
|
431
|
-
ids: dockerHostIds,
|
|
432
|
-
names: dockerHostNames,
|
|
384
|
+
ids: refs.dockerHostIds,
|
|
385
|
+
names: refs.dockerHostNames,
|
|
433
386
|
nameColumn: "hostIdentifier",
|
|
434
387
|
projectId: input.projectId,
|
|
435
388
|
findBy: DockerHostService.findBy.bind(DockerHostService),
|
|
436
389
|
}),
|
|
437
390
|
this.resolveResourceIds({
|
|
438
|
-
ids:
|
|
439
|
-
names:
|
|
391
|
+
ids: refs.kubernetesClusterIds,
|
|
392
|
+
names: refs.kubernetesClusterNames,
|
|
440
393
|
nameColumn: "clusterIdentifier",
|
|
441
394
|
projectId: input.projectId,
|
|
442
395
|
findBy: KubernetesClusterService.findBy.bind(KubernetesClusterService),
|
|
443
396
|
}),
|
|
444
397
|
this.resolveResourceIds({
|
|
445
|
-
ids: serviceIds,
|
|
446
|
-
names: serviceNames,
|
|
398
|
+
ids: refs.serviceIds,
|
|
399
|
+
names: refs.serviceNames,
|
|
447
400
|
nameColumn: "name",
|
|
448
401
|
projectId: input.projectId,
|
|
449
402
|
findBy: ServiceService.findBy.bind(ServiceService),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitorIncident.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorIncident.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MonitorIncident.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorIncident.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { LIMIT_PER_PROJECT } from "../../../Types/Database/LimitMax";
|
|
11
|
+
import ScheduledMaintenanceService from "../../Services/ScheduledMaintenanceService";
|
|
12
|
+
import CaptureSpan from "../Telemetry/CaptureSpan";
|
|
13
|
+
import SeriesResourceLabels from "./SeriesResourceLabels";
|
|
14
|
+
/*
|
|
15
|
+
* Per-series counterpart to the whole-monitor
|
|
16
|
+
* `disableActiveMonitoringBecauseOfScheduledMaintenanceEvent` flag.
|
|
17
|
+
*
|
|
18
|
+
* A grouped metric monitor (group-by `host.name`, say) evaluates its
|
|
19
|
+
* criteria once per series and creates one incident/alert per breaching
|
|
20
|
+
* series. The whole-monitor flag is all-or-nothing: it only fires when
|
|
21
|
+
* the *monitor itself* is attached to a maintenance event, and it would
|
|
22
|
+
* silence every series. That leaves a gap — attaching only some of the
|
|
23
|
+
* underlying resources (10 of 100 hosts) to a maintenance window did
|
|
24
|
+
* nothing, because nothing maps an attached host back to the series it
|
|
25
|
+
* owns.
|
|
26
|
+
*
|
|
27
|
+
* This util closes that gap: it returns the fingerprints of the series
|
|
28
|
+
* whose resource is under an ongoing maintenance window, so the
|
|
29
|
+
* incident/alert creation loops can skip exactly those series while the
|
|
30
|
+
* other 90 hosts keep alerting. It covers every resource type a
|
|
31
|
+
* maintenance event can attach to AND a series can identify: Host,
|
|
32
|
+
* DockerHost, KubernetesCluster, and Service.
|
|
33
|
+
*/
|
|
34
|
+
export default class MonitorMaintenanceSuppression {
|
|
35
|
+
/*
|
|
36
|
+
* Resolve the per-series suppression set for one project. Returns an
|
|
37
|
+
* empty set on the common paths — no per-series matches, or no
|
|
38
|
+
* ongoing maintenance touching any resource — so callers pay at most
|
|
39
|
+
* one query and nothing when there is no maintenance.
|
|
40
|
+
*/
|
|
41
|
+
static async getSuppressedSeriesFingerprints(input) {
|
|
42
|
+
if (!input.matchesPerSeries || input.matchesPerSeries.length === 0) {
|
|
43
|
+
return new Set();
|
|
44
|
+
}
|
|
45
|
+
const maintained = await this.getResourcesUnderOngoingMaintenance(input.projectId);
|
|
46
|
+
if (!this.hasAnyMaintainedResource(maintained)) {
|
|
47
|
+
return new Set();
|
|
48
|
+
}
|
|
49
|
+
return this.getSuppressedFingerprintsForMaintainedResources({
|
|
50
|
+
matchesPerSeries: input.matchesPerSeries,
|
|
51
|
+
maintained,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/*
|
|
55
|
+
* Pure matching step, split out from the query so it can be unit
|
|
56
|
+
* tested without a database. For each series, pull the resource
|
|
57
|
+
* identifiers out of its labels and suppress the series if any of
|
|
58
|
+
* them is under maintenance.
|
|
59
|
+
*/
|
|
60
|
+
static getSuppressedFingerprintsForMaintainedResources(input) {
|
|
61
|
+
const suppressed = new Set();
|
|
62
|
+
for (const series of input.matchesPerSeries) {
|
|
63
|
+
if (!series.fingerprint || !series.labels) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const refs = SeriesResourceLabels.extractResourceRefs(series.labels);
|
|
67
|
+
const isUnderMaintenance = this.intersects(refs.hostIds, input.maintained.hosts.ids) ||
|
|
68
|
+
this.intersects(refs.hostNames, input.maintained.hosts.names) ||
|
|
69
|
+
this.intersects(refs.dockerHostIds, input.maintained.dockerHosts.ids) ||
|
|
70
|
+
this.intersects(refs.dockerHostNames, input.maintained.dockerHosts.names) ||
|
|
71
|
+
this.intersects(refs.kubernetesClusterIds, input.maintained.kubernetesClusters.ids) ||
|
|
72
|
+
this.intersects(refs.kubernetesClusterNames, input.maintained.kubernetesClusters.names) ||
|
|
73
|
+
this.intersects(refs.serviceIds, input.maintained.services.ids) ||
|
|
74
|
+
this.intersects(refs.serviceNames, input.maintained.services.names);
|
|
75
|
+
if (isUnderMaintenance) {
|
|
76
|
+
suppressed.add(series.fingerprint);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return suppressed;
|
|
80
|
+
}
|
|
81
|
+
static intersects(values, set) {
|
|
82
|
+
for (const value of values) {
|
|
83
|
+
if (set.has(value)) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
static hasAnyMaintainedResource(maintained) {
|
|
90
|
+
return (maintained.hosts.ids.size > 0 ||
|
|
91
|
+
maintained.hosts.names.size > 0 ||
|
|
92
|
+
maintained.dockerHosts.ids.size > 0 ||
|
|
93
|
+
maintained.dockerHosts.names.size > 0 ||
|
|
94
|
+
maintained.kubernetesClusters.ids.size > 0 ||
|
|
95
|
+
maintained.kubernetesClusters.names.size > 0 ||
|
|
96
|
+
maintained.services.ids.size > 0 ||
|
|
97
|
+
maintained.services.names.size > 0);
|
|
98
|
+
}
|
|
99
|
+
/*
|
|
100
|
+
* Collect the ids + identifiers of every Host / DockerHost /
|
|
101
|
+
* KubernetesCluster / Service attached to an ongoing maintenance event
|
|
102
|
+
* in this project. Monitors attached to the event are intentionally
|
|
103
|
+
* not collected here — those are already handled upstream by the
|
|
104
|
+
* whole-monitor disable flag, which short-circuits evaluation before
|
|
105
|
+
* we ever reach per-series creation.
|
|
106
|
+
*/
|
|
107
|
+
static async getResourcesUnderOngoingMaintenance(projectId) {
|
|
108
|
+
const maintained = {
|
|
109
|
+
hosts: { ids: new Set(), names: new Set() },
|
|
110
|
+
dockerHosts: { ids: new Set(), names: new Set() },
|
|
111
|
+
kubernetesClusters: { ids: new Set(), names: new Set() },
|
|
112
|
+
services: { ids: new Set(), names: new Set() },
|
|
113
|
+
};
|
|
114
|
+
const ongoingEvents = await ScheduledMaintenanceService.findBy({
|
|
115
|
+
query: {
|
|
116
|
+
projectId: projectId,
|
|
117
|
+
currentScheduledMaintenanceState: {
|
|
118
|
+
isOngoingState: true,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
select: {
|
|
122
|
+
_id: true,
|
|
123
|
+
hosts: { _id: true, hostIdentifier: true },
|
|
124
|
+
dockerHosts: { _id: true, hostIdentifier: true },
|
|
125
|
+
kubernetesClusters: { _id: true, clusterIdentifier: true },
|
|
126
|
+
services: { _id: true, name: true },
|
|
127
|
+
},
|
|
128
|
+
skip: 0,
|
|
129
|
+
limit: LIMIT_PER_PROJECT,
|
|
130
|
+
props: {
|
|
131
|
+
isRoot: true,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
for (const event of ongoingEvents) {
|
|
135
|
+
for (const host of event.hosts || []) {
|
|
136
|
+
this.addKey(maintained.hosts, host._id, host.hostIdentifier);
|
|
137
|
+
}
|
|
138
|
+
for (const dockerHost of event.dockerHosts || []) {
|
|
139
|
+
this.addKey(maintained.dockerHosts, dockerHost._id, dockerHost.hostIdentifier);
|
|
140
|
+
}
|
|
141
|
+
for (const cluster of event.kubernetesClusters || []) {
|
|
142
|
+
this.addKey(maintained.kubernetesClusters, cluster._id, cluster.clusterIdentifier);
|
|
143
|
+
}
|
|
144
|
+
for (const service of event.services || []) {
|
|
145
|
+
this.addKey(maintained.services, service._id, service.name);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return maintained;
|
|
149
|
+
}
|
|
150
|
+
static addKey(keySet, id, name) {
|
|
151
|
+
if (id) {
|
|
152
|
+
keySet.ids.add(String(id));
|
|
153
|
+
}
|
|
154
|
+
if (name) {
|
|
155
|
+
keySet.names.add(name);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
__decorate([
|
|
160
|
+
CaptureSpan(),
|
|
161
|
+
__metadata("design:type", Function),
|
|
162
|
+
__metadata("design:paramtypes", [Object]),
|
|
163
|
+
__metadata("design:returntype", Promise)
|
|
164
|
+
], MonitorMaintenanceSuppression, "getSuppressedSeriesFingerprints", null);
|
|
165
|
+
//# sourceMappingURL=MonitorMaintenanceSuppression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonitorMaintenanceSuppression.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorMaintenanceSuppression.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ import OneUptimeDate from "../../../Types/Date";
|
|
|
23
23
|
import TelemetryType from "../../../Types/Telemetry/TelemetryType";
|
|
24
24
|
import MonitorIncident from "./MonitorIncident";
|
|
25
25
|
import MonitorAlert from "./MonitorAlert";
|
|
26
|
+
import MonitorMaintenanceSuppression from "./MonitorMaintenanceSuppression";
|
|
26
27
|
import MonitorStatusTimelineUtil from "./MonitorStatusTimeline";
|
|
27
28
|
import CaptureSpan from "../Telemetry/CaptureSpan";
|
|
28
29
|
import ExceptionMessages from "../../../Types/Exception/ExceptionMessages";
|
|
@@ -481,6 +482,19 @@ export default class MonitorResourceUtil {
|
|
|
481
482
|
at: OneUptimeDate.getCurrentDate(),
|
|
482
483
|
});
|
|
483
484
|
}
|
|
485
|
+
/*
|
|
486
|
+
* For grouped metric monitors, work out which breaching series
|
|
487
|
+
* belong to a resource that is currently inside an ongoing
|
|
488
|
+
* scheduled maintenance window. Those series are suppressed
|
|
489
|
+
* below so the monitor keeps alerting on the rest. Computed once
|
|
490
|
+
* and shared by both the incident and alert paths. Cheap on the
|
|
491
|
+
* common path: no per-series matches, or no ongoing maintenance,
|
|
492
|
+
* returns an empty set after at most one query.
|
|
493
|
+
*/
|
|
494
|
+
const suppressedSeriesFingerprints = await MonitorMaintenanceSuppression.getSuppressedSeriesFingerprints({
|
|
495
|
+
projectId: monitor.projectId,
|
|
496
|
+
matchesPerSeries: response.perSeriesMatches,
|
|
497
|
+
});
|
|
484
498
|
await MonitorIncident.criteriaMetCreateIncidentsAndUpdateMonitorStatus({
|
|
485
499
|
monitor: monitor,
|
|
486
500
|
rootCause: response.rootCause,
|
|
@@ -492,6 +506,7 @@ export default class MonitorResourceUtil {
|
|
|
492
506
|
telemetryQuery: telemetryQuery,
|
|
493
507
|
},
|
|
494
508
|
matchesPerSeries: response.perSeriesMatches,
|
|
509
|
+
suppressedSeriesFingerprints,
|
|
495
510
|
});
|
|
496
511
|
await MonitorAlert.criteriaMetCreateAlertsAndUpdateMonitorStatus({
|
|
497
512
|
monitor: monitor,
|
|
@@ -504,6 +519,7 @@ export default class MonitorResourceUtil {
|
|
|
504
519
|
telemetryQuery: telemetryQuery,
|
|
505
520
|
},
|
|
506
521
|
matchesPerSeries: response.perSeriesMatches,
|
|
522
|
+
suppressedSeriesFingerprints,
|
|
507
523
|
});
|
|
508
524
|
}
|
|
509
525
|
else if (!response.criteriaMetId &&
|