From e630290e7c4184334ae81f0be59836c869c63e09 Mon Sep 17 00:00:00 2001 From: darkskygit Date: Mon, 30 Dec 2024 02:25:01 +0000 Subject: [PATCH] fix(server): cluster metrics duplicate (#9416) --- .../backend/server/src/plugins/gcloud/metrics.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/backend/server/src/plugins/gcloud/metrics.ts b/packages/backend/server/src/plugins/gcloud/metrics.ts index a3c558365a..c95aced12d 100644 --- a/packages/backend/server/src/plugins/gcloud/metrics.ts +++ b/packages/backend/server/src/plugins/gcloud/metrics.ts @@ -2,19 +2,33 @@ import { MetricExporter } from '@google-cloud/opentelemetry-cloud-monitoring-exp import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter'; import { GcpDetectorSync } from '@google-cloud/opentelemetry-resource-util'; import { Global, Provider } from '@nestjs/common'; +import { getEnv } from '@opentelemetry/core'; import { Resource } from '@opentelemetry/resources'; import { MetricReader, PeriodicExportingMetricReader, } from '@opentelemetry/sdk-metrics'; import { SpanExporter } from '@opentelemetry/sdk-trace-node'; +import { + SEMRESATTRS_CONTAINER_NAME, + SEMRESATTRS_K8S_POD_NAME, +} from '@opentelemetry/semantic-conventions'; import { OptionalModule } from '../../base'; import { OpentelemetryFactory } from '../../base/metrics'; export class GCloudOpentelemetryFactory extends OpentelemetryFactory { override getResource(): Resource { - return super.getResource().merge(new GcpDetectorSync().detect()); + const env = getEnv(); + return super + .getResource() + .merge( + new Resource({ + [SEMRESATTRS_K8S_POD_NAME]: env.HOSTNAME, + [SEMRESATTRS_CONTAINER_NAME]: env.CONTAINER_NAME, + }) + ) + .merge(new GcpDetectorSync().detect()); } override getMetricReader(): MetricReader {