| 12345678910111213141516171819202122232425262728293031323334353637 |
- import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
- import { Resource } from '@opentelemetry/resources'
- import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
- import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http/build/esnext'
- import { WebTracerProvider } from '@opentelemetry/sdk-trace-web'
- import { ZoneContextManager } from '@opentelemetry/context-zone'
- import { registerInstrumentations } from '@opentelemetry/instrumentation'
- import { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web'
- import getMeta from './utils/meta'
- if (getMeta('ol-useOpenTelemetry')) {
- const resource = new Resource({
- [SemanticResourceAttributes.SERVICE_NAME]: 'frontend',
- [SemanticResourceAttributes.SERVICE_NAMESPACE]: 'Overleaf',
- })
- const provider = new WebTracerProvider({ resource })
- provider.addSpanProcessor(
- new SimpleSpanProcessor(
- new OTLPTraceExporter({
- url: `https://${window.location.hostname}/otlp/v1/traces`,
- })
- )
- )
- provider.register({
- // Changing default contextManager to use ZoneContextManager - supports asynchronous operations - optional
- contextManager: new ZoneContextManager(),
- })
- // Registering instrumentations
- registerInstrumentations({
- instrumentations: [getWebAutoInstrumentations()],
- })
- }
|