@oneuptime/common 10.4.10 → 10.4.12
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/AnalyticsModels/ExceptionInstance.ts +47 -1
- package/Models/AnalyticsModels/Log.ts +47 -1
- package/Models/AnalyticsModels/Metric.ts +1 -7
- package/Models/AnalyticsModels/Profile.ts +47 -1
- package/Models/AnalyticsModels/ProfileSample.ts +47 -1
- package/Models/AnalyticsModels/Span.ts +47 -1
- package/Models/DatabaseModels/Alert.ts +332 -0
- package/Models/DatabaseModels/DockerHost.ts +83 -0
- package/Models/DatabaseModels/Host.ts +83 -0
- package/Models/DatabaseModels/Incident.ts +332 -0
- package/Models/DatabaseModels/Index.ts +0 -2
- package/Models/DatabaseModels/KubernetesCluster.ts +83 -0
- package/Models/DatabaseModels/RunbookAgent.ts +16 -2
- package/Server/EnvironmentConfig.ts +16 -0
- package/Server/Infrastructure/ClickhouseConfig.ts +14 -0
- package/Server/Infrastructure/ClickhouseDatabase.ts +20 -3
- package/Server/Infrastructure/InMemoryTTLCache.ts +61 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779199346010-AddTelemetryRetentionConfig.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.ts +44 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779282769946-AddTelemetryRetentionToHostDockerKubernetes.ts +50 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779302536475-AttachKubernetesAndDockerToIncidentAndAlert.ts +253 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1779303924241-AttachServiceToIncidentAndAlert.ts +60 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Middleware/TelemetryIngest.ts +6 -38
- package/Server/Middleware/UserAuthorization.ts +1 -11
- package/Server/Services/AlertService.ts +2 -4
- package/Server/Services/AnalyticsDatabaseService.ts +33 -1
- package/Server/Services/IncidentService.ts +2 -4
- package/Server/Services/Index.ts +0 -2
- package/Server/Services/LogAggregationService.ts +54 -6
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +6 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +1 -0
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +17 -0
- package/Server/Services/OpenTelemetryIngestService.ts +132 -0
- package/Server/Services/TelemetryIngestionKeyService.ts +90 -1
- package/Server/Services/TraceAggregationService.ts +83 -8
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +2 -4
- package/Server/Utils/Telemetry/Telemetry.ts +38 -0
- package/Tests/Server/Middleware/UserAuthorization.test.ts +5 -7
- package/Types/Dashboard/DashboardComponentType.ts +0 -1
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +2 -0
- package/Types/Dashboard/DashboardComponents/DashboardTableComponent.ts +74 -1
- package/Types/Dashboard/DashboardTemplates.ts +164 -51
- package/Types/Monitor/MonitorType.ts +1 -1
- package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +36 -9
- package/Types/Permission.ts +0 -46
- package/Types/Telemetry/ServiceType.ts +19 -0
- package/UI/Components/Forms/Validation.ts +2 -2
- package/UI/Components/LogsViewer/LogsViewer.tsx +135 -17
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +84 -1
- package/UI/Components/Telemetry/TelemetryRetentionConfigForm.tsx +0 -1
- package/Utils/Dashboard/Components/DashboardTableComponent.ts +80 -17
- package/Utils/Dashboard/Components/Index.ts +0 -7
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +41 -1
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js +41 -1
- package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Metric.js +0 -7
- package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Profile.js +41 -1
- package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ProfileSample.js +41 -1
- package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js +41 -1
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +324 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHost.js +84 -0
- package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Host.js +84 -0
- package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +324 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +0 -2
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js +84 -0
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookAgent.js +16 -2
- package/build/dist/Models/DatabaseModels/RunbookAgent.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +8 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js +9 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js +12 -3
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js.map +1 -1
- package/build/dist/Server/Infrastructure/InMemoryTTLCache.js +49 -0
- package/build/dist/Server/Infrastructure/InMemoryTTLCache.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779199346010-AddTelemetryRetentionConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.js +42 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779282769946-AddTelemetryRetentionToHostDockerKubernetes.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779282769946-AddTelemetryRetentionToHostDockerKubernetes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779302536475-AttachKubernetesAndDockerToIncidentAndAlert.js +100 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779302536475-AttachKubernetesAndDockerToIncidentAndAlert.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779303924241-AttachServiceToIncidentAndAlert.js +28 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779303924241-AttachServiceToIncidentAndAlert.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +2 -26
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +1 -7
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +2 -1
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +23 -2
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +2 -1
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +0 -2
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +46 -4
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +28 -24
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +18 -2
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -0
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js +83 -0
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +66 -6
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +2 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +26 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +3 -7
- package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +0 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js +13 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardTemplates.js +142 -42
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +1 -1
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +27 -7
- package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
- package/build/dist/Types/Permission.js +0 -40
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +20 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -0
- package/build/dist/UI/Components/Forms/Validation.js +2 -2
- package/build/dist/UI/Components/Forms/Validation.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +106 -16
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +67 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js +68 -16
- package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/Index.js +0 -4
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/package.json +1 -2
- package/Models/DatabaseModels/ServiceDependency.ts +0 -529
- package/Server/Services/ServiceDependencyService.ts +0 -48
- package/Types/Dashboard/DashboardComponents/DashboardHostMetricChartComponent.ts +0 -27
- package/Typings/elkjs.d.ts +0 -30
- package/UI/Components/Graphs/ServiceDependencyGraph.tsx +0 -286
- package/Utils/Dashboard/Components/DashboardHostMetricChartComponent.ts +0 -132
- package/build/dist/Models/DatabaseModels/ServiceDependency.js +0 -545
- package/build/dist/Models/DatabaseModels/ServiceDependency.js.map +0 -1
- package/build/dist/Server/Services/ServiceDependencyService.js +0 -47
- package/build/dist/Server/Services/ServiceDependencyService.js.map +0 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardHostMetricChartComponent.js +0 -11
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardHostMetricChartComponent.js.map +0 -1
- package/build/dist/UI/Components/Graphs/ServiceDependencyGraph.js +0 -206
- package/build/dist/UI/Components/Graphs/ServiceDependencyGraph.js.map +0 -1
- package/build/dist/Utils/Dashboard/Components/DashboardHostMetricChartComponent.js +0 -113
- package/build/dist/Utils/Dashboard/Components/DashboardHostMetricChartComponent.js.map +0 -1
package/Server/Infrastructure/Postgres/SchemaMigrations/1779277271302-DropServiceDependencyTable.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
import CaptureSpan from "../../../Utils/Telemetry/CaptureSpan";
|
|
3
|
+
|
|
4
|
+
export class DropServiceDependencyTable1779277271302
|
|
5
|
+
implements MigrationInterface
|
|
6
|
+
{
|
|
7
|
+
public name = "DropServiceDependencyTable1779277271302";
|
|
8
|
+
|
|
9
|
+
@CaptureSpan()
|
|
10
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
11
|
+
await queryRunner.query(`DROP TABLE IF EXISTS "ServiceDependency" CASCADE`);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@CaptureSpan()
|
|
15
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
16
|
+
await queryRunner.query(
|
|
17
|
+
`CREATE TABLE "ServiceDependency" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "serviceId" uuid NOT NULL, "dependencyServiceId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_f4c8003faa6daec34a5b97f88e8" PRIMARY KEY ("_id"))`,
|
|
18
|
+
);
|
|
19
|
+
await queryRunner.query(
|
|
20
|
+
`CREATE INDEX "IDX_3e2a1ef7e8795a46c2e2e9955c" ON "ServiceDependency" ("projectId")`,
|
|
21
|
+
);
|
|
22
|
+
await queryRunner.query(
|
|
23
|
+
`CREATE INDEX "IDX_3af01e69f3e28ae56a968bbd81" ON "ServiceDependency" ("serviceId")`,
|
|
24
|
+
);
|
|
25
|
+
await queryRunner.query(
|
|
26
|
+
`CREATE INDEX "IDX_c2562045902370ec46091924fc" ON "ServiceDependency" ("dependencyServiceId")`,
|
|
27
|
+
);
|
|
28
|
+
await queryRunner.query(
|
|
29
|
+
`ALTER TABLE "ServiceDependency" ADD CONSTRAINT "FK_3e2a1ef7e8795a46c2e2e9955c2" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
30
|
+
);
|
|
31
|
+
await queryRunner.query(
|
|
32
|
+
`ALTER TABLE "ServiceDependency" ADD CONSTRAINT "FK_3af01e69f3e28ae56a968bbd812" FOREIGN KEY ("serviceId") REFERENCES "Service"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
33
|
+
);
|
|
34
|
+
await queryRunner.query(
|
|
35
|
+
`ALTER TABLE "ServiceDependency" ADD CONSTRAINT "FK_c2562045902370ec46091924fc8" FOREIGN KEY ("dependencyServiceId") REFERENCES "Service"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
36
|
+
);
|
|
37
|
+
await queryRunner.query(
|
|
38
|
+
`ALTER TABLE "ServiceDependency" ADD CONSTRAINT "FK_cc8c8d41106bebab21d1c69e129" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
39
|
+
);
|
|
40
|
+
await queryRunner.query(
|
|
41
|
+
`ALTER TABLE "ServiceDependency" ADD CONSTRAINT "FK_feb830e4e4f8259a871105b16e8" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
export class AddTelemetryRetentionToHostDockerKubernetes1779282769946
|
|
4
|
+
implements MigrationInterface
|
|
5
|
+
{
|
|
6
|
+
public name: string =
|
|
7
|
+
"AddTelemetryRetentionToHostDockerKubernetes1779282769946";
|
|
8
|
+
|
|
9
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
10
|
+
await queryRunner.query(
|
|
11
|
+
`ALTER TABLE "Host" ADD "retainTelemetryDataForDays" integer`,
|
|
12
|
+
);
|
|
13
|
+
await queryRunner.query(
|
|
14
|
+
`ALTER TABLE "Host" ADD "telemetryRetentionConfig" jsonb`,
|
|
15
|
+
);
|
|
16
|
+
await queryRunner.query(
|
|
17
|
+
`ALTER TABLE "DockerHost" ADD "retainTelemetryDataForDays" integer`,
|
|
18
|
+
);
|
|
19
|
+
await queryRunner.query(
|
|
20
|
+
`ALTER TABLE "DockerHost" ADD "telemetryRetentionConfig" jsonb`,
|
|
21
|
+
);
|
|
22
|
+
await queryRunner.query(
|
|
23
|
+
`ALTER TABLE "KubernetesCluster" ADD "retainTelemetryDataForDays" integer`,
|
|
24
|
+
);
|
|
25
|
+
await queryRunner.query(
|
|
26
|
+
`ALTER TABLE "KubernetesCluster" ADD "telemetryRetentionConfig" jsonb`,
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
31
|
+
await queryRunner.query(
|
|
32
|
+
`ALTER TABLE "KubernetesCluster" DROP COLUMN "telemetryRetentionConfig"`,
|
|
33
|
+
);
|
|
34
|
+
await queryRunner.query(
|
|
35
|
+
`ALTER TABLE "KubernetesCluster" DROP COLUMN "retainTelemetryDataForDays"`,
|
|
36
|
+
);
|
|
37
|
+
await queryRunner.query(
|
|
38
|
+
`ALTER TABLE "DockerHost" DROP COLUMN "telemetryRetentionConfig"`,
|
|
39
|
+
);
|
|
40
|
+
await queryRunner.query(
|
|
41
|
+
`ALTER TABLE "DockerHost" DROP COLUMN "retainTelemetryDataForDays"`,
|
|
42
|
+
);
|
|
43
|
+
await queryRunner.query(
|
|
44
|
+
`ALTER TABLE "Host" DROP COLUMN "telemetryRetentionConfig"`,
|
|
45
|
+
);
|
|
46
|
+
await queryRunner.query(
|
|
47
|
+
`ALTER TABLE "Host" DROP COLUMN "retainTelemetryDataForDays"`,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
export class AttachKubernetesAndDockerToIncidentAndAlert1779302536475
|
|
4
|
+
implements MigrationInterface
|
|
5
|
+
{
|
|
6
|
+
public name: string =
|
|
7
|
+
"AttachKubernetesAndDockerToIncidentAndAlert1779302536475";
|
|
8
|
+
|
|
9
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
10
|
+
// IncidentKubernetesCluster
|
|
11
|
+
await queryRunner.query(
|
|
12
|
+
`CREATE TABLE "IncidentKubernetesCluster" ("incidentId" uuid NOT NULL, "kubernetesClusterId" uuid NOT NULL, CONSTRAINT "PK_0706004605b87701df3fb2fc4fb" PRIMARY KEY ("incidentId", "kubernetesClusterId"))`,
|
|
13
|
+
);
|
|
14
|
+
await queryRunner.query(
|
|
15
|
+
`CREATE INDEX "IDX_4d49468cbea4ece4fe7e2ecf3f" ON "IncidentKubernetesCluster" ("incidentId") `,
|
|
16
|
+
);
|
|
17
|
+
await queryRunner.query(
|
|
18
|
+
`CREATE INDEX "IDX_cb313f51853d6178c1ea498405" ON "IncidentKubernetesCluster" ("kubernetesClusterId") `,
|
|
19
|
+
);
|
|
20
|
+
await queryRunner.query(
|
|
21
|
+
`ALTER TABLE "IncidentKubernetesCluster" ADD CONSTRAINT "FK_4d49468cbea4ece4fe7e2ecf3f8" FOREIGN KEY ("incidentId") REFERENCES "Incident"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
22
|
+
);
|
|
23
|
+
await queryRunner.query(
|
|
24
|
+
`ALTER TABLE "IncidentKubernetesCluster" ADD CONSTRAINT "FK_cb313f51853d6178c1ea498405e" FOREIGN KEY ("kubernetesClusterId") REFERENCES "KubernetesCluster"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
// IncidentKubernetesResource
|
|
28
|
+
await queryRunner.query(
|
|
29
|
+
`CREATE TABLE "IncidentKubernetesResource" ("incidentId" uuid NOT NULL, "kubernetesResourceId" uuid NOT NULL, CONSTRAINT "PK_2d7d43459ccef0edddd433dab0f" PRIMARY KEY ("incidentId", "kubernetesResourceId"))`,
|
|
30
|
+
);
|
|
31
|
+
await queryRunner.query(
|
|
32
|
+
`CREATE INDEX "IDX_706dad5f9b04e57516310bb107" ON "IncidentKubernetesResource" ("incidentId") `,
|
|
33
|
+
);
|
|
34
|
+
await queryRunner.query(
|
|
35
|
+
`CREATE INDEX "IDX_bd41e6a5b7368685534190f8e8" ON "IncidentKubernetesResource" ("kubernetesResourceId") `,
|
|
36
|
+
);
|
|
37
|
+
await queryRunner.query(
|
|
38
|
+
`ALTER TABLE "IncidentKubernetesResource" ADD CONSTRAINT "FK_706dad5f9b04e57516310bb1076" FOREIGN KEY ("incidentId") REFERENCES "Incident"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
39
|
+
);
|
|
40
|
+
await queryRunner.query(
|
|
41
|
+
`ALTER TABLE "IncidentKubernetesResource" ADD CONSTRAINT "FK_bd41e6a5b7368685534190f8e85" FOREIGN KEY ("kubernetesResourceId") REFERENCES "KubernetesResource"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
// IncidentKubernetesContainer
|
|
45
|
+
await queryRunner.query(
|
|
46
|
+
`CREATE TABLE "IncidentKubernetesContainer" ("incidentId" uuid NOT NULL, "kubernetesContainerId" uuid NOT NULL, CONSTRAINT "PK_96c823347cee097c4c99d60d472" PRIMARY KEY ("incidentId", "kubernetesContainerId"))`,
|
|
47
|
+
);
|
|
48
|
+
await queryRunner.query(
|
|
49
|
+
`CREATE INDEX "IDX_318c277a133ab782087eee5a93" ON "IncidentKubernetesContainer" ("incidentId") `,
|
|
50
|
+
);
|
|
51
|
+
await queryRunner.query(
|
|
52
|
+
`CREATE INDEX "IDX_411d29efab26561877b148bb21" ON "IncidentKubernetesContainer" ("kubernetesContainerId") `,
|
|
53
|
+
);
|
|
54
|
+
await queryRunner.query(
|
|
55
|
+
`ALTER TABLE "IncidentKubernetesContainer" ADD CONSTRAINT "FK_318c277a133ab782087eee5a93b" FOREIGN KEY ("incidentId") REFERENCES "Incident"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
56
|
+
);
|
|
57
|
+
await queryRunner.query(
|
|
58
|
+
`ALTER TABLE "IncidentKubernetesContainer" ADD CONSTRAINT "FK_411d29efab26561877b148bb218" FOREIGN KEY ("kubernetesContainerId") REFERENCES "KubernetesContainer"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
// IncidentDockerHost
|
|
62
|
+
await queryRunner.query(
|
|
63
|
+
`CREATE TABLE "IncidentDockerHost" ("incidentId" uuid NOT NULL, "dockerHostId" uuid NOT NULL, CONSTRAINT "PK_56a970e60a6af0ae3bc03952a82" PRIMARY KEY ("incidentId", "dockerHostId"))`,
|
|
64
|
+
);
|
|
65
|
+
await queryRunner.query(
|
|
66
|
+
`CREATE INDEX "IDX_364b7b272015813b8ee02314c4" ON "IncidentDockerHost" ("incidentId") `,
|
|
67
|
+
);
|
|
68
|
+
await queryRunner.query(
|
|
69
|
+
`CREATE INDEX "IDX_9761ce8eb83f4d63d7fef00a55" ON "IncidentDockerHost" ("dockerHostId") `,
|
|
70
|
+
);
|
|
71
|
+
await queryRunner.query(
|
|
72
|
+
`ALTER TABLE "IncidentDockerHost" ADD CONSTRAINT "FK_364b7b272015813b8ee02314c45" FOREIGN KEY ("incidentId") REFERENCES "Incident"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
73
|
+
);
|
|
74
|
+
await queryRunner.query(
|
|
75
|
+
`ALTER TABLE "IncidentDockerHost" ADD CONSTRAINT "FK_9761ce8eb83f4d63d7fef00a55c" FOREIGN KEY ("dockerHostId") REFERENCES "DockerHost"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
// IncidentDockerResource
|
|
79
|
+
await queryRunner.query(
|
|
80
|
+
`CREATE TABLE "IncidentDockerResource" ("incidentId" uuid NOT NULL, "dockerResourceId" uuid NOT NULL, CONSTRAINT "PK_5c1f59bafc8278da53767c2aeae" PRIMARY KEY ("incidentId", "dockerResourceId"))`,
|
|
81
|
+
);
|
|
82
|
+
await queryRunner.query(
|
|
83
|
+
`CREATE INDEX "IDX_5a1cf0cb50fec5135cfd715e2c" ON "IncidentDockerResource" ("incidentId") `,
|
|
84
|
+
);
|
|
85
|
+
await queryRunner.query(
|
|
86
|
+
`CREATE INDEX "IDX_c90832cd0bce96661ae3e3652c" ON "IncidentDockerResource" ("dockerResourceId") `,
|
|
87
|
+
);
|
|
88
|
+
await queryRunner.query(
|
|
89
|
+
`ALTER TABLE "IncidentDockerResource" ADD CONSTRAINT "FK_5a1cf0cb50fec5135cfd715e2cb" FOREIGN KEY ("incidentId") REFERENCES "Incident"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
90
|
+
);
|
|
91
|
+
await queryRunner.query(
|
|
92
|
+
`ALTER TABLE "IncidentDockerResource" ADD CONSTRAINT "FK_c90832cd0bce96661ae3e3652cc" FOREIGN KEY ("dockerResourceId") REFERENCES "DockerResource"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
// AlertKubernetesCluster
|
|
96
|
+
await queryRunner.query(
|
|
97
|
+
`CREATE TABLE "AlertKubernetesCluster" ("alertId" uuid NOT NULL, "kubernetesClusterId" uuid NOT NULL, CONSTRAINT "PK_36951c4b963d30a51d49db2f185" PRIMARY KEY ("alertId", "kubernetesClusterId"))`,
|
|
98
|
+
);
|
|
99
|
+
await queryRunner.query(
|
|
100
|
+
`CREATE INDEX "IDX_9c59dd1fbaa2623c55147588fa" ON "AlertKubernetesCluster" ("alertId") `,
|
|
101
|
+
);
|
|
102
|
+
await queryRunner.query(
|
|
103
|
+
`CREATE INDEX "IDX_b880dd9641b488d37e9c4dbc96" ON "AlertKubernetesCluster" ("kubernetesClusterId") `,
|
|
104
|
+
);
|
|
105
|
+
await queryRunner.query(
|
|
106
|
+
`ALTER TABLE "AlertKubernetesCluster" ADD CONSTRAINT "FK_9c59dd1fbaa2623c55147588fa4" FOREIGN KEY ("alertId") REFERENCES "Alert"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
107
|
+
);
|
|
108
|
+
await queryRunner.query(
|
|
109
|
+
`ALTER TABLE "AlertKubernetesCluster" ADD CONSTRAINT "FK_b880dd9641b488d37e9c4dbc967" FOREIGN KEY ("kubernetesClusterId") REFERENCES "KubernetesCluster"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
// AlertKubernetesResource
|
|
113
|
+
await queryRunner.query(
|
|
114
|
+
`CREATE TABLE "AlertKubernetesResource" ("alertId" uuid NOT NULL, "kubernetesResourceId" uuid NOT NULL, CONSTRAINT "PK_55c136562d0b3ca986eedd20344" PRIMARY KEY ("alertId", "kubernetesResourceId"))`,
|
|
115
|
+
);
|
|
116
|
+
await queryRunner.query(
|
|
117
|
+
`CREATE INDEX "IDX_09847045f3b90d01b5d5116a27" ON "AlertKubernetesResource" ("alertId") `,
|
|
118
|
+
);
|
|
119
|
+
await queryRunner.query(
|
|
120
|
+
`CREATE INDEX "IDX_04479f7cd61764c417284364e4" ON "AlertKubernetesResource" ("kubernetesResourceId") `,
|
|
121
|
+
);
|
|
122
|
+
await queryRunner.query(
|
|
123
|
+
`ALTER TABLE "AlertKubernetesResource" ADD CONSTRAINT "FK_09847045f3b90d01b5d5116a278" FOREIGN KEY ("alertId") REFERENCES "Alert"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
124
|
+
);
|
|
125
|
+
await queryRunner.query(
|
|
126
|
+
`ALTER TABLE "AlertKubernetesResource" ADD CONSTRAINT "FK_04479f7cd61764c417284364e49" FOREIGN KEY ("kubernetesResourceId") REFERENCES "KubernetesResource"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
// AlertKubernetesContainer
|
|
130
|
+
await queryRunner.query(
|
|
131
|
+
`CREATE TABLE "AlertKubernetesContainer" ("alertId" uuid NOT NULL, "kubernetesContainerId" uuid NOT NULL, CONSTRAINT "PK_5004da87e6cee38c2cdce1c015b" PRIMARY KEY ("alertId", "kubernetesContainerId"))`,
|
|
132
|
+
);
|
|
133
|
+
await queryRunner.query(
|
|
134
|
+
`CREATE INDEX "IDX_e5e3b19d56842d98ad736f2451" ON "AlertKubernetesContainer" ("alertId") `,
|
|
135
|
+
);
|
|
136
|
+
await queryRunner.query(
|
|
137
|
+
`CREATE INDEX "IDX_cc7bd03e0d9fec67856319959b" ON "AlertKubernetesContainer" ("kubernetesContainerId") `,
|
|
138
|
+
);
|
|
139
|
+
await queryRunner.query(
|
|
140
|
+
`ALTER TABLE "AlertKubernetesContainer" ADD CONSTRAINT "FK_e5e3b19d56842d98ad736f2451e" FOREIGN KEY ("alertId") REFERENCES "Alert"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
141
|
+
);
|
|
142
|
+
await queryRunner.query(
|
|
143
|
+
`ALTER TABLE "AlertKubernetesContainer" ADD CONSTRAINT "FK_cc7bd03e0d9fec67856319959be" FOREIGN KEY ("kubernetesContainerId") REFERENCES "KubernetesContainer"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// AlertDockerHost
|
|
147
|
+
await queryRunner.query(
|
|
148
|
+
`CREATE TABLE "AlertDockerHost" ("alertId" uuid NOT NULL, "dockerHostId" uuid NOT NULL, CONSTRAINT "PK_12c730ea1126a0cccde73ce819e" PRIMARY KEY ("alertId", "dockerHostId"))`,
|
|
149
|
+
);
|
|
150
|
+
await queryRunner.query(
|
|
151
|
+
`CREATE INDEX "IDX_2b33c4643132be69e65dc48653" ON "AlertDockerHost" ("alertId") `,
|
|
152
|
+
);
|
|
153
|
+
await queryRunner.query(
|
|
154
|
+
`CREATE INDEX "IDX_e98f39fecd1bc955015882ca34" ON "AlertDockerHost" ("dockerHostId") `,
|
|
155
|
+
);
|
|
156
|
+
await queryRunner.query(
|
|
157
|
+
`ALTER TABLE "AlertDockerHost" ADD CONSTRAINT "FK_2b33c4643132be69e65dc48653c" FOREIGN KEY ("alertId") REFERENCES "Alert"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
158
|
+
);
|
|
159
|
+
await queryRunner.query(
|
|
160
|
+
`ALTER TABLE "AlertDockerHost" ADD CONSTRAINT "FK_e98f39fecd1bc955015882ca34b" FOREIGN KEY ("dockerHostId") REFERENCES "DockerHost"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
// AlertDockerResource
|
|
164
|
+
await queryRunner.query(
|
|
165
|
+
`CREATE TABLE "AlertDockerResource" ("alertId" uuid NOT NULL, "dockerResourceId" uuid NOT NULL, CONSTRAINT "PK_60dbce6b63a1cac67178bbb3998" PRIMARY KEY ("alertId", "dockerResourceId"))`,
|
|
166
|
+
);
|
|
167
|
+
await queryRunner.query(
|
|
168
|
+
`CREATE INDEX "IDX_8843cfc9ef7118e39a40d32548" ON "AlertDockerResource" ("alertId") `,
|
|
169
|
+
);
|
|
170
|
+
await queryRunner.query(
|
|
171
|
+
`CREATE INDEX "IDX_c781b3411915ba016ea3fc30fd" ON "AlertDockerResource" ("dockerResourceId") `,
|
|
172
|
+
);
|
|
173
|
+
await queryRunner.query(
|
|
174
|
+
`ALTER TABLE "AlertDockerResource" ADD CONSTRAINT "FK_8843cfc9ef7118e39a40d325489" FOREIGN KEY ("alertId") REFERENCES "Alert"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
175
|
+
);
|
|
176
|
+
await queryRunner.query(
|
|
177
|
+
`ALTER TABLE "AlertDockerResource" ADD CONSTRAINT "FK_c781b3411915ba016ea3fc30fd3" FOREIGN KEY ("dockerResourceId") REFERENCES "DockerResource"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
182
|
+
await queryRunner.query(
|
|
183
|
+
`ALTER TABLE "AlertDockerResource" DROP CONSTRAINT "FK_c781b3411915ba016ea3fc30fd3"`,
|
|
184
|
+
);
|
|
185
|
+
await queryRunner.query(
|
|
186
|
+
`ALTER TABLE "AlertDockerResource" DROP CONSTRAINT "FK_8843cfc9ef7118e39a40d325489"`,
|
|
187
|
+
);
|
|
188
|
+
await queryRunner.query(
|
|
189
|
+
`ALTER TABLE "AlertDockerHost" DROP CONSTRAINT "FK_e98f39fecd1bc955015882ca34b"`,
|
|
190
|
+
);
|
|
191
|
+
await queryRunner.query(
|
|
192
|
+
`ALTER TABLE "AlertDockerHost" DROP CONSTRAINT "FK_2b33c4643132be69e65dc48653c"`,
|
|
193
|
+
);
|
|
194
|
+
await queryRunner.query(
|
|
195
|
+
`ALTER TABLE "AlertKubernetesContainer" DROP CONSTRAINT "FK_cc7bd03e0d9fec67856319959be"`,
|
|
196
|
+
);
|
|
197
|
+
await queryRunner.query(
|
|
198
|
+
`ALTER TABLE "AlertKubernetesContainer" DROP CONSTRAINT "FK_e5e3b19d56842d98ad736f2451e"`,
|
|
199
|
+
);
|
|
200
|
+
await queryRunner.query(
|
|
201
|
+
`ALTER TABLE "AlertKubernetesResource" DROP CONSTRAINT "FK_04479f7cd61764c417284364e49"`,
|
|
202
|
+
);
|
|
203
|
+
await queryRunner.query(
|
|
204
|
+
`ALTER TABLE "AlertKubernetesResource" DROP CONSTRAINT "FK_09847045f3b90d01b5d5116a278"`,
|
|
205
|
+
);
|
|
206
|
+
await queryRunner.query(
|
|
207
|
+
`ALTER TABLE "AlertKubernetesCluster" DROP CONSTRAINT "FK_b880dd9641b488d37e9c4dbc967"`,
|
|
208
|
+
);
|
|
209
|
+
await queryRunner.query(
|
|
210
|
+
`ALTER TABLE "AlertKubernetesCluster" DROP CONSTRAINT "FK_9c59dd1fbaa2623c55147588fa4"`,
|
|
211
|
+
);
|
|
212
|
+
await queryRunner.query(
|
|
213
|
+
`ALTER TABLE "IncidentDockerResource" DROP CONSTRAINT "FK_c90832cd0bce96661ae3e3652cc"`,
|
|
214
|
+
);
|
|
215
|
+
await queryRunner.query(
|
|
216
|
+
`ALTER TABLE "IncidentDockerResource" DROP CONSTRAINT "FK_5a1cf0cb50fec5135cfd715e2cb"`,
|
|
217
|
+
);
|
|
218
|
+
await queryRunner.query(
|
|
219
|
+
`ALTER TABLE "IncidentDockerHost" DROP CONSTRAINT "FK_9761ce8eb83f4d63d7fef00a55c"`,
|
|
220
|
+
);
|
|
221
|
+
await queryRunner.query(
|
|
222
|
+
`ALTER TABLE "IncidentDockerHost" DROP CONSTRAINT "FK_364b7b272015813b8ee02314c45"`,
|
|
223
|
+
);
|
|
224
|
+
await queryRunner.query(
|
|
225
|
+
`ALTER TABLE "IncidentKubernetesContainer" DROP CONSTRAINT "FK_411d29efab26561877b148bb218"`,
|
|
226
|
+
);
|
|
227
|
+
await queryRunner.query(
|
|
228
|
+
`ALTER TABLE "IncidentKubernetesContainer" DROP CONSTRAINT "FK_318c277a133ab782087eee5a93b"`,
|
|
229
|
+
);
|
|
230
|
+
await queryRunner.query(
|
|
231
|
+
`ALTER TABLE "IncidentKubernetesResource" DROP CONSTRAINT "FK_bd41e6a5b7368685534190f8e85"`,
|
|
232
|
+
);
|
|
233
|
+
await queryRunner.query(
|
|
234
|
+
`ALTER TABLE "IncidentKubernetesResource" DROP CONSTRAINT "FK_706dad5f9b04e57516310bb1076"`,
|
|
235
|
+
);
|
|
236
|
+
await queryRunner.query(
|
|
237
|
+
`ALTER TABLE "IncidentKubernetesCluster" DROP CONSTRAINT "FK_cb313f51853d6178c1ea498405e"`,
|
|
238
|
+
);
|
|
239
|
+
await queryRunner.query(
|
|
240
|
+
`ALTER TABLE "IncidentKubernetesCluster" DROP CONSTRAINT "FK_4d49468cbea4ece4fe7e2ecf3f8"`,
|
|
241
|
+
);
|
|
242
|
+
await queryRunner.query(`DROP TABLE "AlertDockerResource"`);
|
|
243
|
+
await queryRunner.query(`DROP TABLE "AlertDockerHost"`);
|
|
244
|
+
await queryRunner.query(`DROP TABLE "AlertKubernetesContainer"`);
|
|
245
|
+
await queryRunner.query(`DROP TABLE "AlertKubernetesResource"`);
|
|
246
|
+
await queryRunner.query(`DROP TABLE "AlertKubernetesCluster"`);
|
|
247
|
+
await queryRunner.query(`DROP TABLE "IncidentDockerResource"`);
|
|
248
|
+
await queryRunner.query(`DROP TABLE "IncidentDockerHost"`);
|
|
249
|
+
await queryRunner.query(`DROP TABLE "IncidentKubernetesContainer"`);
|
|
250
|
+
await queryRunner.query(`DROP TABLE "IncidentKubernetesResource"`);
|
|
251
|
+
await queryRunner.query(`DROP TABLE "IncidentKubernetesCluster"`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
export class AttachServiceToIncidentAndAlert1779303924241
|
|
4
|
+
implements MigrationInterface
|
|
5
|
+
{
|
|
6
|
+
public name: string = "AttachServiceToIncidentAndAlert1779303924241";
|
|
7
|
+
|
|
8
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
9
|
+
// IncidentService
|
|
10
|
+
await queryRunner.query(
|
|
11
|
+
`CREATE TABLE "IncidentService" ("incidentId" uuid NOT NULL, "serviceId" uuid NOT NULL, CONSTRAINT "PK_f4278c4ad966e1388f6aa832b98" PRIMARY KEY ("incidentId", "serviceId"))`,
|
|
12
|
+
);
|
|
13
|
+
await queryRunner.query(
|
|
14
|
+
`CREATE INDEX "IDX_9b8061de368e0c38bf78fc1412" ON "IncidentService" ("incidentId") `,
|
|
15
|
+
);
|
|
16
|
+
await queryRunner.query(
|
|
17
|
+
`CREATE INDEX "IDX_780433e4b5ce2df00b7dc2b30b" ON "IncidentService" ("serviceId") `,
|
|
18
|
+
);
|
|
19
|
+
await queryRunner.query(
|
|
20
|
+
`ALTER TABLE "IncidentService" ADD CONSTRAINT "FK_9b8061de368e0c38bf78fc1412d" FOREIGN KEY ("incidentId") REFERENCES "Incident"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
21
|
+
);
|
|
22
|
+
await queryRunner.query(
|
|
23
|
+
`ALTER TABLE "IncidentService" ADD CONSTRAINT "FK_780433e4b5ce2df00b7dc2b30b6" FOREIGN KEY ("serviceId") REFERENCES "Service"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
// AlertService
|
|
27
|
+
await queryRunner.query(
|
|
28
|
+
`CREATE TABLE "AlertService" ("alertId" uuid NOT NULL, "serviceId" uuid NOT NULL, CONSTRAINT "PK_eb1648d9ffb96bf6c38d90c4293" PRIMARY KEY ("alertId", "serviceId"))`,
|
|
29
|
+
);
|
|
30
|
+
await queryRunner.query(
|
|
31
|
+
`CREATE INDEX "IDX_f250e1b41b406c65d007cc08a9" ON "AlertService" ("alertId") `,
|
|
32
|
+
);
|
|
33
|
+
await queryRunner.query(
|
|
34
|
+
`CREATE INDEX "IDX_c93eaf768fb41804783e246b12" ON "AlertService" ("serviceId") `,
|
|
35
|
+
);
|
|
36
|
+
await queryRunner.query(
|
|
37
|
+
`ALTER TABLE "AlertService" ADD CONSTRAINT "FK_f250e1b41b406c65d007cc08a9c" FOREIGN KEY ("alertId") REFERENCES "Alert"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
38
|
+
);
|
|
39
|
+
await queryRunner.query(
|
|
40
|
+
`ALTER TABLE "AlertService" ADD CONSTRAINT "FK_c93eaf768fb41804783e246b129" FOREIGN KEY ("serviceId") REFERENCES "Service"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
45
|
+
await queryRunner.query(
|
|
46
|
+
`ALTER TABLE "AlertService" DROP CONSTRAINT "FK_c93eaf768fb41804783e246b129"`,
|
|
47
|
+
);
|
|
48
|
+
await queryRunner.query(
|
|
49
|
+
`ALTER TABLE "AlertService" DROP CONSTRAINT "FK_f250e1b41b406c65d007cc08a9c"`,
|
|
50
|
+
);
|
|
51
|
+
await queryRunner.query(
|
|
52
|
+
`ALTER TABLE "IncidentService" DROP CONSTRAINT "FK_780433e4b5ce2df00b7dc2b30b6"`,
|
|
53
|
+
);
|
|
54
|
+
await queryRunner.query(
|
|
55
|
+
`ALTER TABLE "IncidentService" DROP CONSTRAINT "FK_9b8061de368e0c38bf78fc1412d"`,
|
|
56
|
+
);
|
|
57
|
+
await queryRunner.query(`DROP TABLE "AlertService"`);
|
|
58
|
+
await queryRunner.query(`DROP TABLE "IncidentService"`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -338,6 +338,10 @@ import { AddOnCallDutyPolicyScheduleOwners1778929624633 } from "./1778929624633-
|
|
|
338
338
|
import { AddOnCallIncomingCallOwnersAndRules1778931537020 } from "./1778931537020-AddOnCallIncomingCallOwnersAndRules";
|
|
339
339
|
import { IncreaseSmtpUsernameLength1779125489830 } from "./1779125489830-IncreaseSmtpUsernameLength";
|
|
340
340
|
import { AddTelemetryRetentionConfig1779199346010 } from "./1779199346010-AddTelemetryRetentionConfig";
|
|
341
|
+
import { DropServiceDependencyTable1779277271302 } from "./1779277271302-DropServiceDependencyTable";
|
|
342
|
+
import { AddTelemetryRetentionToHostDockerKubernetes1779282769946 } from "./1779282769946-AddTelemetryRetentionToHostDockerKubernetes";
|
|
343
|
+
import { AttachKubernetesAndDockerToIncidentAndAlert1779302536475 } from "./1779302536475-AttachKubernetesAndDockerToIncidentAndAlert";
|
|
344
|
+
import { AttachServiceToIncidentAndAlert1779303924241 } from "./1779303924241-AttachServiceToIncidentAndAlert";
|
|
341
345
|
export default [
|
|
342
346
|
InitialMigration,
|
|
343
347
|
MigrationName1717678334852,
|
|
@@ -679,4 +683,8 @@ export default [
|
|
|
679
683
|
AddOnCallIncomingCallOwnersAndRules1778931537020,
|
|
680
684
|
IncreaseSmtpUsernameLength1779125489830,
|
|
681
685
|
AddTelemetryRetentionConfig1779199346010,
|
|
686
|
+
DropServiceDependencyTable1779277271302,
|
|
687
|
+
AddTelemetryRetentionToHostDockerKubernetes1779282769946,
|
|
688
|
+
AttachKubernetesAndDockerToIncidentAndAlert1779302536475,
|
|
689
|
+
AttachServiceToIncidentAndAlert1779303924241,
|
|
682
690
|
];
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
NextFunction,
|
|
8
8
|
} from "../../Server/Utils/Express";
|
|
9
9
|
import TelemetryIngestionKeyService from "../../Server/Services/TelemetryIngestionKeyService";
|
|
10
|
-
import TelemetryIngestionKey from "../../Models/DatabaseModels/TelemetryIngestionKey";
|
|
11
10
|
import Response from "../Utils/Response";
|
|
12
11
|
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
13
12
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
@@ -65,45 +64,14 @@ export default class TelemetryIngest {
|
|
|
65
64
|
throw new BadRequestException("Missing header: x-oneuptime-token");
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
await TelemetryIngestionKeyService.findOneBy({
|
|
72
|
-
query: {
|
|
73
|
-
secretKey: new ObjectID(oneuptimeToken?.toString() || ""),
|
|
74
|
-
},
|
|
75
|
-
select: {
|
|
76
|
-
projectId: true,
|
|
77
|
-
},
|
|
78
|
-
props: {
|
|
79
|
-
isRoot: true,
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
if (!token) {
|
|
84
|
-
logger.error(
|
|
85
|
-
"Invalid service token: " + oneuptimeToken,
|
|
86
|
-
getLogAttributesFromRequest(req as any),
|
|
67
|
+
const projectId: ObjectID | null =
|
|
68
|
+
await TelemetryIngestionKeyService.getProjectIdFromSecretKey(
|
|
69
|
+
oneuptimeToken.toString(),
|
|
87
70
|
);
|
|
88
71
|
|
|
89
|
-
if (isOpenTelemetryAPI) {
|
|
90
|
-
/*
|
|
91
|
-
* then accept the response and return success.
|
|
92
|
-
* do not return error because it causes Otel to retry the request.
|
|
93
|
-
*/
|
|
94
|
-
return Response.sendEmptySuccessResponse(req, res);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
throw new BadRequestException(
|
|
98
|
-
"Invalid service token: " + oneuptimeToken,
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
projectId = token.projectId as ObjectID;
|
|
103
|
-
|
|
104
72
|
if (!projectId) {
|
|
105
73
|
logger.error(
|
|
106
|
-
"
|
|
74
|
+
"Invalid service token: " + oneuptimeToken,
|
|
107
75
|
getLogAttributesFromRequest(req as any),
|
|
108
76
|
);
|
|
109
77
|
|
|
@@ -116,11 +84,11 @@ export default class TelemetryIngest {
|
|
|
116
84
|
}
|
|
117
85
|
|
|
118
86
|
throw new BadRequestException(
|
|
119
|
-
"
|
|
87
|
+
"Invalid service token: " + oneuptimeToken,
|
|
120
88
|
);
|
|
121
89
|
}
|
|
122
90
|
|
|
123
|
-
(req as TelemetryRequest).projectId = projectId
|
|
91
|
+
(req as TelemetryRequest).projectId = projectId;
|
|
124
92
|
|
|
125
93
|
// Tag span with project context for telemetry ingestion observability
|
|
126
94
|
SpanUtil.addAttributesToCurrentSpan({
|
|
@@ -277,7 +277,6 @@ export default class UserMiddleware {
|
|
|
277
277
|
req,
|
|
278
278
|
tenantId,
|
|
279
279
|
userId: new ObjectID(userId),
|
|
280
|
-
isGlobalLogin: oneuptimeRequest.userAuthorization.isGlobalLogin,
|
|
281
280
|
});
|
|
282
281
|
|
|
283
282
|
if (userTenantAccessPermission) {
|
|
@@ -466,9 +465,8 @@ export default class UserMiddleware {
|
|
|
466
465
|
req: ExpressRequest;
|
|
467
466
|
tenantId: ObjectID;
|
|
468
467
|
userId: ObjectID;
|
|
469
|
-
isGlobalLogin: boolean;
|
|
470
468
|
}): Promise<UserTenantAccessPermission | null> {
|
|
471
|
-
const { req, tenantId, userId
|
|
469
|
+
const { req, tenantId, userId } = data;
|
|
472
470
|
|
|
473
471
|
const project: Project | null = await ProjectService.findOneById({
|
|
474
472
|
id: tenantId,
|
|
@@ -484,14 +482,6 @@ export default class UserMiddleware {
|
|
|
484
482
|
throw new TenantNotFoundException("Invalid tenantId");
|
|
485
483
|
}
|
|
486
484
|
|
|
487
|
-
if (!isGlobalLogin) {
|
|
488
|
-
if (!UserMiddleware.doesSsoTokenForProjectExist(req, tenantId, userId)) {
|
|
489
|
-
throw new NotAuthenticatedException(
|
|
490
|
-
"This project requires OneUptime authentication. Please login to access this project.",
|
|
491
|
-
);
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
|
|
495
485
|
if (
|
|
496
486
|
project.requireSsoForLogin &&
|
|
497
487
|
!UserMiddleware.doesSsoTokenForProjectExist(req, tenantId, userId)
|
|
@@ -38,10 +38,8 @@ import MetricService from "./MetricService";
|
|
|
38
38
|
import GlobalConfigService from "./GlobalConfigService";
|
|
39
39
|
import GlobalConfig from "../../Models/DatabaseModels/GlobalConfig";
|
|
40
40
|
import OneUptimeDate from "../../Types/Date";
|
|
41
|
-
import Metric, {
|
|
42
|
-
|
|
43
|
-
ServiceType,
|
|
44
|
-
} from "../../Models/AnalyticsModels/Metric";
|
|
41
|
+
import Metric, { MetricPointType } from "../../Models/AnalyticsModels/Metric";
|
|
42
|
+
import ServiceType from "../../Types/Telemetry/ServiceType";
|
|
45
43
|
import AlertMetricType from "../../Types/Alerts/AlertMetricType";
|
|
46
44
|
import AlertFeedService from "./AlertFeedService";
|
|
47
45
|
import { AlertFeedEventType } from "../../Models/DatabaseModels/AlertFeed";
|
|
@@ -2,6 +2,7 @@ import { WorkflowHostname } from "../EnvironmentConfig";
|
|
|
2
2
|
import ClickhouseDatabase, {
|
|
3
3
|
ClickhouseAppInstance,
|
|
4
4
|
ClickhouseClient,
|
|
5
|
+
ClickhouseIngestInstance,
|
|
5
6
|
} from "../Infrastructure/ClickhouseDatabase";
|
|
6
7
|
import ClusterKeyAuthorization from "../Middleware/ClusterKeyAuthorization";
|
|
7
8
|
import CountBy from "../Types/AnalyticsDatabase/CountBy";
|
|
@@ -67,13 +68,16 @@ export default class AnalyticsDatabaseService<
|
|
|
67
68
|
> extends BaseService {
|
|
68
69
|
public modelType!: { new (): TBaseModel };
|
|
69
70
|
public database!: ClickhouseDatabase;
|
|
71
|
+
public ingestDatabase!: ClickhouseDatabase;
|
|
70
72
|
public model!: TBaseModel;
|
|
71
73
|
public databaseClient!: ClickhouseClient | null;
|
|
74
|
+
public ingestDatabaseClient!: ClickhouseClient | null;
|
|
72
75
|
public statementGenerator!: StatementGenerator<TBaseModel>;
|
|
73
76
|
|
|
74
77
|
public constructor(data: {
|
|
75
78
|
modelType: { new (): TBaseModel };
|
|
76
79
|
database?: ClickhouseDatabase | undefined;
|
|
80
|
+
ingestDatabase?: ClickhouseDatabase | undefined;
|
|
77
81
|
}) {
|
|
78
82
|
super();
|
|
79
83
|
this.modelType = data.modelType;
|
|
@@ -84,7 +88,14 @@ export default class AnalyticsDatabaseService<
|
|
|
84
88
|
this.database = ClickhouseAppInstance; // default database
|
|
85
89
|
}
|
|
86
90
|
|
|
91
|
+
if (data.ingestDatabase) {
|
|
92
|
+
this.ingestDatabase = data.ingestDatabase;
|
|
93
|
+
} else {
|
|
94
|
+
this.ingestDatabase = ClickhouseIngestInstance;
|
|
95
|
+
}
|
|
96
|
+
|
|
87
97
|
this.databaseClient = this.database.getDataSource();
|
|
98
|
+
this.ingestDatabaseClient = this.ingestDatabase.getDataSource();
|
|
88
99
|
|
|
89
100
|
this.statementGenerator = new StatementGenerator<TBaseModel>({
|
|
90
101
|
modelType: this.modelType,
|
|
@@ -98,7 +109,7 @@ export default class AnalyticsDatabaseService<
|
|
|
98
109
|
return;
|
|
99
110
|
}
|
|
100
111
|
|
|
101
|
-
const client: ClickhouseClient = this.
|
|
112
|
+
const client: ClickhouseClient = this.getIngestClient();
|
|
102
113
|
|
|
103
114
|
const tableName: string = this.model.tableName;
|
|
104
115
|
|
|
@@ -1040,6 +1051,8 @@ export default class AnalyticsDatabaseService<
|
|
|
1040
1051
|
public useDefaultDatabase(): void {
|
|
1041
1052
|
this.database = ClickhouseAppInstance;
|
|
1042
1053
|
this.databaseClient = this.database.getDataSource();
|
|
1054
|
+
this.ingestDatabase = ClickhouseIngestInstance;
|
|
1055
|
+
this.ingestDatabaseClient = this.ingestDatabase.getDataSource();
|
|
1043
1056
|
}
|
|
1044
1057
|
|
|
1045
1058
|
@CaptureSpan()
|
|
@@ -1100,6 +1113,25 @@ export default class AnalyticsDatabaseService<
|
|
|
1100
1113
|
return this.databaseClient;
|
|
1101
1114
|
}
|
|
1102
1115
|
|
|
1116
|
+
private getIngestClient(): ClickhouseClient {
|
|
1117
|
+
if (!this.ingestDatabase) {
|
|
1118
|
+
this.useDefaultDatabase();
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
if (!this.ingestDatabaseClient && this.ingestDatabase) {
|
|
1122
|
+
this.ingestDatabaseClient = this.ingestDatabase.getDataSource();
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
if (!this.ingestDatabaseClient) {
|
|
1126
|
+
throw new Exception(
|
|
1127
|
+
ExceptionCode.DatabaseNotConnectedException,
|
|
1128
|
+
"ClickHouse ingest client is not connected",
|
|
1129
|
+
);
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
return this.ingestDatabaseClient;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1103
1135
|
protected async onUpdateSuccess(
|
|
1104
1136
|
onUpdate: OnUpdate<TBaseModel>,
|
|
1105
1137
|
_updatedItemIds: Array<ObjectID>
|
|
@@ -42,10 +42,8 @@ import MetricService from "./MetricService";
|
|
|
42
42
|
import GlobalConfigService from "./GlobalConfigService";
|
|
43
43
|
import GlobalConfig from "../../Models/DatabaseModels/GlobalConfig";
|
|
44
44
|
import IncidentMetricType from "../../Types/Incident/IncidentMetricType";
|
|
45
|
-
import Metric, {
|
|
46
|
-
|
|
47
|
-
ServiceType,
|
|
48
|
-
} from "../../Models/AnalyticsModels/Metric";
|
|
45
|
+
import Metric, { MetricPointType } from "../../Models/AnalyticsModels/Metric";
|
|
46
|
+
import ServiceType from "../../Types/Telemetry/ServiceType";
|
|
49
47
|
import OneUptimeDate from "../../Types/Date";
|
|
50
48
|
import TelemetryUtil from "../Utils/Telemetry/Telemetry";
|
|
51
49
|
import logger, { LogAttributes } from "../Utils/Logger";
|
package/Server/Services/Index.ts
CHANGED
|
@@ -161,7 +161,6 @@ import WorkflowLogService from "./WorkflowLogService";
|
|
|
161
161
|
import WorkflowService from "./WorkflowService";
|
|
162
162
|
import WorkflowVariablesService from "./WorkflowVariableService";
|
|
163
163
|
import AnalyticsBaseModel from "../../Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel";
|
|
164
|
-
import ServiceDependencyService from "./ServiceDependencyService";
|
|
165
164
|
import TelemetryExceptionService from "./TelemetryExceptionService";
|
|
166
165
|
import ExceptionInstanceService from "./ExceptionInstanceService";
|
|
167
166
|
import ScheduledMaintenanceTemplateService from "./ScheduledMaintenanceTemplateService";
|
|
@@ -388,7 +387,6 @@ const services: Array<BaseService> = [
|
|
|
388
387
|
ServiceService,
|
|
389
388
|
ServiceOwnerTeamService,
|
|
390
389
|
ServiceOwnerUserService,
|
|
391
|
-
ServiceDependencyService,
|
|
392
390
|
ServiceMonitorService,
|
|
393
391
|
ServiceCodeRepositoryService,
|
|
394
392
|
|