@oneuptime/common 10.0.65 → 10.0.67
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/DockerHostOwnerTeam.ts +464 -0
- package/Models/DatabaseModels/DockerHostOwnerUser.ts +463 -0
- package/Models/DatabaseModels/GlobalConfig.ts +56 -0
- package/Models/DatabaseModels/Index.ts +28 -0
- package/Models/DatabaseModels/KubernetesClusterOwnerTeam.ts +464 -0
- package/Models/DatabaseModels/KubernetesClusterOwnerUser.ts +463 -0
- package/Models/DatabaseModels/KubernetesResource.ts +548 -0
- package/Models/DatabaseModels/MetricPipelineRule.ts +804 -0
- package/Models/DatabaseModels/MetricRecordingRule.ts +470 -0
- package/Models/DatabaseModels/Monitor.ts +2 -0
- package/Models/DatabaseModels/Project.ts +83 -0
- package/Models/DatabaseModels/Service.ts +79 -0
- package/Models/DatabaseModels/TelegramLog.ts +1025 -0
- package/Models/DatabaseModels/TraceDropFilter.ts +508 -0
- package/Models/DatabaseModels/TracePipeline.ts +436 -0
- package/Models/DatabaseModels/TracePipelineProcessor.ts +454 -0
- package/Models/DatabaseModels/TraceRecordingRule.ts +470 -0
- package/Models/DatabaseModels/TraceScrubRule.ts +546 -0
- package/Models/DatabaseModels/UserNotificationRule.ts +49 -0
- package/Models/DatabaseModels/UserNotificationSetting.ts +17 -0
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +48 -0
- package/Models/DatabaseModels/UserTelegram.ts +312 -0
- package/Server/API/KubernetesResourceAPI.ts +129 -0
- package/Server/API/UserTelegramAPI.ts +167 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.ts +399 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.ts +205 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.ts +335 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.ts +53 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.ts +325 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -1
- package/Server/Services/DockerHostOwnerTeamService.ts +10 -0
- package/Server/Services/DockerHostOwnerUserService.ts +10 -0
- package/Server/Services/Index.ts +6 -0
- package/Server/Services/KubernetesClusterOwnerTeamService.ts +10 -0
- package/Server/Services/KubernetesClusterOwnerUserService.ts +10 -0
- package/Server/Services/KubernetesResourceService.ts +351 -0
- package/Server/Services/MetricPipelineRuleService.ts +10 -0
- package/Server/Services/MetricRecordingRuleService.ts +10 -0
- package/Server/Services/TelegramLogService.ts +15 -0
- package/Server/Services/TelegramService.ts +139 -0
- package/Server/Services/TraceDropFilterService.ts +10 -0
- package/Server/Services/TracePipelineProcessorService.ts +10 -0
- package/Server/Services/TracePipelineService.ts +10 -0
- package/Server/Services/TraceRecordingRuleService.ts +10 -0
- package/Server/Services/TraceScrubRuleService.ts +10 -0
- package/Server/Services/UserNotificationRuleService.ts +350 -1
- package/Server/Services/UserNotificationSettingService.ts +114 -0
- package/Server/Services/UserTelegramService.ts +140 -0
- package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +71 -9
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +483 -75
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +379 -6
- package/Server/Utils/Monitor/MonitorResource.ts +29 -15
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +29 -16
- package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +502 -0
- package/Tests/Types/Date.test.ts +158 -0
- package/Tests/Utils/MetricUnitUtil.test.ts +216 -0
- package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +269 -0
- package/Tests/Utils/Metrics/MetricResultUnitConverter.test.ts +231 -0
- package/Tests/Utils/RecordingRuleExpression.test.ts +177 -0
- package/Types/Date.ts +12 -3
- package/Types/Icon/IconProp.ts +1 -0
- package/Types/Kubernetes/KubernetesInventoryExtractor.ts +327 -0
- package/Types/Kubernetes/KubernetesObjectParser.ts +1949 -0
- package/Types/Metrics/MetricDownsamplingRetentionDays.ts +49 -0
- package/Types/Metrics/MetricFormulaConfigData.ts +4 -0
- package/Types/Metrics/MetricPipelineRuleFilterCondition.ts +136 -0
- package/Types/Metrics/MetricPipelineRuleType.ts +27 -0
- package/Types/Metrics/RecordingRuleDefinition.ts +180 -0
- package/Types/Monitor/CriteriaFilter.ts +43 -0
- package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +70 -0
- package/Types/Permission.ts +531 -0
- package/Types/Telegram/TelegramMessage.ts +9 -0
- package/Types/TelegramStatus.ts +14 -0
- package/Types/Trace/TraceAggregationType.ts +17 -0
- package/Types/Trace/TraceDropFilterAction.ts +6 -0
- package/Types/Trace/TracePipelineProcessorType.ts +56 -0
- package/Types/Trace/TraceRecordingRuleDefinition.ts +218 -0
- package/Types/Trace/TraceScrubAction.ts +7 -0
- package/Types/Trace/TraceScrubField.ts +8 -0
- package/Types/Trace/TraceScrubPatternType.ts +10 -0
- package/UI/Components/CardSelect/CardSelect.tsx +9 -1
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +6 -10
- package/UI/Components/Forms/Fields/FormField.tsx +1 -0
- package/UI/Components/Forms/Types/Field.ts +1 -0
- package/UI/Components/Icon/Icon.tsx +15 -0
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +57 -0
- package/UI/Components/Page/Page.tsx +6 -0
- package/Utils/MetricUnitUtil.ts +289 -0
- package/Utils/Metrics/MetricFormulaEvaluator.ts +610 -0
- package/Utils/Metrics/MetricResultUnitConverter.ts +91 -0
- package/Utils/Metrics/RecordingRuleExpression.ts +359 -0
- package/Utils/ValueFormatter.ts +137 -13
- package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js +480 -0
- package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js +479 -0
- package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +59 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +28 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js +480 -0
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js +479 -0
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/KubernetesResource.js +590 -0
- package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MetricPipelineRule.js +836 -0
- package/build/dist/Models/DatabaseModels/MetricPipelineRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MetricRecordingRule.js +497 -0
- package/build/dist/Models/DatabaseModels/MetricRecordingRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Monitor.js +2 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +85 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Service.js +79 -0
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelegramLog.js +1056 -0
- package/build/dist/Models/DatabaseModels/TelegramLog.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js +536 -0
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TracePipeline.js +462 -0
- package/build/dist/Models/DatabaseModels/TracePipeline.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js +476 -0
- package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TraceRecordingRule.js +497 -0
- package/build/dist/Models/DatabaseModels/TraceRecordingRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TraceScrubRule.js +575 -0
- package/build/dist/Models/DatabaseModels/TraceScrubRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js +49 -0
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +19 -0
- package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTelegram.js +331 -0
- package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -0
- package/build/dist/Server/API/KubernetesResourceAPI.js +98 -0
- package/build/dist/Server/API/KubernetesResourceAPI.js.map +1 -0
- package/build/dist/Server/API/UserTelegramAPI.js +99 -0
- package/build/dist/Server/API/UserTelegramAPI.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js +144 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js +82 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js +118 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.js +116 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/DockerHostOwnerUserService.js +9 -0
- package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/Index.js +6 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +9 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/KubernetesResourceService.js +237 -0
- package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -0
- package/build/dist/Server/Services/MetricPipelineRuleService.js +9 -0
- package/build/dist/Server/Services/MetricPipelineRuleService.js.map +1 -0
- package/build/dist/Server/Services/MetricRecordingRuleService.js +9 -0
- package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -0
- package/build/dist/Server/Services/TelegramLogService.js +13 -0
- package/build/dist/Server/Services/TelegramLogService.js.map +1 -0
- package/build/dist/Server/Services/TelegramService.js +100 -0
- package/build/dist/Server/Services/TelegramService.js.map +1 -0
- package/build/dist/Server/Services/TraceDropFilterService.js +9 -0
- package/build/dist/Server/Services/TraceDropFilterService.js.map +1 -0
- package/build/dist/Server/Services/TracePipelineProcessorService.js +9 -0
- package/build/dist/Server/Services/TracePipelineProcessorService.js.map +1 -0
- package/build/dist/Server/Services/TracePipelineService.js +9 -0
- package/build/dist/Server/Services/TracePipelineService.js.map +1 -0
- package/build/dist/Server/Services/TraceRecordingRuleService.js +9 -0
- package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -0
- package/build/dist/Server/Services/TraceScrubRuleService.js +9 -0
- package/build/dist/Server/Services/TraceScrubRuleService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationRuleService.js +272 -21
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +94 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserTelegramService.js +133 -0
- package/build/dist/Server/Services/UserTelegramService.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +56 -9
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +335 -53
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +277 -5
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +25 -12
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +24 -12
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +407 -0
- package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +1 -0
- package/build/dist/Tests/Types/Date.test.js +96 -0
- package/build/dist/Tests/Types/Date.test.js.map +1 -1
- package/build/dist/Tests/Utils/MetricUnitUtil.test.js +159 -0
- package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +1 -0
- package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +224 -0
- package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +1 -0
- package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +180 -0
- package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +1 -0
- package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +142 -0
- package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +1 -0
- package/build/dist/Types/Date.js +9 -3
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Icon/IconProp.js +1 -0
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js +200 -0
- package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js.map +1 -0
- package/build/dist/Types/Kubernetes/KubernetesObjectParser.js +1205 -0
- package/build/dist/Types/Kubernetes/KubernetesObjectParser.js.map +1 -0
- package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js +32 -0
- package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js.map +1 -0
- package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js +103 -0
- package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js.map +1 -0
- package/build/dist/Types/Metrics/MetricPipelineRuleType.js +27 -0
- package/build/dist/Types/Metrics/MetricPipelineRuleType.js.map +1 -0
- package/build/dist/Types/Metrics/RecordingRuleDefinition.js +110 -0
- package/build/dist/Types/Metrics/RecordingRuleDefinition.js.map +1 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js +22 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js +2 -0
- package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js.map +1 -0
- package/build/dist/Types/Permission.js +464 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Telegram/TelegramMessage.js +2 -0
- package/build/dist/Types/Telegram/TelegramMessage.js.map +1 -0
- package/build/dist/Types/TelegramStatus.js +15 -0
- package/build/dist/Types/TelegramStatus.js.map +1 -0
- package/build/dist/Types/Trace/TraceAggregationType.js +18 -0
- package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -0
- package/build/dist/Types/Trace/TraceDropFilterAction.js +7 -0
- package/build/dist/Types/Trace/TraceDropFilterAction.js.map +1 -0
- package/build/dist/Types/Trace/TracePipelineProcessorType.js +10 -0
- package/build/dist/Types/Trace/TracePipelineProcessorType.js.map +1 -0
- package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +145 -0
- package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -0
- package/build/dist/Types/Trace/TraceScrubAction.js +8 -0
- package/build/dist/Types/Trace/TraceScrubAction.js.map +1 -0
- package/build/dist/Types/Trace/TraceScrubField.js +9 -0
- package/build/dist/Types/Trace/TraceScrubField.js.map +1 -0
- package/build/dist/Types/Trace/TraceScrubPatternType.js +11 -0
- package/build/dist/Types/Trace/TraceScrubPatternType.js.map +1 -0
- package/build/dist/UI/Components/CardSelect/CardSelect.js +3 -1
- package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -9
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +5 -0
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +30 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Page/Page.js +1 -0
- package/build/dist/UI/Components/Page/Page.js.map +1 -1
- package/build/dist/Utils/MetricUnitUtil.js +232 -0
- package/build/dist/Utils/MetricUnitUtil.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +453 -0
- package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricResultUnitConverter.js +61 -0
- package/build/dist/Utils/Metrics/MetricResultUnitConverter.js.map +1 -0
- package/build/dist/Utils/Metrics/RecordingRuleExpression.js +298 -0
- package/build/dist/Utils/Metrics/RecordingRuleExpression.js.map +1 -0
- package/build/dist/Utils/ValueFormatter.js +123 -13
- package/build/dist/Utils/ValueFormatter.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
2
|
+
import CreateBy from "../Types/Database/CreateBy";
|
|
3
|
+
import DeleteBy from "../Types/Database/DeleteBy";
|
|
4
|
+
import { OnCreate, OnDelete } from "../Types/Database/Hooks";
|
|
5
|
+
import DatabaseService from "./DatabaseService";
|
|
6
|
+
import ProjectService from "./ProjectService";
|
|
7
|
+
import UserNotificationRuleService from "./UserNotificationRuleService";
|
|
8
|
+
import LIMIT_MAX from "../../Types/Database/LimitMax";
|
|
9
|
+
import BadDataException from "../../Types/Exception/BadDataException";
|
|
10
|
+
import ObjectID from "../../Types/ObjectID";
|
|
11
|
+
import Text from "../../Types/Text";
|
|
12
|
+
import Project from "../../Models/DatabaseModels/Project";
|
|
13
|
+
import Model from "../../Models/DatabaseModels/UserTelegram";
|
|
14
|
+
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
15
|
+
|
|
16
|
+
export class Service extends DatabaseService<Model> {
|
|
17
|
+
public constructor() {
|
|
18
|
+
super(Model);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@CaptureSpan()
|
|
22
|
+
protected override async onBeforeDelete(
|
|
23
|
+
deleteBy: DeleteBy<Model>,
|
|
24
|
+
): Promise<OnDelete<Model>> {
|
|
25
|
+
const itemsToDelete: Array<Model> = await this.findBy({
|
|
26
|
+
query: deleteBy.query,
|
|
27
|
+
select: {
|
|
28
|
+
_id: true,
|
|
29
|
+
projectId: true,
|
|
30
|
+
},
|
|
31
|
+
skip: 0,
|
|
32
|
+
limit: LIMIT_MAX,
|
|
33
|
+
props: {
|
|
34
|
+
isRoot: true,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
for (const item of itemsToDelete) {
|
|
39
|
+
await UserNotificationRuleService.deleteBy({
|
|
40
|
+
query: {
|
|
41
|
+
userTelegramId: item.id!,
|
|
42
|
+
projectId: item.projectId!,
|
|
43
|
+
},
|
|
44
|
+
limit: LIMIT_MAX,
|
|
45
|
+
skip: 0,
|
|
46
|
+
props: {
|
|
47
|
+
isRoot: true,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
deleteBy,
|
|
54
|
+
carryForward: null,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@CaptureSpan()
|
|
59
|
+
protected override async onBeforeCreate(
|
|
60
|
+
createBy: CreateBy<Model>,
|
|
61
|
+
): Promise<OnCreate<Model>> {
|
|
62
|
+
if (!createBy.props.isRoot && createBy.data.isVerified) {
|
|
63
|
+
throw new BadDataException("isVerified cannot be set to true");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (!createBy.props.isRoot && createBy.data.telegramChatId) {
|
|
67
|
+
throw new BadDataException("telegramChatId cannot be set directly");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const project: Project | null = await ProjectService.findOneById({
|
|
71
|
+
id: createBy.data.projectId!,
|
|
72
|
+
props: {
|
|
73
|
+
isRoot: true,
|
|
74
|
+
},
|
|
75
|
+
select: {
|
|
76
|
+
enableTelegramNotifications: true,
|
|
77
|
+
smsOrCallCurrentBalanceInUSDCents: true,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
if (!project) {
|
|
82
|
+
throw new BadDataException("Project not found");
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (!project.enableTelegramNotifications) {
|
|
86
|
+
throw new BadDataException(
|
|
87
|
+
"Telegram notifications are disabled for this project. Please enable them in Project Settings > Notification Settings.",
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (
|
|
92
|
+
(project.smsOrCallCurrentBalanceInUSDCents as number) <= 100 &&
|
|
93
|
+
IsBillingEnabled
|
|
94
|
+
) {
|
|
95
|
+
throw new BadDataException(
|
|
96
|
+
"Your notification balance is low. Please recharge your balance in Project Settings > Notification Settings.",
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
createBy,
|
|
102
|
+
carryForward: null,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@CaptureSpan()
|
|
107
|
+
public async regenerateVerificationCode(itemId: ObjectID): Promise<void> {
|
|
108
|
+
const item: Model | null = await this.findOneById({
|
|
109
|
+
id: itemId,
|
|
110
|
+
props: {
|
|
111
|
+
isRoot: true,
|
|
112
|
+
},
|
|
113
|
+
select: {
|
|
114
|
+
isVerified: true,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
if (!item) {
|
|
119
|
+
throw new BadDataException(
|
|
120
|
+
"Item with ID " + itemId.toString() + " not found",
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (item.isVerified) {
|
|
125
|
+
throw new BadDataException("Telegram account already verified");
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
await this.updateOneById({
|
|
129
|
+
id: itemId,
|
|
130
|
+
props: {
|
|
131
|
+
isRoot: true,
|
|
132
|
+
},
|
|
133
|
+
data: {
|
|
134
|
+
verificationCode: Text.generateRandomNumber(6),
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export default new Service();
|
|
@@ -389,6 +389,8 @@ export default class CompareCriteria {
|
|
|
389
389
|
value: Array<number> | number;
|
|
390
390
|
threshold: number;
|
|
391
391
|
criteriaFilter: CriteriaFilter;
|
|
392
|
+
metricDisplayName?: string | undefined;
|
|
393
|
+
unit?: string | undefined;
|
|
392
394
|
}): string | null {
|
|
393
395
|
if (data.value === null || data.value === undefined) {
|
|
394
396
|
return null;
|
|
@@ -412,6 +414,8 @@ export default class CompareCriteria {
|
|
|
412
414
|
values: data.value,
|
|
413
415
|
threshold: data.threshold as number,
|
|
414
416
|
criteriaFilter: data.criteriaFilter,
|
|
417
|
+
metricDisplayName: data.metricDisplayName,
|
|
418
|
+
unit: data.unit,
|
|
415
419
|
});
|
|
416
420
|
}
|
|
417
421
|
|
|
@@ -432,6 +436,8 @@ export default class CompareCriteria {
|
|
|
432
436
|
values: data.value,
|
|
433
437
|
threshold: data.threshold as number,
|
|
434
438
|
criteriaFilter: data.criteriaFilter,
|
|
439
|
+
metricDisplayName: data.metricDisplayName,
|
|
440
|
+
unit: data.unit,
|
|
435
441
|
});
|
|
436
442
|
}
|
|
437
443
|
|
|
@@ -452,6 +458,8 @@ export default class CompareCriteria {
|
|
|
452
458
|
values: data.value,
|
|
453
459
|
threshold: data.threshold as number,
|
|
454
460
|
criteriaFilter: data.criteriaFilter,
|
|
461
|
+
metricDisplayName: data.metricDisplayName,
|
|
462
|
+
unit: data.unit,
|
|
455
463
|
});
|
|
456
464
|
}
|
|
457
465
|
|
|
@@ -472,6 +480,8 @@ export default class CompareCriteria {
|
|
|
472
480
|
values: data.value,
|
|
473
481
|
threshold: data.threshold as number,
|
|
474
482
|
criteriaFilter: data.criteriaFilter,
|
|
483
|
+
metricDisplayName: data.metricDisplayName,
|
|
484
|
+
unit: data.unit,
|
|
475
485
|
});
|
|
476
486
|
}
|
|
477
487
|
|
|
@@ -492,6 +502,8 @@ export default class CompareCriteria {
|
|
|
492
502
|
values: data.value,
|
|
493
503
|
threshold: data.threshold as number,
|
|
494
504
|
criteriaFilter: data.criteriaFilter,
|
|
505
|
+
metricDisplayName: data.metricDisplayName,
|
|
506
|
+
unit: data.unit,
|
|
495
507
|
});
|
|
496
508
|
}
|
|
497
509
|
|
|
@@ -512,6 +524,8 @@ export default class CompareCriteria {
|
|
|
512
524
|
values: data.value,
|
|
513
525
|
threshold: data.threshold as number,
|
|
514
526
|
criteriaFilter: data.criteriaFilter,
|
|
527
|
+
metricDisplayName: data.metricDisplayName,
|
|
528
|
+
unit: data.unit,
|
|
515
529
|
});
|
|
516
530
|
}
|
|
517
531
|
|
|
@@ -526,6 +540,8 @@ export default class CompareCriteria {
|
|
|
526
540
|
values: Array<number | boolean> | number | boolean | string;
|
|
527
541
|
threshold: number | string | boolean;
|
|
528
542
|
criteriaFilter: CriteriaFilter;
|
|
543
|
+
metricDisplayName?: string | undefined;
|
|
544
|
+
unit?: string | undefined;
|
|
529
545
|
}): string {
|
|
530
546
|
// CPU Percent over the last 5 minutes is 10 which is less than the threshold of 20
|
|
531
547
|
let message: string = "";
|
|
@@ -546,7 +562,17 @@ export default class CompareCriteria {
|
|
|
546
562
|
message += "All values of";
|
|
547
563
|
}
|
|
548
564
|
|
|
549
|
-
|
|
565
|
+
/*
|
|
566
|
+
* Prefer a metric-specific display name over the generic "Metric Value"
|
|
567
|
+
* label when evaluating metric monitors.
|
|
568
|
+
*/
|
|
569
|
+
const label: string =
|
|
570
|
+
data.metricDisplayName &&
|
|
571
|
+
data.criteriaFilter.checkOn === CheckOn.MetricValue
|
|
572
|
+
? data.metricDisplayName
|
|
573
|
+
: data.criteriaFilter.checkOn;
|
|
574
|
+
|
|
575
|
+
message += ` ${label}`;
|
|
550
576
|
|
|
551
577
|
if (data.criteriaFilter.checkOn === CheckOn.DiskUsagePercent) {
|
|
552
578
|
const diskPath: string =
|
|
@@ -562,6 +588,8 @@ export default class CompareCriteria {
|
|
|
562
588
|
message += ` over the last ${data.criteriaFilter.evaluateOverTimeOptions.timeValueInMinutes} minutes`;
|
|
563
589
|
}
|
|
564
590
|
|
|
591
|
+
const unitSuffix: string = data.unit ? ` ${data.unit}` : "";
|
|
592
|
+
|
|
565
593
|
if (
|
|
566
594
|
data.criteriaFilter.filterType !== FilterType.True &&
|
|
567
595
|
data.criteriaFilter.filterType !== FilterType.False
|
|
@@ -570,29 +598,29 @@ export default class CompareCriteria {
|
|
|
570
598
|
data.values,
|
|
571
599
|
);
|
|
572
600
|
|
|
573
|
-
message += ` is ${formattedValues}`;
|
|
601
|
+
message += ` is ${formattedValues}${unitSuffix}`;
|
|
574
602
|
|
|
575
603
|
message += " which is";
|
|
576
604
|
}
|
|
577
605
|
|
|
578
606
|
switch (data.criteriaFilter.filterType) {
|
|
579
607
|
case FilterType.GreaterThan:
|
|
580
|
-
message += ` greater than ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
608
|
+
message += ` greater than ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
|
|
581
609
|
break;
|
|
582
610
|
case FilterType.GreaterThanOrEqualTo:
|
|
583
|
-
message += ` greater than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
611
|
+
message += ` greater than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
|
|
584
612
|
break;
|
|
585
613
|
case FilterType.LessThan:
|
|
586
|
-
message += ` less than ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
614
|
+
message += ` less than ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
|
|
587
615
|
break;
|
|
588
616
|
case FilterType.LessThanOrEqualTo:
|
|
589
|
-
message += ` less than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
617
|
+
message += ` less than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
|
|
590
618
|
break;
|
|
591
619
|
case FilterType.NotEqualTo:
|
|
592
|
-
message += ` not equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
620
|
+
message += ` not equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
|
|
593
621
|
break;
|
|
594
622
|
case FilterType.EqualTo:
|
|
595
|
-
message += ` equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
623
|
+
message += ` equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
|
|
596
624
|
break;
|
|
597
625
|
case FilterType.Contains:
|
|
598
626
|
message += ` contains ${CompareCriteria.formatSingleValue(data.threshold)}. `;
|
|
@@ -621,11 +649,45 @@ export default class CompareCriteria {
|
|
|
621
649
|
values: Array<number | boolean> | number | boolean | string,
|
|
622
650
|
): string {
|
|
623
651
|
if (Array.isArray(values)) {
|
|
624
|
-
|
|
652
|
+
/*
|
|
653
|
+
* For a small number of values, list them verbatim so the message
|
|
654
|
+
* reads naturally ("is 42, 55, 60"). For larger arrays, summarize
|
|
655
|
+
* — dumping 30+ numbers on one line makes the root cause unreadable
|
|
656
|
+
* and the detailed breakdown is shown in the Breaching Samples
|
|
657
|
+
* table below.
|
|
658
|
+
*/
|
|
659
|
+
const MAX_INLINE: number = 5;
|
|
660
|
+
|
|
661
|
+
if (values.length <= MAX_INLINE) {
|
|
662
|
+
return values
|
|
663
|
+
.map((value: number | boolean) => {
|
|
664
|
+
return CompareCriteria.formatSingleValue(value);
|
|
665
|
+
})
|
|
666
|
+
.join(", ");
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
const numericValues: Array<number> = values.filter(
|
|
670
|
+
(value: number | boolean): value is number => {
|
|
671
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
672
|
+
},
|
|
673
|
+
);
|
|
674
|
+
|
|
675
|
+
if (numericValues.length === values.length && numericValues.length > 0) {
|
|
676
|
+
const min: number = Math.min(...numericValues);
|
|
677
|
+
const max: number = Math.max(...numericValues);
|
|
678
|
+
return `${numericValues.length} samples between ${CompareCriteria.formatSingleValue(
|
|
679
|
+
min,
|
|
680
|
+
)} and ${CompareCriteria.formatSingleValue(max)}`;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
// Fall back to a truncated list when not all values are numeric
|
|
684
|
+
const head: string = values
|
|
685
|
+
.slice(0, MAX_INLINE)
|
|
625
686
|
.map((value: number | boolean) => {
|
|
626
687
|
return CompareCriteria.formatSingleValue(value);
|
|
627
688
|
})
|
|
628
689
|
.join(", ");
|
|
690
|
+
return `${head}, … (${values.length} values total)`;
|
|
629
691
|
}
|
|
630
692
|
|
|
631
693
|
return CompareCriteria.formatSingleValue(values);
|