feat: add opentelemetry
This commit is contained in:
parent
d9074b4365
commit
a2a45d90ba
@ -30,6 +30,11 @@
|
|||||||
"@nestjs/mapped-types": "*",
|
"@nestjs/mapped-types": "*",
|
||||||
"@nestjs/microservices": "^11.1.12",
|
"@nestjs/microservices": "^11.1.12",
|
||||||
"@nestjs/platform-express": "^11.0.1",
|
"@nestjs/platform-express": "^11.0.1",
|
||||||
|
"@opentelemetry/auto-instrumentations-node": "^0.72.0",
|
||||||
|
"@opentelemetry/exporter-trace-otlp-grpc": "^0.214.0",
|
||||||
|
"@opentelemetry/resources": "^2.6.1",
|
||||||
|
"@opentelemetry/sdk-node": "^0.214.0",
|
||||||
|
"@opentelemetry/semantic-conventions": "^1.40.0",
|
||||||
"@prisma/adapter-pg": "^7.3.0",
|
"@prisma/adapter-pg": "^7.3.0",
|
||||||
"@prisma/client": "^7.3.0",
|
"@prisma/client": "^7.3.0",
|
||||||
"@teacinema/common": "^1.0.0",
|
"@teacinema/common": "^1.0.0",
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { NestFactory } from '@nestjs/core'
|
|||||||
import { createGrpcServer } from '@/infra/grpc/grpc.server'
|
import { createGrpcServer } from '@/infra/grpc/grpc.server'
|
||||||
|
|
||||||
import { AppModule } from './app.module'
|
import { AppModule } from './app.module'
|
||||||
|
import './observability/tracing'
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create(AppModule)
|
const app = await NestFactory.create(AppModule)
|
||||||
|
|||||||
27
src/observability/tracing.ts
Normal file
27
src/observability/tracing.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'
|
||||||
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
|
||||||
|
import { resourceFromAttributes } from '@opentelemetry/resources'
|
||||||
|
import { NodeSDK } from '@opentelemetry/sdk-node'
|
||||||
|
import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions'
|
||||||
|
|
||||||
|
const traceExporter = new OTLPTraceExporter({
|
||||||
|
url: 'http://jaeger:4317'
|
||||||
|
})
|
||||||
|
|
||||||
|
const otelSdk = new NodeSDK({
|
||||||
|
traceExporter,
|
||||||
|
resource: resourceFromAttributes({
|
||||||
|
[ATTR_SERVICE_NAME]: 'auth-service'
|
||||||
|
}),
|
||||||
|
instrumentations: [
|
||||||
|
getNodeAutoInstrumentations({
|
||||||
|
'@opentelemetry/instrumentation-grpc': { enabled: true },
|
||||||
|
'@opentelemetry/instrumentation-http': { enabled: true },
|
||||||
|
'@opentelemetry/instrumentation-nestjs-core': { enabled: true },
|
||||||
|
'@opentelemetry/instrumentation-redis': { enabled: true },
|
||||||
|
'@opentelemetry/instrumentation-pg': { enabled: true }
|
||||||
|
})
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
otelSdk.start()
|
||||||
Loading…
x
Reference in New Issue
Block a user