feat: add opentelemetry
This commit is contained in:
parent
4dcbf62ead
commit
36c058f885
@ -28,6 +28,11 @@
|
||||
"@nestjs/microservices": "^11.1.12",
|
||||
"@nestjs/platform-express": "^11.0.1",
|
||||
"@nestjs/swagger": "^11.2.5",
|
||||
"@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",
|
||||
"@teacinema/common": "^1.0.0",
|
||||
"@teacinema/contracts": "^1.0.0",
|
||||
"@teacinema/passport": "^1.0.0",
|
||||
|
||||
@ -6,6 +6,7 @@ import cookieParser from 'cookie-parser'
|
||||
|
||||
import { AppModule } from './core/app.module'
|
||||
import { getCorsConfig, swaggerConfig, validationPipe } from './core/config'
|
||||
import './observability/tracing'
|
||||
import { GrpcExceptionFilter } from './shared/filters'
|
||||
|
||||
async function bootstrap() {
|
||||
|
||||
26
src/observability/tracing.ts
Normal file
26
src/observability/tracing.ts
Normal file
@ -0,0 +1,26 @@
|
||||
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]: 'gateway-service'
|
||||
}),
|
||||
instrumentations: [
|
||||
getNodeAutoInstrumentations({
|
||||
'@opentelemetry/instrumentation-http': { enabled: true },
|
||||
'@opentelemetry/instrumentation-express': { enabled: true },
|
||||
'@opentelemetry/instrumentation-nestjs-core': { enabled: true },
|
||||
'@opentelemetry/instrumentation-grpc': { enabled: true },
|
||||
})
|
||||
]
|
||||
})
|
||||
|
||||
otelSdk.start()
|
||||
Loading…
x
Reference in New Issue
Block a user