chore(server): switch to prometheus (#12352)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **New Features**
  - Added platform-specific monitoring integration for Google Cloud Platform (GCP) in multiple services, enabling automated pod monitoring for deployments on GCP.

- **Chores**
  - Removed an unused dependency related to Google Cloud monitoring from the backend server package.

- **Refactor**
  - Updated internal monitoring implementation by removing a previously used metric reader method for GCP integration.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
forehalo
2025-05-19 05:06:42 +00:00
parent 76a8bf2834
commit d5e2fee317
7 changed files with 48 additions and 52 deletions

View File

@@ -0,0 +1,12 @@
{{- if eq .Values.global.deployment.platform "gcp" -}}
apiVersion: monitoring.googleapis.com/v1
kind: ClusterPodMonitoring
metadata:
name: "{{ include "doc.fullname" . }}"
spec:
selector:
{{- include "doc.selectorLabels" . | nindent 4 }}
endpoints:
- port: 9464
interval: 30s
{{- end }}

View File

@@ -0,0 +1,12 @@
{{- if eq .Values.global.deployment.platform "gcp" -}}
apiVersion: monitoring.googleapis.com/v1
kind: ClusterPodMonitoring
metadata:
name: "{{ include "graphql.fullname" . }}"
spec:
selector:
{{- include "graphql.selectorLabels" . | nindent 4 }}
endpoints:
- port: 9464
interval: 30s
{{- end }}

View File

@@ -0,0 +1,12 @@
{{- if eq .Values.global.deployment.platform "gcp" -}}
apiVersion: monitoring.googleapis.com/v1
kind: ClusterPodMonitoring
metadata:
name: "{{ include "renderer.fullname" . }}"
spec:
selector:
{{- include "renderer.selectorLabels" . | nindent 4 }}
endpoints:
- port: 9464
interval: 30s
{{- end }}

View File

@@ -0,0 +1,12 @@
{{- if eq .Values.global.deployment.platform "gcp" -}}
apiVersion: monitoring.googleapis.com/v1
kind: ClusterPodMonitoring
metadata:
name: "{{ include "sync.fullname" . }}"
spec:
selector:
{{- include "sync.selectorLabels" . | nindent 4 }}
endpoints:
- port: 9464
interval: 30s
{{- end }}

View File

@@ -36,7 +36,6 @@
"@aws-sdk/client-s3": "^3.779.0",
"@aws-sdk/s3-request-presigner": "^3.779.0",
"@fal-ai/serverless-client": "^0.15.0",
"@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.20.0",
"@google-cloud/opentelemetry-cloud-trace-exporter": "^2.4.1",
"@google-cloud/opentelemetry-resource-util": "^2.4.0",
"@nestjs-cls/transactional": "^2.6.1",

View File

@@ -1,13 +1,8 @@
import { MetricExporter } from '@google-cloud/opentelemetry-cloud-monitoring-exporter';
import { TraceExporter } from '@google-cloud/opentelemetry-cloud-trace-exporter';
import { GcpDetectorSync } from '@google-cloud/opentelemetry-resource-util';
import { Global, Injectable, Module, 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,
@@ -31,17 +26,6 @@ export class GCloudOpentelemetryOptionsFactory extends OpentelemetryOptionsFacto
.merge(new GcpDetectorSync().detect());
}
override getMetricReader(): MetricReader {
return new PeriodicExportingMetricReader({
exportIntervalMillis: 30000,
exportTimeoutMillis: 10000,
exporter: new MetricExporter({
prefix: 'custom.googleapis.com',
}),
metricProducers: this.getMetricsProducers(),
});
}
override getSpanExporter(): SpanExporter {
return new TraceExporter();
}

View File

@@ -917,7 +917,6 @@ __metadata:
"@aws-sdk/s3-request-presigner": "npm:^3.779.0"
"@faker-js/faker": "npm:^9.6.0"
"@fal-ai/serverless-client": "npm:^0.15.0"
"@google-cloud/opentelemetry-cloud-monitoring-exporter": "npm:^0.20.0"
"@google-cloud/opentelemetry-cloud-trace-exporter": "npm:^2.4.1"
"@google-cloud/opentelemetry-resource-util": "npm:^2.4.0"
"@nestjs-cls/transactional": "npm:^2.6.1"
@@ -5988,23 +5987,6 @@ __metadata:
languageName: node
linkType: hard
"@google-cloud/opentelemetry-cloud-monitoring-exporter@npm:^0.20.0":
version: 0.20.0
resolution: "@google-cloud/opentelemetry-cloud-monitoring-exporter@npm:0.20.0"
dependencies:
"@google-cloud/opentelemetry-resource-util": "npm:^2.4.0"
"@google-cloud/precise-date": "npm:^4.0.0"
google-auth-library: "npm:^9.0.0"
googleapis: "npm:^137.0.0"
peerDependencies:
"@opentelemetry/api": ^1.0.0
"@opentelemetry/core": ^1.0.0
"@opentelemetry/resources": ^1.0.0
"@opentelemetry/sdk-metrics": ^1.0.0
checksum: 10/b71f9335e32e9f5caf9b3c9511eb7029db5cc1d3d86c8e35f5ea25a47ee39ef8bb1fb635d2f454c933f229351841f08453cb6f89a41f0bd6dab2011c783b2c4b
languageName: node
linkType: hard
"@google-cloud/opentelemetry-cloud-trace-exporter@npm:^2.4.1":
version: 2.4.1
resolution: "@google-cloud/opentelemetry-cloud-trace-exporter@npm:2.4.1"
@@ -6034,13 +6016,6 @@ __metadata:
languageName: node
linkType: hard
"@google-cloud/precise-date@npm:^4.0.0":
version: 4.0.0
resolution: "@google-cloud/precise-date@npm:4.0.0"
checksum: 10/7c897bcad6a40efd77df165fca8a57bd3fbb84e6ace848085b16233c1086c32c06258caa88b9c9aaf7d4029ded13d01b57d1b5fd808dc5722cf57626ac4a386b
languageName: node
linkType: hard
"@google/generative-ai@npm:^0.24.0":
version: 0.24.1
resolution: "@google/generative-ai@npm:0.24.1"
@@ -22728,16 +22703,6 @@ __metadata:
languageName: node
linkType: hard
"googleapis@npm:^137.0.0":
version: 137.1.0
resolution: "googleapis@npm:137.1.0"
dependencies:
google-auth-library: "npm:^9.0.0"
googleapis-common: "npm:^7.0.0"
checksum: 10/5d7cee8a7293701a19db3ee515272fbb932c343d1640ca21a3996dc717649817a6d169cd8370ee6e535bd2d48cb70f0b426abe691b22830d588419ebe95b5740
languageName: node
linkType: hard
"got@npm:^11.7.0, got@npm:^11.8.5":
version: 11.8.6
resolution: "got@npm:11.8.6"