Skip to content

Commit e175291

Browse files
committed
feat: update migration for index creation and refactor TelemetryUtil usage in OtelIngest
1 parent 8150eb0 commit e175291

File tree

5 files changed

+38
-27
lines changed

5 files changed

+38
-27
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
import { MigrationInterface, QueryRunner } from "typeorm";
22

33
export class MigrationName1743521461137 implements MigrationInterface {
4-
public name = 'MigrationName1743521461137'
4+
public name = "MigrationName1743521461137";
55

6-
public async up(queryRunner: QueryRunner): Promise<void> {
7-
await queryRunner.query(`CREATE INDEX "IDX_b2dd2b4597d3514ee4209ccd69" ON "Label" ("name") `);
8-
await queryRunner.query(`CREATE INDEX "IDX_2dfba2253270684804431fd3c8" ON "MetricType" ("name") `);
9-
}
10-
11-
public async down(queryRunner: QueryRunner): Promise<void> {
12-
await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type": "RestrictionTimes", "value": {"restictionType": "None", "dayRestrictionTimes": null, "weeklyRestrictionTimes": []}}'`);
13-
await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type": "Recurring", "value": {"intervalType": "Day", "intervalCount": {"_type": "PositiveNumber", "value": 1}}}'`);
14-
}
6+
public async up(queryRunner: QueryRunner): Promise<void> {
7+
await queryRunner.query(
8+
`CREATE INDEX "IDX_b2dd2b4597d3514ee4209ccd69" ON "Label" ("name") `,
9+
);
10+
await queryRunner.query(
11+
`CREATE INDEX "IDX_2dfba2253270684804431fd3c8" ON "MetricType" ("name") `,
12+
);
13+
}
1514

15+
public async down(queryRunner: QueryRunner): Promise<void> {
16+
await queryRunner.query(
17+
`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type": "RestrictionTimes", "value": {"restictionType": "None", "dayRestrictionTimes": null, "weeklyRestrictionTimes": []}}'`,
18+
);
19+
await queryRunner.query(
20+
`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type": "Recurring", "value": {"intervalType": "Day", "intervalCount": {"_type": "PositiveNumber", "value": 1}}}'`,
21+
);
22+
}
1623
}

Common/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -253,5 +253,5 @@ export default [
253253
MigrationName1743006662678,
254254
MigrationName1743186793413,
255255
MigrationName1743518485566,
256-
MigrationName1743521461137
256+
MigrationName1743521461137,
257257
];

Common/Server/Utils/Monitor/MonitorResource.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -964,16 +964,16 @@ export default class MonitorResourceUtil {
964964
});
965965

966966
// Metric name to serviceId map
967-
// example: "cpu.usage" -> [serviceId1, serviceId2]
968-
// since these are monitor metrics. They dont belong to any service so we can keep the array empty.
969-
const metricNameServiceNameMap: Dictionary<Array<ObjectID>> = {};
970-
971-
for(const metric of itemsToSave) {
972-
const metricName: string = metric.name!;
973-
if(!metricNameServiceNameMap[metricName]) {
974-
metricNameServiceNameMap[metricName] = [];
975-
}
967+
// example: "cpu.usage" -> [serviceId1, serviceId2]
968+
// since these are monitor metrics. They dont belong to any service so we can keep the array empty.
969+
const metricNameServiceNameMap: Dictionary<Array<ObjectID>> = {};
970+
971+
for (const metric of itemsToSave) {
972+
const metricName: string = metric.name!;
973+
if (!metricNameServiceNameMap[metricName]) {
974+
metricNameServiceNameMap[metricName] = [];
976975
}
976+
}
977977

978978
// index metrics
979979
TelemetryUtil.indexMetricNameServiceNameMap({

Common/Server/Utils/Telemetry/Telemetry.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ export default class TelemetryUtil {
5151

5252
for (const telemetryServiceId of telemetryServicesInMap) {
5353
if (
54-
!telemetryServiceIds.filter((serviceId: ObjectID) => {
54+
telemetryServiceIds.filter((serviceId: ObjectID) => {
5555
return serviceId.toString() === telemetryServiceId.toString();
56-
}).length
56+
}).length === 0
5757
) {
5858
isSame = false;
5959
// add the service id to the list
@@ -68,7 +68,7 @@ export default class TelemetryUtil {
6868
if (!isSame) {
6969
// update metric type
7070
await MetricTypeService.updateOneById({
71-
_id: metricType.id!,
71+
id: metricType.id!,
7272
data: {
7373
telemetryServices: metricType.telemetryServices || [],
7474
},

OpenTelemetryIngest/Services/OtelIngest.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,14 @@ export default class OtelIngestService {
441441
}
442442
}
443443

444+
TelemetryUtil.indexMetricNameServiceNameMap({
445+
metricNameServiceNameMap: metricNameServiceNameMap,
446+
projectId: (req as TelemetryRequest).projectId,
447+
}).catch((err: Error) => {
448+
logger.error("Error indexing metric name service name map");
449+
logger.error(err);
450+
});
451+
444452
await Promise.all([
445453
MetricService.createMany({
446454
items: dbMetrics,
@@ -453,10 +461,6 @@ export default class OtelIngestService {
453461
projectId: (req as TelemetryRequest).projectId,
454462
telemetryType: TelemetryType.Metric,
455463
}),
456-
TelemetryUtil.indexMetricNameServiceNameMap({
457-
metricNameServiceNameMap: metricNameServiceNameMap,
458-
projectId: (req as TelemetryRequest).projectId,
459-
}),
460464
OTelIngestService.recordDataIngestedUsgaeBilling({
461465
services: serviceDictionary,
462466
projectId: (req as TelemetryRequest).projectId,

0 commit comments

Comments
 (0)