@obtrace/browser 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,8 @@ import { BatchSpanProcessor, TraceIdRatioBasedSampler, ParentBasedSampler } from
4
4
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
5
5
  import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
6
6
  import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
7
+ import { LoggerProvider, BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
8
+ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
7
9
  import { Resource } from "@opentelemetry/resources";
8
10
  import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
9
11
  import { FetchInstrumentation } from "@opentelemetry/instrumentation-fetch";
@@ -62,6 +64,14 @@ export function setupOtelWeb(config) {
62
64
  ],
63
65
  });
64
66
  metrics.setGlobalMeterProvider(meterProvider);
67
+ const logExporter = new OTLPLogExporter({
68
+ url: `${baseUrl}/otlp/v1/logs`,
69
+ headers: authHeaders,
70
+ });
71
+ const loggerProvider = new LoggerProvider({
72
+ resource: resource,
73
+ processors: [new BatchLogRecordProcessor(logExporter)],
74
+ });
65
75
  const ingestPattern = new RegExp(`^${baseUrl.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`);
66
76
  const instrumentations = [];
67
77
  if (config.instrumentGlobalFetch !== false) {
@@ -84,8 +94,8 @@ export function setupOtelWeb(config) {
84
94
  tracerProvider,
85
95
  instrumentations,
86
96
  });
87
- const tracer = trace.getTracer("@obtrace/sdk-browser", "2.1.0");
88
- const meter = metrics.getMeter("@obtrace/sdk-browser", "2.1.0");
97
+ const tracer = trace.getTracer("@obtrace/sdk-browser", "2.2.0");
98
+ const meter = metrics.getMeter("@obtrace/sdk-browser", "2.2.0");
89
99
  const forceFlush = async () => {
90
100
  try {
91
101
  await tracerProvider.forceFlush();
@@ -95,11 +105,16 @@ export function setupOtelWeb(config) {
95
105
  await meterProvider.forceFlush();
96
106
  }
97
107
  catch { }
108
+ try {
109
+ await loggerProvider.forceFlush();
110
+ }
111
+ catch { }
98
112
  };
99
113
  const shutdown = async () => {
100
114
  await forceFlush();
101
115
  await tracerProvider.shutdown();
102
116
  await meterProvider.shutdown();
117
+ await loggerProvider.shutdown();
103
118
  };
104
- return { tracer, meter, shutdown, forceFlush };
119
+ return { tracer, meter, loggerProvider, shutdown, forceFlush };
105
120
  }
@@ -1,2 +1,3 @@
1
1
  import { type Tracer } from "@opentelemetry/api";
2
- export declare function installConsoleCapture(tracer: Tracer, sessionId: string): () => void;
2
+ import type { Logger } from "@opentelemetry/api-logs";
3
+ export declare function installConsoleCapture(tracer: Tracer, logger: Logger, sessionId: string): () => void;
@@ -1,2 +1,3 @@
1
1
  import { type Tracer } from "@opentelemetry/api";
2
- export declare function installBrowserErrorHooks(tracer: Tracer, sessionId?: string): () => void;
2
+ import type { Logger } from "@opentelemetry/api-logs";
3
+ export declare function installBrowserErrorHooks(tracer: Tracer, logger: Logger, sessionId?: string): () => void;
@@ -1,8 +1,10 @@
1
1
  import { type Tracer, type Meter } from "@opentelemetry/api";
2
+ import { LoggerProvider } from "@opentelemetry/sdk-logs";
2
3
  import type { ObtraceSDKConfig } from "../shared/types";
3
4
  export interface OtelHandles {
4
5
  tracer: Tracer;
5
6
  meter: Meter;
7
+ loggerProvider: LoggerProvider;
6
8
  shutdown: () => Promise<void>;
7
9
  forceFlush: () => Promise<void>;
8
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obtrace/browser",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Obtrace Browser SDK with frontend wrappers",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -66,6 +66,7 @@
66
66
  "dependencies": {
67
67
  "@opentelemetry/api": "^1.9.0",
68
68
  "@opentelemetry/context-zone": "^1.30.0",
69
+ "@opentelemetry/exporter-logs-otlp-http": "^0.214.0",
69
70
  "@opentelemetry/exporter-metrics-otlp-http": "^0.57.0",
70
71
  "@opentelemetry/exporter-trace-otlp-http": "^0.57.0",
71
72
  "@opentelemetry/instrumentation-document-load": "^0.43.0",
@@ -73,6 +74,7 @@
73
74
  "@opentelemetry/instrumentation-user-interaction": "^0.43.0",
74
75
  "@opentelemetry/instrumentation-xml-http-request": "^0.57.0",
75
76
  "@opentelemetry/resources": "^1.30.0",
77
+ "@opentelemetry/sdk-logs": "^0.214.0",
76
78
  "@opentelemetry/sdk-metrics": "^1.30.0",
77
79
  "@opentelemetry/sdk-trace-web": "^1.30.0",
78
80
  "@opentelemetry/semantic-conventions": "^1.30.0",