$ cnpm install @prisma/instrumentation
OTEL - OpenTelemetry compliant instrumentation for Prisma Client.
$ npm install @prisma/instrumentation
import { registerInstrumentations } from '@opentelemetry/instrumentation'
import { PrismaInstrumentation } from '@prisma/instrumentation'
registerInstrumentations({
instrumentations: [new PrismaInstrumentation()],
})
Exporting traces to Jaeger Tracing.
import { context, trace } from '@opentelemetry/api'
import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks'
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
import { registerInstrumentations } from '@opentelemetry/instrumentation'
import { resourceFromAttributes } from '@opentelemetry/resources'
import { BasicTracerProvider, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions'
import { PrismaInstrumentation } from '@prisma/instrumentation'
import { PrismaClient } from '.prisma/client'
const contextManager = new AsyncLocalStorageContextManager().enable()
context.setGlobalContextManager(contextManager)
const otlpTraceExporter = new OTLPTraceExporter()
const provider = new BasicTracerProvider({
resource: resourceFromAttributes({
[ATTR_SERVICE_NAME]: 'test-tracing-service',
[ATTR_SERVICE_VERSION]: '1.0.0',
}),
spanProcessors: [new SimpleSpanProcessor(otlpTraceExporter)],
})
trace.setGlobalTracerProvider(provider)
registerInstrumentations({
instrumentations: [new PrismaInstrumentation()],
})
async function main() {
const prisma = new PrismaClient()
const email = `user.${Date.now()}@prisma.io`
await prisma.user.create({
data: {
email: email,
},
})
}
main()
Copyright 2013 - present © cnpmjs.org | Home |