a3acbf4f55
Added docs that mention: - important code-snippets from example - links to official OTEL docs - document NEXT_VERBOSE_OTEL - explain what we provide out of the box - what we don’t - explain how you can add tracing yourself - explain how instrumentation.js works - it can be used for different types of instrumentation that don't use OTEL. It's just a hook called when starting up a new node environment. - list of all spans we instrument by default fix NEXT-799 ([link](https://linear.app/vercel/issue/NEXT-799)) --------- Co-authored-by: S3Prototype <liuqahs15@gmail.com>
22 lines
876 B
TypeScript
22 lines
876 B
TypeScript
import { Resource } from '@opentelemetry/resources'
|
|
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
|
|
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
|
|
import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
|
|
|
|
// You can use gRPC exporter instead
|
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
|
|
|
|
export function register() {
|
|
// Next.js expects you to use to register TraceProvider. It won't work if you use NodeSDK.
|
|
// We use registered provider to create traces inside of Next.js internals.
|
|
const provider = new NodeTracerProvider({
|
|
resource: new Resource({
|
|
[SemanticResourceAttributes.SERVICE_NAME]: 'next-app',
|
|
}),
|
|
})
|
|
|
|
provider.addSpanProcessor(new SimpleSpanProcessor(new OTLPTraceExporter({})))
|
|
|
|
// Make sure to register you provider
|
|
provider.register()
|
|
}
|