react-native-otel 0.1.0 → 0.1.5
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.
- package/README.md +1137 -13
- package/lib/module/context/span-context.js +56 -5
- package/lib/module/context/span-context.js.map +1 -1
- package/lib/module/core/ids.js +21 -7
- package/lib/module/core/ids.js.map +1 -1
- package/lib/module/core/meter.js +101 -12
- package/lib/module/core/meter.js.map +1 -1
- package/lib/module/core/processor.js +28 -0
- package/lib/module/core/processor.js.map +1 -0
- package/lib/module/core/resource.js +1 -0
- package/lib/module/core/resource.js.map +1 -1
- package/lib/module/core/sampler.js +55 -0
- package/lib/module/core/sampler.js.map +1 -0
- package/lib/module/core/span.js +15 -1
- package/lib/module/core/span.js.map +1 -1
- package/lib/module/core/tracer.js +94 -5
- package/lib/module/core/tracer.js.map +1 -1
- package/lib/module/exporters/console-exporter.js +8 -1
- package/lib/module/exporters/console-exporter.js.map +1 -1
- package/lib/module/exporters/multi-exporter.js +57 -0
- package/lib/module/exporters/multi-exporter.js.map +1 -0
- package/lib/module/exporters/otlp-http-exporter.js +159 -25
- package/lib/module/exporters/otlp-http-exporter.js.map +1 -1
- package/lib/module/exporters/wal.js +129 -0
- package/lib/module/exporters/wal.js.map +1 -0
- package/lib/module/index.js +16 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/instrumentation/errors.js +21 -0
- package/lib/module/instrumentation/errors.js.map +1 -1
- package/lib/module/instrumentation/expo-router.js +76 -0
- package/lib/module/instrumentation/expo-router.js.map +1 -0
- package/lib/module/instrumentation/fetch.js +99 -0
- package/lib/module/instrumentation/fetch.js.map +1 -0
- package/lib/module/instrumentation/lifecycle.js +6 -1
- package/lib/module/instrumentation/lifecycle.js.map +1 -1
- package/lib/module/instrumentation/linking.js +65 -0
- package/lib/module/instrumentation/linking.js.map +1 -0
- package/lib/module/instrumentation/network.js +35 -0
- package/lib/module/instrumentation/network.js.map +1 -1
- package/lib/module/instrumentation/startup.js +46 -0
- package/lib/module/instrumentation/startup.js.map +1 -0
- package/lib/module/sdk.js +87 -5
- package/lib/module/sdk.js.map +1 -1
- package/lib/module/version.js +7 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/src/context/span-context.d.ts +14 -4
- package/lib/typescript/src/context/span-context.d.ts.map +1 -1
- package/lib/typescript/src/core/ids.d.ts.map +1 -1
- package/lib/typescript/src/core/meter.d.ts +12 -2
- package/lib/typescript/src/core/meter.d.ts.map +1 -1
- package/lib/typescript/src/core/processor.d.ts +29 -0
- package/lib/typescript/src/core/processor.d.ts.map +1 -0
- package/lib/typescript/src/core/resource.d.ts +3 -0
- package/lib/typescript/src/core/resource.d.ts.map +1 -1
- package/lib/typescript/src/core/sampler.d.ts +31 -0
- package/lib/typescript/src/core/sampler.d.ts.map +1 -0
- package/lib/typescript/src/core/span.d.ts +16 -0
- package/lib/typescript/src/core/span.d.ts.map +1 -1
- package/lib/typescript/src/core/tracer.d.ts +16 -6
- package/lib/typescript/src/core/tracer.d.ts.map +1 -1
- package/lib/typescript/src/exporters/console-exporter.d.ts.map +1 -1
- package/lib/typescript/src/exporters/multi-exporter.d.ts +28 -0
- package/lib/typescript/src/exporters/multi-exporter.d.ts.map +1 -0
- package/lib/typescript/src/exporters/otlp-http-exporter.d.ts +20 -2
- package/lib/typescript/src/exporters/otlp-http-exporter.d.ts.map +1 -1
- package/lib/typescript/src/exporters/types.d.ts +17 -3
- package/lib/typescript/src/exporters/types.d.ts.map +1 -1
- package/lib/typescript/src/exporters/wal.d.ts +21 -0
- package/lib/typescript/src/exporters/wal.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +15 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/instrumentation/errors.d.ts.map +1 -1
- package/lib/typescript/src/instrumentation/expo-router.d.ts +31 -0
- package/lib/typescript/src/instrumentation/expo-router.d.ts.map +1 -0
- package/lib/typescript/src/instrumentation/fetch.d.ts +18 -0
- package/lib/typescript/src/instrumentation/fetch.d.ts.map +1 -0
- package/lib/typescript/src/instrumentation/lifecycle.d.ts.map +1 -1
- package/lib/typescript/src/instrumentation/linking.d.ts +23 -0
- package/lib/typescript/src/instrumentation/linking.d.ts.map +1 -0
- package/lib/typescript/src/instrumentation/network.d.ts.map +1 -1
- package/lib/typescript/src/instrumentation/startup.d.ts +16 -0
- package/lib/typescript/src/instrumentation/startup.d.ts.map +1 -0
- package/lib/typescript/src/sdk.d.ts +35 -0
- package/lib/typescript/src/sdk.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +2 -0
- package/lib/typescript/src/version.d.ts.map +1 -0
- package/package.json +12 -2
- package/src/context/span-context.ts +61 -8
- package/src/core/ids.ts +21 -7
- package/src/core/meter.ts +136 -14
- package/src/core/processor.ts +33 -0
- package/src/core/resource.ts +6 -0
- package/src/core/sampler.ts +65 -0
- package/src/core/span.ts +28 -1
- package/src/core/tracer.ts +140 -19
- package/src/exporters/console-exporter.ts +18 -4
- package/src/exporters/multi-exporter.ts +59 -0
- package/src/exporters/otlp-http-exporter.ts +191 -29
- package/src/exporters/types.ts +24 -3
- package/src/exporters/wal.ts +145 -0
- package/src/index.ts +36 -1
- package/src/instrumentation/errors.ts +27 -0
- package/src/instrumentation/expo-router.ts +94 -0
- package/src/instrumentation/fetch.ts +134 -0
- package/src/instrumentation/lifecycle.ts +7 -1
- package/src/instrumentation/linking.ts +83 -0
- package/src/instrumentation/network.ts +39 -0
- package/src/instrumentation/startup.ts +49 -0
- package/src/sdk.ts +115 -4
- package/src/version.ts +6 -0
|
@@ -34,7 +34,14 @@ export class ConsoleMetricExporter {
|
|
|
34
34
|
export(metrics) {
|
|
35
35
|
if (!shouldLog(this.debug)) return;
|
|
36
36
|
for (const metric of metrics) {
|
|
37
|
-
|
|
37
|
+
if (metric.type === 'histogram') {
|
|
38
|
+
const h = metric;
|
|
39
|
+
const avg = h.count > 0 ? (h.sum / h.count).toFixed(2) : '0';
|
|
40
|
+
const bucketStr = h.bucketBoundaries.map((b, i) => `≤${b}:${h.bucketCounts[i]}`).concat([`+Inf:${h.bucketCounts[h.bucketBoundaries.length]}`]).join(' ');
|
|
41
|
+
console.log(`[OTEL METRIC] ${h.name} histogram count=${h.count} sum=${h.sum} avg=${avg} [${bucketStr}]`, Object.keys(h.attributes).length > 0 ? h.attributes : '');
|
|
42
|
+
} else {
|
|
43
|
+
console.log(`[OTEL METRIC] ${metric.name} ${metric.type} value=${metric.value}`, Object.keys(metric.attributes).length > 0 ? metric.attributes : '');
|
|
44
|
+
}
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["shouldLog","debug","process","env","NODE_ENV","ConsoleSpanExporter","constructor","export","spans","span","duration","endTimeMs","undefined","startTimeMs","lines","name","traceId","spanId","parentSpanId","status","statusMessage","JSON","stringify","attributes","events","length","push","event","offset","timestampMs","attrsStr","Object","keys","droppedEventsCount","console","log","join","ConsoleMetricExporter","metrics","metric","type","value","ConsoleLogExporter","logs","traceInfo","severity","padEnd","body"],"sourceRoot":"../../../src","sources":["exporters/console-exporter.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["shouldLog","debug","process","env","NODE_ENV","ConsoleSpanExporter","constructor","export","spans","span","duration","endTimeMs","undefined","startTimeMs","lines","name","traceId","spanId","parentSpanId","status","statusMessage","JSON","stringify","attributes","events","length","push","event","offset","timestampMs","attrsStr","Object","keys","droppedEventsCount","console","log","join","ConsoleMetricExporter","metrics","metric","type","h","avg","count","sum","toFixed","bucketStr","bucketBoundaries","map","b","i","bucketCounts","concat","value","ConsoleLogExporter","logs","traceInfo","severity","padEnd","body"],"sourceRoot":"../../../src","sources":["exporters/console-exporter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Fans out span export calls to multiple exporters.
|
|
5
|
+
* All exporters receive the same batch; errors in one do not affect others.
|
|
6
|
+
*/
|
|
7
|
+
export class MultiSpanExporter {
|
|
8
|
+
constructor(exporters) {
|
|
9
|
+
this.exporters = exporters;
|
|
10
|
+
}
|
|
11
|
+
export(spans) {
|
|
12
|
+
for (const exp of this.exporters) {
|
|
13
|
+
try {
|
|
14
|
+
exp.export(spans);
|
|
15
|
+
} catch {
|
|
16
|
+
// Isolate failures — one bad exporter must not drop data from others.
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Fans out metric export calls to multiple exporters.
|
|
24
|
+
*/
|
|
25
|
+
export class MultiMetricExporter {
|
|
26
|
+
constructor(exporters) {
|
|
27
|
+
this.exporters = exporters;
|
|
28
|
+
}
|
|
29
|
+
export(metrics) {
|
|
30
|
+
for (const exp of this.exporters) {
|
|
31
|
+
try {
|
|
32
|
+
exp.export(metrics);
|
|
33
|
+
} catch {
|
|
34
|
+
// Isolate failures.
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Fans out log export calls to multiple exporters.
|
|
42
|
+
*/
|
|
43
|
+
export class MultiLogExporter {
|
|
44
|
+
constructor(exporters) {
|
|
45
|
+
this.exporters = exporters;
|
|
46
|
+
}
|
|
47
|
+
export(logs) {
|
|
48
|
+
for (const exp of this.exporters) {
|
|
49
|
+
try {
|
|
50
|
+
exp.export(logs);
|
|
51
|
+
} catch {
|
|
52
|
+
// Isolate failures.
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=multi-exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MultiSpanExporter","constructor","exporters","export","spans","exp","MultiMetricExporter","metrics","MultiLogExporter","logs"],"sourceRoot":"../../../src","sources":["exporters/multi-exporter.ts"],"mappings":";;AAQA;AACA;AACA;AACA;AACA,OAAO,MAAMA,iBAAiB,CAAyB;EACrDC,WAAWA,CAAkBC,SAAyB,EAAE;IAAA,KAA3BA,SAAyB,GAAzBA,SAAyB;EAAG;EAEzDC,MAAMA,CAACC,KAAqB,EAAQ;IAClC,KAAK,MAAMC,GAAG,IAAI,IAAI,CAACH,SAAS,EAAE;MAChC,IAAI;QACFG,GAAG,CAACF,MAAM,CAACC,KAAK,CAAC;MACnB,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAME,mBAAmB,CAA2B;EACzDL,WAAWA,CAAkBC,SAA2B,EAAE;IAAA,KAA7BA,SAA2B,GAA3BA,SAA2B;EAAG;EAE3DC,MAAMA,CAACI,OAAuB,EAAQ;IACpC,KAAK,MAAMF,GAAG,IAAI,IAAI,CAACH,SAAS,EAAE;MAChC,IAAI;QACFG,GAAG,CAACF,MAAM,CAACI,OAAO,CAAC;MACrB,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,CAAwB;EACnDP,WAAWA,CAAkBC,SAAwB,EAAE;IAAA,KAA1BA,SAAwB,GAAxBA,SAAwB;EAAG;EAExDC,MAAMA,CAACM,IAAiB,EAAQ;IAC9B,KAAK,MAAMJ,GAAG,IAAI,IAAI,CAACH,SAAS,EAAE;MAChC,IAAI;QACFG,GAAG,CAACF,MAAM,CAACM,IAAI,CAAC;MAClB,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { Wal, fetchWithRetry } from "./wal.js";
|
|
4
|
+
import { SDK_VERSION } from "../version.js";
|
|
5
|
+
|
|
3
6
|
// ─── OTLP attribute value serialization ──────────────────────────────────────
|
|
4
7
|
|
|
5
8
|
function toOtlpValue(value) {
|
|
@@ -69,12 +72,27 @@ export class OtlpHttpExporter {
|
|
|
69
72
|
this.timer_ = setInterval(() => {
|
|
70
73
|
this.flush();
|
|
71
74
|
}, interval);
|
|
75
|
+
// Allow Node.js to exit cleanly in test environments without calling destroy().
|
|
76
|
+
if (typeof this.timer_.unref === 'function') this.timer_.unref();
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
// Called by OtelSDK.init() after buildResource() — not part of SpanExporter.
|
|
75
80
|
setResource(resource) {
|
|
76
81
|
this.resource_ = resource;
|
|
77
82
|
}
|
|
83
|
+
|
|
84
|
+
// Called by OtelSDK.init() when a StorageAdapter is configured.
|
|
85
|
+
// Initialises the WAL and replays any undelivered batches from the previous session.
|
|
86
|
+
setStorage(storage) {
|
|
87
|
+
this.wal_ = new Wal(storage, '@react-native-otel/wal/spans');
|
|
88
|
+
this.replayWal();
|
|
89
|
+
}
|
|
90
|
+
replayWal() {
|
|
91
|
+
if (!this.wal_) return;
|
|
92
|
+
for (const batch of this.wal_.readAll()) {
|
|
93
|
+
this.deliverBatch(batch.data, batch.id);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
78
96
|
export(spans) {
|
|
79
97
|
this.buffer.push(...spans);
|
|
80
98
|
if (this.buffer.length >= this.batchSize) {
|
|
@@ -84,7 +102,12 @@ export class OtlpHttpExporter {
|
|
|
84
102
|
flush() {
|
|
85
103
|
if (this.buffer.length === 0) return;
|
|
86
104
|
const batch = this.buffer.splice(0);
|
|
87
|
-
this.
|
|
105
|
+
if (this.wal_) {
|
|
106
|
+
const id = this.wal_.write(batch);
|
|
107
|
+
this.deliverBatch(batch, id);
|
|
108
|
+
} else {
|
|
109
|
+
this.deliverBatch(batch, undefined);
|
|
110
|
+
}
|
|
88
111
|
}
|
|
89
112
|
|
|
90
113
|
// Clear the flush timer and send any remaining buffered spans.
|
|
@@ -95,9 +118,23 @@ export class OtlpHttpExporter {
|
|
|
95
118
|
}
|
|
96
119
|
this.flush();
|
|
97
120
|
}
|
|
98
|
-
|
|
121
|
+
deliverBatch(spans, walId) {
|
|
122
|
+
const body = this.buildBody(spans);
|
|
123
|
+
fetchWithRetry(this.tracesEndpoint, {
|
|
124
|
+
method: 'POST',
|
|
125
|
+
headers: this.headers,
|
|
126
|
+
body
|
|
127
|
+
}).then(success => {
|
|
128
|
+
if (success && walId !== undefined) {
|
|
129
|
+
this.wal_?.delete(walId);
|
|
130
|
+
}
|
|
131
|
+
}).catch(() => {
|
|
132
|
+
// Leave in WAL for next session
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
buildBody(spans) {
|
|
99
136
|
const resourceAttrs = this.resource_ ? toOtlpAttributes(this.resource_) : [];
|
|
100
|
-
|
|
137
|
+
return JSON.stringify({
|
|
101
138
|
resourceSpans: [{
|
|
102
139
|
resource: {
|
|
103
140
|
attributes: resourceAttrs
|
|
@@ -105,17 +142,12 @@ export class OtlpHttpExporter {
|
|
|
105
142
|
scopeSpans: [{
|
|
106
143
|
scope: {
|
|
107
144
|
name: 'react-native-otel',
|
|
108
|
-
version:
|
|
145
|
+
version: SDK_VERSION
|
|
109
146
|
},
|
|
110
147
|
spans: spans.map(s => this.toOtlpSpan(s))
|
|
111
148
|
}]
|
|
112
149
|
}]
|
|
113
150
|
});
|
|
114
|
-
fetch(this.tracesEndpoint, {
|
|
115
|
-
method: 'POST',
|
|
116
|
-
headers: this.headers,
|
|
117
|
-
body
|
|
118
|
-
}).catch(() => {});
|
|
119
151
|
}
|
|
120
152
|
toOtlpSpan(span) {
|
|
121
153
|
return {
|
|
@@ -135,6 +167,11 @@ export class OtlpHttpExporter {
|
|
|
135
167
|
timeUnixNano: msToNano(event.timestampMs),
|
|
136
168
|
attributes: toOtlpAttributes(event.attributes)
|
|
137
169
|
})),
|
|
170
|
+
links: span.links.map(link => ({
|
|
171
|
+
traceId: link.traceId,
|
|
172
|
+
spanId: link.spanId,
|
|
173
|
+
attributes: link.attributes ? toOtlpAttributes(link.attributes) : []
|
|
174
|
+
})),
|
|
138
175
|
droppedEventsCount: span.droppedEventsCount,
|
|
139
176
|
status: {
|
|
140
177
|
code: SPAN_STATUS_CODE[span.status] ?? 0,
|
|
@@ -149,24 +186,78 @@ export class OtlpHttpExporter {
|
|
|
149
186
|
|
|
150
187
|
// ─── Metric exporter ──────────────────────────────────────────────────────────
|
|
151
188
|
|
|
152
|
-
// OTLP aggregation temporality
|
|
189
|
+
// OTLP aggregation temporality constants
|
|
190
|
+
const AGGREGATION_TEMPORALITY_DELTA = 1;
|
|
153
191
|
const AGGREGATION_TEMPORALITY_CUMULATIVE = 2;
|
|
154
192
|
export class OtlpHttpMetricExporter {
|
|
193
|
+
buffer_ = [];
|
|
155
194
|
constructor(options) {
|
|
156
195
|
this.metricsEndpoint = options.endpoint.replace(/\/$/, '') + '/v1/metrics';
|
|
157
196
|
this.headers = {
|
|
158
197
|
'Content-Type': 'application/json',
|
|
159
198
|
...options.headers
|
|
160
199
|
};
|
|
200
|
+
const interval = options.flushIntervalMs ?? 30_000;
|
|
201
|
+
this.timer_ = setInterval(() => {
|
|
202
|
+
this.flush();
|
|
203
|
+
}, interval);
|
|
204
|
+
// Allow Node.js to exit cleanly in test environments without calling destroy().
|
|
205
|
+
if (typeof this.timer_.unref === 'function') this.timer_.unref();
|
|
161
206
|
}
|
|
162
207
|
setResource(resource) {
|
|
163
208
|
this.resource_ = resource;
|
|
164
209
|
}
|
|
210
|
+
setStorage(storage) {
|
|
211
|
+
this.wal_ = new Wal(storage, '@react-native-otel/wal/metrics');
|
|
212
|
+
this.replayWal();
|
|
213
|
+
}
|
|
214
|
+
replayWal() {
|
|
215
|
+
if (!this.wal_) return;
|
|
216
|
+
for (const batch of this.wal_.readAll()) {
|
|
217
|
+
this.deliverBatch(batch.data, batch.id);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
165
220
|
export(metrics) {
|
|
166
221
|
if (metrics.length === 0) return;
|
|
167
|
-
this.
|
|
222
|
+
this.buffer_.push(...metrics);
|
|
168
223
|
}
|
|
169
|
-
|
|
224
|
+
|
|
225
|
+
// Drain buffered metrics and deliver them immediately.
|
|
226
|
+
// Called by the internal timer and also useful for testing / explicit flush.
|
|
227
|
+
flush() {
|
|
228
|
+
if (this.buffer_.length === 0) return;
|
|
229
|
+
const batch = this.buffer_.splice(0);
|
|
230
|
+
if (this.wal_) {
|
|
231
|
+
const id = this.wal_.write(batch);
|
|
232
|
+
this.deliverBatch(batch, id);
|
|
233
|
+
} else {
|
|
234
|
+
this.deliverBatch(batch, undefined);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Clear the flush timer and send any remaining buffered metrics.
|
|
239
|
+
destroy() {
|
|
240
|
+
if (this.timer_ !== undefined) {
|
|
241
|
+
clearInterval(this.timer_);
|
|
242
|
+
this.timer_ = undefined;
|
|
243
|
+
}
|
|
244
|
+
this.flush();
|
|
245
|
+
}
|
|
246
|
+
deliverBatch(metrics, walId) {
|
|
247
|
+
const body = this.buildBody(metrics);
|
|
248
|
+
fetchWithRetry(this.metricsEndpoint, {
|
|
249
|
+
method: 'POST',
|
|
250
|
+
headers: this.headers,
|
|
251
|
+
body
|
|
252
|
+
}).then(success => {
|
|
253
|
+
if (success && walId !== undefined) {
|
|
254
|
+
this.wal_?.delete(walId);
|
|
255
|
+
}
|
|
256
|
+
}).catch(() => {
|
|
257
|
+
// Leave in WAL for next session
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
buildBody(metrics) {
|
|
170
261
|
const resourceAttrs = this.resource_ ? toOtlpAttributes(this.resource_) : [];
|
|
171
262
|
|
|
172
263
|
// Group records by name so each unique metric name becomes one OTLP metric.
|
|
@@ -181,8 +272,6 @@ export class OtlpHttpMetricExporter {
|
|
|
181
272
|
}
|
|
182
273
|
const otlpMetrics = Array.from(byName.entries()).map(([name, records]) => {
|
|
183
274
|
const type = records[0]?.type;
|
|
184
|
-
|
|
185
|
-
// Counters → sum; histograms + gauges → gauge (no bucket data available).
|
|
186
275
|
if (type === 'counter') {
|
|
187
276
|
return {
|
|
188
277
|
name,
|
|
@@ -198,6 +287,28 @@ export class OtlpHttpMetricExporter {
|
|
|
198
287
|
}
|
|
199
288
|
};
|
|
200
289
|
}
|
|
290
|
+
if (type === 'histogram') {
|
|
291
|
+
return {
|
|
292
|
+
name,
|
|
293
|
+
histogram: {
|
|
294
|
+
dataPoints: records.map(r => ({
|
|
295
|
+
count: String(r.count),
|
|
296
|
+
sum: r.sum,
|
|
297
|
+
// bucketCounts in OTLP are string-encoded uint64
|
|
298
|
+
bucketCounts: r.bucketCounts.map(String),
|
|
299
|
+
// explicitBounds does not include the implicit +Inf upper bound
|
|
300
|
+
explicitBounds: r.bucketBoundaries,
|
|
301
|
+
startTimeUnixNano: msToNano(r.timestampMs),
|
|
302
|
+
timeUnixNano: msToNano(r.timestampMs),
|
|
303
|
+
attributes: toOtlpAttributes(r.attributes)
|
|
304
|
+
})),
|
|
305
|
+
// Each flush window is independent — use DELTA semantics.
|
|
306
|
+
aggregationTemporality: AGGREGATION_TEMPORALITY_DELTA
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// gauge
|
|
201
312
|
return {
|
|
202
313
|
name,
|
|
203
314
|
gauge: {
|
|
@@ -209,7 +320,7 @@ export class OtlpHttpMetricExporter {
|
|
|
209
320
|
}
|
|
210
321
|
};
|
|
211
322
|
});
|
|
212
|
-
|
|
323
|
+
return JSON.stringify({
|
|
213
324
|
resourceMetrics: [{
|
|
214
325
|
resource: {
|
|
215
326
|
attributes: resourceAttrs
|
|
@@ -217,17 +328,12 @@ export class OtlpHttpMetricExporter {
|
|
|
217
328
|
scopeMetrics: [{
|
|
218
329
|
scope: {
|
|
219
330
|
name: 'react-native-otel',
|
|
220
|
-
version:
|
|
331
|
+
version: SDK_VERSION
|
|
221
332
|
},
|
|
222
333
|
metrics: otlpMetrics
|
|
223
334
|
}]
|
|
224
335
|
}]
|
|
225
336
|
});
|
|
226
|
-
fetch(this.metricsEndpoint, {
|
|
227
|
-
method: 'POST',
|
|
228
|
-
headers: this.headers,
|
|
229
|
-
body
|
|
230
|
-
}).catch(() => {});
|
|
231
337
|
}
|
|
232
338
|
}
|
|
233
339
|
|
|
@@ -255,10 +361,24 @@ export class OtlpHttpLogExporter {
|
|
|
255
361
|
this.timer_ = setInterval(() => {
|
|
256
362
|
this.flush();
|
|
257
363
|
}, interval);
|
|
364
|
+
// Allow Node.js to exit cleanly in test environments without calling destroy().
|
|
365
|
+
if (typeof this.timer_.unref === 'function') this.timer_.unref();
|
|
258
366
|
}
|
|
259
367
|
setResource(resource) {
|
|
260
368
|
this.resource_ = resource;
|
|
261
369
|
}
|
|
370
|
+
|
|
371
|
+
// Called by OtelSDK.init() when a StorageAdapter is configured.
|
|
372
|
+
setStorage(storage) {
|
|
373
|
+
this.wal_ = new Wal(storage, '@react-native-otel/wal/logs');
|
|
374
|
+
this.replayWal();
|
|
375
|
+
}
|
|
376
|
+
replayWal() {
|
|
377
|
+
if (!this.wal_) return;
|
|
378
|
+
for (const batch of this.wal_.readAll()) {
|
|
379
|
+
this.deliverBatch(batch.data, batch.id);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
262
382
|
export(logs) {
|
|
263
383
|
this.buffer.push(...logs);
|
|
264
384
|
if (this.buffer.length >= this.batchSize) {
|
|
@@ -268,7 +388,12 @@ export class OtlpHttpLogExporter {
|
|
|
268
388
|
flush() {
|
|
269
389
|
if (this.buffer.length === 0) return;
|
|
270
390
|
const batch = this.buffer.splice(0);
|
|
271
|
-
this.
|
|
391
|
+
if (this.wal_) {
|
|
392
|
+
const id = this.wal_.write(batch);
|
|
393
|
+
this.deliverBatch(batch, id);
|
|
394
|
+
} else {
|
|
395
|
+
this.deliverBatch(batch, undefined);
|
|
396
|
+
}
|
|
272
397
|
}
|
|
273
398
|
destroy() {
|
|
274
399
|
if (this.timer_ !== undefined) {
|
|
@@ -277,6 +402,15 @@ export class OtlpHttpLogExporter {
|
|
|
277
402
|
}
|
|
278
403
|
this.flush();
|
|
279
404
|
}
|
|
405
|
+
deliverBatch(logs, walId) {
|
|
406
|
+
this.send(logs).then(success => {
|
|
407
|
+
if (success && walId !== undefined) {
|
|
408
|
+
this.wal_?.delete(walId);
|
|
409
|
+
}
|
|
410
|
+
}).catch(() => {
|
|
411
|
+
// Leave in WAL for next session
|
|
412
|
+
});
|
|
413
|
+
}
|
|
280
414
|
send(logs) {
|
|
281
415
|
const resourceAttrs = this.resource_ ? toOtlpAttributes(this.resource_) : [];
|
|
282
416
|
const body = JSON.stringify({
|
|
@@ -287,7 +421,7 @@ export class OtlpHttpLogExporter {
|
|
|
287
421
|
scopeLogs: [{
|
|
288
422
|
scope: {
|
|
289
423
|
name: 'react-native-otel',
|
|
290
|
-
version:
|
|
424
|
+
version: SDK_VERSION
|
|
291
425
|
},
|
|
292
426
|
logRecords: logs.map(log => ({
|
|
293
427
|
timeUnixNano: msToNano(log.timestampMs),
|
|
@@ -307,11 +441,11 @@ export class OtlpHttpLogExporter {
|
|
|
307
441
|
}]
|
|
308
442
|
}]
|
|
309
443
|
});
|
|
310
|
-
|
|
444
|
+
return fetchWithRetry(this.logsEndpoint, {
|
|
311
445
|
method: 'POST',
|
|
312
446
|
headers: this.headers,
|
|
313
447
|
body
|
|
314
|
-
})
|
|
448
|
+
});
|
|
315
449
|
}
|
|
316
450
|
}
|
|
317
451
|
//# sourceMappingURL=otlp-http-exporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toOtlpValue","value","boolValue","stringValue","Number","isInteger","intValue","String","doubleValue","Array","isArray","arrayValue","values","map","toOtlpAttributes","attrs","Object","entries","key","msToNano","ms","SPAN_KIND","INTERNAL","SERVER","CLIENT","PRODUCER","CONSUMER","SPAN_STATUS_CODE","UNSET","OK","ERROR","OtlpHttpExporter","buffer","constructor","options","tracesEndpoint","endpoint","replace","headers","batchSize","interval","flushIntervalMs","timer_","setInterval","flush","setResource","resource","resource_","export","spans","push","length","batch","splice","send","destroy","undefined","clearInterval","resourceAttrs","body","JSON","stringify","resourceSpans","attributes","scopeSpans","scope","name","version","s","toOtlpSpan","fetch","method","catch","span","traceId","spanId","parentSpanId","kind","startTimeUnixNano","startTimeMs","endTimeUnixNano","endTimeMs","events","event","timeUnixNano","timestampMs","droppedEventsCount","status","code","statusMessage","message","AGGREGATION_TEMPORALITY_CUMULATIVE","OtlpHttpMetricExporter","metricsEndpoint","metrics","byName","Map","record","group","get","set","otlpMetrics","from","records","type","sum","dataPoints","r","asDouble","aggregationTemporality","isMonotonic","gauge","resourceMetrics","scopeMetrics","LOG_SEVERITY_NUMBER","TRACE","DEBUG","INFO","WARN","FATAL","OtlpHttpLogExporter","logsEndpoint","logs","resourceLogs","scopeLogs","logRecords","log","severityNumber","severity","severityText"],"sourceRoot":"../../../src","sources":["exporters/otlp-http-exporter.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Wal","fetchWithRetry","SDK_VERSION","toOtlpValue","value","boolValue","stringValue","Number","isInteger","intValue","String","doubleValue","Array","isArray","arrayValue","values","map","toOtlpAttributes","attrs","Object","entries","key","msToNano","ms","SPAN_KIND","INTERNAL","SERVER","CLIENT","PRODUCER","CONSUMER","SPAN_STATUS_CODE","UNSET","OK","ERROR","OtlpHttpExporter","buffer","constructor","options","tracesEndpoint","endpoint","replace","headers","batchSize","interval","flushIntervalMs","timer_","setInterval","flush","unref","setResource","resource","resource_","setStorage","storage","wal_","replayWal","batch","readAll","deliverBatch","data","id","export","spans","push","length","splice","write","undefined","destroy","clearInterval","walId","body","buildBody","method","then","success","delete","catch","resourceAttrs","JSON","stringify","resourceSpans","attributes","scopeSpans","scope","name","version","s","toOtlpSpan","span","traceId","spanId","parentSpanId","kind","startTimeUnixNano","startTimeMs","endTimeUnixNano","endTimeMs","events","event","timeUnixNano","timestampMs","links","link","droppedEventsCount","status","code","statusMessage","message","AGGREGATION_TEMPORALITY_DELTA","AGGREGATION_TEMPORALITY_CUMULATIVE","OtlpHttpMetricExporter","buffer_","metricsEndpoint","metrics","byName","Map","record","group","get","set","otlpMetrics","from","records","type","sum","dataPoints","r","asDouble","aggregationTemporality","isMonotonic","histogram","count","bucketCounts","explicitBounds","bucketBoundaries","gauge","resourceMetrics","scopeMetrics","LOG_SEVERITY_NUMBER","TRACE","DEBUG","INFO","WARN","FATAL","OtlpHttpLogExporter","logsEndpoint","logs","send","resourceLogs","scopeLogs","logRecords","log","severityNumber","severity","severityText"],"sourceRoot":"../../../src","sources":["exporters/otlp-http-exporter.ts"],"mappings":";;AAaA,SAASA,GAAG,EAAEC,cAAc,QAAQ,UAAO;AAC3C,SAASC,WAAW,QAAQ,eAAY;;AAExC;;AASA,SAASC,WAAWA,CAACC,KAAc,EAAgB;EACjD,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE,OAAO;IAAEC,SAAS,EAAED;EAAM,CAAC;EAC3D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO;IAAEE,WAAW,EAAEF;EAAM,CAAC;EAC5D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOG,MAAM,CAACC,SAAS,CAACJ,KAAK,CAAC,GAC1B;MAAEK,QAAQ,EAAEC,MAAM,CAACN,KAAK;IAAE,CAAC,GAC3B;MAAEO,WAAW,EAAEP;IAAM,CAAC;EAC5B;EACA,IAAIQ,KAAK,CAACC,OAAO,CAACT,KAAK,CAAC,EAAE;IACxB,OAAO;MAAEU,UAAU,EAAE;QAAEC,MAAM,EAAEX,KAAK,CAACY,GAAG,CAACb,WAAW;MAAE;IAAE,CAAC;EAC3D;EACA,OAAO;IAAEG,WAAW,EAAEI,MAAM,CAACN,KAAK;EAAE,CAAC;AACvC;AAEA,SAASa,gBAAgBA,CAACC,KAA2C,EAAE;EACrE,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACF,GAAG,CAAC,CAAC,CAACK,GAAG,EAAEjB,KAAK,CAAC,MAAM;IAClDiB,GAAG;IACHjB,KAAK,EAAED,WAAW,CAACC,KAAK;EAC1B,CAAC,CAAC,CAAC;AACL;;AAEA;AACA,SAASkB,QAAQA,CAACC,EAAU,EAAU;EACpC,OAAOb,MAAM,CAACa,EAAE,GAAG,SAAS,CAAC;AAC/B;;AAEA;;AAEA,MAAMC,SAAiC,GAAG;EACxCC,QAAQ,EAAE,CAAC;EACXC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,CAAC;EACTC,QAAQ,EAAE,CAAC;EACXC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,gBAAwC,GAAG;EAC/CC,KAAK,EAAE,CAAC;EACRC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE;AACT,CAAC;;AAED;;AAaA,OAAO,MAAMC,gBAAgB,CAAyB;EAI5CC,MAAM,GAAmB,EAAE;EAKnCC,WAAWA,CAACC,OAAgC,EAAE;IAC5C,IAAI,CAACC,cAAc,GAAGD,OAAO,CAACE,QAAQ,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,YAAY;IACxE,IAAI,CAACC,OAAO,GAAG;MACb,cAAc,EAAE,kBAAkB;MAClC,GAAGJ,OAAO,CAACI;IACb,CAAC;IACD,IAAI,CAACC,SAAS,GAAGL,OAAO,CAACK,SAAS,IAAI,EAAE;IAExC,MAAMC,QAAQ,GAAGN,OAAO,CAACO,eAAe,IAAI,MAAM;IAClD,IAAI,CAACC,MAAM,GAAGC,WAAW,CAAC,MAAM;MAC9B,IAAI,CAACC,KAAK,CAAC,CAAC;IACd,CAAC,EAAEJ,QAAQ,CAAC;IACZ;IACA,IAAI,OAAO,IAAI,CAACE,MAAM,CAACG,KAAK,KAAK,UAAU,EAAE,IAAI,CAACH,MAAM,CAACG,KAAK,CAAC,CAAC;EAClE;;EAEA;EACAC,WAAWA,CAACC,QAA4B,EAAQ;IAC9C,IAAI,CAACC,SAAS,GAAGD,QAAQ;EAC3B;;EAEA;EACA;EACAE,UAAUA,CAACC,OAAuB,EAAQ;IACxC,IAAI,CAACC,IAAI,GAAG,IAAItD,GAAG,CAAeqD,OAAO,EAAE,8BAA8B,CAAC;IAC1E,IAAI,CAACE,SAAS,CAAC,CAAC;EAClB;EAEQA,SAASA,CAAA,EAAS;IACxB,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;IAChB,KAAK,MAAME,KAAK,IAAI,IAAI,CAACF,IAAI,CAACG,OAAO,CAAC,CAAC,EAAE;MACvC,IAAI,CAACC,YAAY,CAACF,KAAK,CAACG,IAAI,EAAoBH,KAAK,CAACI,EAAE,CAAC;IAC3D;EACF;EAEAC,MAAMA,CAACC,KAAqB,EAAQ;IAClC,IAAI,CAAC3B,MAAM,CAAC4B,IAAI,CAAC,GAAGD,KAAK,CAAC;IAC1B,IAAI,IAAI,CAAC3B,MAAM,CAAC6B,MAAM,IAAI,IAAI,CAACtB,SAAS,EAAE;MACxC,IAAI,CAACK,KAAK,CAAC,CAAC;IACd;EACF;EAEAA,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACZ,MAAM,CAAC6B,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAMR,KAAK,GAAG,IAAI,CAACrB,MAAM,CAAC8B,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAACX,IAAI,EAAE;MACb,MAAMM,EAAE,GAAG,IAAI,CAACN,IAAI,CAACY,KAAK,CAACV,KAAK,CAAC;MACjC,IAAI,CAACE,YAAY,CAACF,KAAK,EAAEI,EAAE,CAAC;IAC9B,CAAC,MAAM;MACL,IAAI,CAACF,YAAY,CAACF,KAAK,EAAEW,SAAS,CAAC;IACrC;EACF;;EAEA;EACAC,OAAOA,CAAA,EAAS;IACd,IAAI,IAAI,CAACvB,MAAM,KAAKsB,SAAS,EAAE;MAC7BE,aAAa,CAAC,IAAI,CAACxB,MAAM,CAAC;MAC1B,IAAI,CAACA,MAAM,GAAGsB,SAAS;IACzB;IACA,IAAI,CAACpB,KAAK,CAAC,CAAC;EACd;EAEQW,YAAYA,CAACI,KAAqB,EAAEQ,KAAyB,EAAQ;IAC3E,MAAMC,IAAI,GAAG,IAAI,CAACC,SAAS,CAACV,KAAK,CAAC;IAClC7D,cAAc,CAAC,IAAI,CAACqC,cAAc,EAAE;MAClCmC,MAAM,EAAE,MAAM;MACdhC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrB8B;IACF,CAAC,CAAC,CACCG,IAAI,CAAEC,OAAO,IAAK;MACjB,IAAIA,OAAO,IAAIL,KAAK,KAAKH,SAAS,EAAE;QAClC,IAAI,CAACb,IAAI,EAAEsB,MAAM,CAACN,KAAK,CAAC;MAC1B;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACX;IAAA,CACD,CAAC;EACN;EAEQL,SAASA,CAACV,KAAqB,EAAU;IAC/C,MAAMgB,aAAa,GAAG,IAAI,CAAC3B,SAAS,GAChClC,gBAAgB,CAAC,IAAI,CAACkC,SAA+C,CAAC,GACtE,EAAE;IAEN,OAAO4B,IAAI,CAACC,SAAS,CAAC;MACpBC,aAAa,EAAE,CACb;QACE/B,QAAQ,EAAE;UAAEgC,UAAU,EAAEJ;QAAc,CAAC;QACvCK,UAAU,EAAE,CACV;UACEC,KAAK,EAAE;YAAEC,IAAI,EAAE,mBAAmB;YAAEC,OAAO,EAAEpF;UAAY,CAAC;UAC1D4D,KAAK,EAAEA,KAAK,CAAC9C,GAAG,CAAEuE,CAAC,IAAK,IAAI,CAACC,UAAU,CAACD,CAAC,CAAC;QAC5C,CAAC;MAEL,CAAC;IAEL,CAAC,CAAC;EACJ;EAEQC,UAAUA,CAACC,IAAkB,EAAE;IACrC,OAAO;MACLC,OAAO,EAAED,IAAI,CAACC,OAAO;MACrBC,MAAM,EAAEF,IAAI,CAACE,MAAM;MACnB;MACA,IAAIF,IAAI,CAACG,YAAY,GAAG;QAAEA,YAAY,EAAEH,IAAI,CAACG;MAAa,CAAC,GAAG,CAAC,CAAC,CAAC;MACjEP,IAAI,EAAEI,IAAI,CAACJ,IAAI;MACfQ,IAAI,EAAErE,SAAS,CAACiE,IAAI,CAACI,IAAI,CAAC,IAAI,CAAC;MAC/BC,iBAAiB,EAAExE,QAAQ,CAACmE,IAAI,CAACM,WAAW,CAAC;MAC7CC,eAAe,EAAE1E,QAAQ,CAACmE,IAAI,CAACQ,SAAS,IAAIR,IAAI,CAACM,WAAW,CAAC;MAC7Db,UAAU,EAAEjE,gBAAgB,CAACwE,IAAI,CAACP,UAAwB,CAAC;MAC3DgB,MAAM,EAAET,IAAI,CAACS,MAAM,CAAClF,GAAG,CAAEmF,KAAK,KAAM;QAClCd,IAAI,EAAEc,KAAK,CAACd,IAAI;QAChBe,YAAY,EAAE9E,QAAQ,CAAC6E,KAAK,CAACE,WAAW,CAAC;QACzCnB,UAAU,EAAEjE,gBAAgB,CAACkF,KAAK,CAACjB,UAAU;MAC/C,CAAC,CAAC,CAAC;MACHoB,KAAK,EAAEb,IAAI,CAACa,KAAK,CAACtF,GAAG,CAAEuF,IAAI,KAAM;QAC/Bb,OAAO,EAAEa,IAAI,CAACb,OAAO;QACrBC,MAAM,EAAEY,IAAI,CAACZ,MAAM;QACnBT,UAAU,EAAEqB,IAAI,CAACrB,UAAU,GAAGjE,gBAAgB,CAACsF,IAAI,CAACrB,UAAU,CAAC,GAAG;MACpE,CAAC,CAAC,CAAC;MACHsB,kBAAkB,EAAEf,IAAI,CAACe,kBAAkB;MAC3CC,MAAM,EAAE;QACNC,IAAI,EAAE5E,gBAAgB,CAAC2D,IAAI,CAACgB,MAAM,CAAC,IAAI,CAAC;QACxC;QACA,IAAIhB,IAAI,CAACkB,aAAa,GAAG;UAAEC,OAAO,EAAEnB,IAAI,CAACkB;QAAc,CAAC,GAAG,CAAC,CAAC;MAC/D;IACF,CAAC;EACH;AACF;;AAEA;;AAEA;AACA,MAAME,6BAA6B,GAAG,CAAC;AACvC,MAAMC,kCAAkC,GAAG,CAAC;AAS5C,OAAO,MAAMC,sBAAsB,CAA2B;EAMpDC,OAAO,GAAmB,EAAE;EAEpC5E,WAAWA,CAACC,OAAsC,EAAE;IAClD,IAAI,CAAC4E,eAAe,GAAG5E,OAAO,CAACE,QAAQ,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,aAAa;IAC1E,IAAI,CAACC,OAAO,GAAG;MACb,cAAc,EAAE,kBAAkB;MAClC,GAAGJ,OAAO,CAACI;IACb,CAAC;IAED,MAAME,QAAQ,GAAGN,OAAO,CAACO,eAAe,IAAI,MAAM;IAClD,IAAI,CAACC,MAAM,GAAGC,WAAW,CAAC,MAAM;MAC9B,IAAI,CAACC,KAAK,CAAC,CAAC;IACd,CAAC,EAAEJ,QAAQ,CAAC;IACZ;IACA,IAAI,OAAO,IAAI,CAACE,MAAM,CAACG,KAAK,KAAK,UAAU,EAAE,IAAI,CAACH,MAAM,CAACG,KAAK,CAAC,CAAC;EAClE;EAEAC,WAAWA,CAACC,QAA4B,EAAQ;IAC9C,IAAI,CAACC,SAAS,GAAGD,QAAQ;EAC3B;EAEAE,UAAUA,CAACC,OAAuB,EAAQ;IACxC,IAAI,CAACC,IAAI,GAAG,IAAItD,GAAG,CACjBqD,OAAO,EACP,gCACF,CAAC;IACD,IAAI,CAACE,SAAS,CAAC,CAAC;EAClB;EAEQA,SAASA,CAAA,EAAS;IACxB,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;IAChB,KAAK,MAAME,KAAK,IAAI,IAAI,CAACF,IAAI,CAACG,OAAO,CAAC,CAAC,EAAE;MACvC,IAAI,CAACC,YAAY,CAACF,KAAK,CAACG,IAAI,EAAoBH,KAAK,CAACI,EAAE,CAAC;IAC3D;EACF;EAEAC,MAAMA,CAACqD,OAAuB,EAAQ;IACpC,IAAIA,OAAO,CAAClD,MAAM,KAAK,CAAC,EAAE;IAC1B,IAAI,CAACgD,OAAO,CAACjD,IAAI,CAAC,GAAGmD,OAAO,CAAC;EAC/B;;EAEA;EACA;EACAnE,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACiE,OAAO,CAAChD,MAAM,KAAK,CAAC,EAAE;IAC/B,MAAMR,KAAK,GAAG,IAAI,CAACwD,OAAO,CAAC/C,MAAM,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,CAACX,IAAI,EAAE;MACb,MAAMM,EAAE,GAAG,IAAI,CAACN,IAAI,CAACY,KAAK,CAACV,KAAK,CAAC;MACjC,IAAI,CAACE,YAAY,CAACF,KAAK,EAAEI,EAAE,CAAC;IAC9B,CAAC,MAAM;MACL,IAAI,CAACF,YAAY,CAACF,KAAK,EAAEW,SAAS,CAAC;IACrC;EACF;;EAEA;EACAC,OAAOA,CAAA,EAAS;IACd,IAAI,IAAI,CAACvB,MAAM,KAAKsB,SAAS,EAAE;MAC7BE,aAAa,CAAC,IAAI,CAACxB,MAAM,CAAC;MAC1B,IAAI,CAACA,MAAM,GAAGsB,SAAS;IACzB;IACA,IAAI,CAACpB,KAAK,CAAC,CAAC;EACd;EAEQW,YAAYA,CAClBwD,OAAuB,EACvB5C,KAAyB,EACnB;IACN,MAAMC,IAAI,GAAG,IAAI,CAACC,SAAS,CAAC0C,OAAO,CAAC;IACpCjH,cAAc,CAAC,IAAI,CAACgH,eAAe,EAAE;MACnCxC,MAAM,EAAE,MAAM;MACdhC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrB8B;IACF,CAAC,CAAC,CACCG,IAAI,CAAEC,OAAO,IAAK;MACjB,IAAIA,OAAO,IAAIL,KAAK,KAAKH,SAAS,EAAE;QAClC,IAAI,CAACb,IAAI,EAAEsB,MAAM,CAACN,KAAK,CAAC;MAC1B;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACX;IAAA,CACD,CAAC;EACN;EAEQL,SAASA,CAAC0C,OAAuB,EAAU;IACjD,MAAMpC,aAAa,GAAG,IAAI,CAAC3B,SAAS,GAChClC,gBAAgB,CAAC,IAAI,CAACkC,SAA+C,CAAC,GACtE,EAAE;;IAEN;IACA,MAAMgE,MAAM,GAAG,IAAIC,GAAG,CAAyB,CAAC;IAChD,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;MAC5B,MAAMI,KAAK,GAAGH,MAAM,CAACI,GAAG,CAACF,MAAM,CAAChC,IAAI,CAAC;MACrC,IAAIiC,KAAK,EAAE;QACTA,KAAK,CAACvD,IAAI,CAACsD,MAAM,CAAC;MACpB,CAAC,MAAM;QACLF,MAAM,CAACK,GAAG,CAACH,MAAM,CAAChC,IAAI,EAAE,CAACgC,MAAM,CAAC,CAAC;MACnC;IACF;IAEA,MAAMI,WAAW,GAAG7G,KAAK,CAAC8G,IAAI,CAACP,MAAM,CAAC/F,OAAO,CAAC,CAAC,CAAC,CAACJ,GAAG,CAAC,CAAC,CAACqE,IAAI,EAAEsC,OAAO,CAAC,KAAK;MACxE,MAAMC,IAAI,GAAGD,OAAO,CAAC,CAAC,CAAC,EAAEC,IAAI;MAE7B,IAAIA,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO;UACLvC,IAAI;UACJwC,GAAG,EAAE;YACHC,UAAU,EAAGH,OAAO,CAAqB3G,GAAG,CAAE+G,CAAC,KAAM;cACnDC,QAAQ,EAAED,CAAC,CAAC3H,KAAK;cACjB0F,iBAAiB,EAAExE,QAAQ,CAACyG,CAAC,CAAC1B,WAAW,CAAC;cAC1CD,YAAY,EAAE9E,QAAQ,CAACyG,CAAC,CAAC1B,WAAW,CAAC;cACrCnB,UAAU,EAAEjE,gBAAgB,CAAC8G,CAAC,CAAC7C,UAAU;YAC3C,CAAC,CAAC,CAAC;YACH+C,sBAAsB,EAAEnB,kCAAkC;YAC1DoB,WAAW,EAAE;UACf;QACF,CAAC;MACH;MAEA,IAAIN,IAAI,KAAK,WAAW,EAAE;QACxB,OAAO;UACLvC,IAAI;UACJ8C,SAAS,EAAE;YACTL,UAAU,EAAGH,OAAO,CAAuB3G,GAAG,CAAE+G,CAAC,KAAM;cACrDK,KAAK,EAAE1H,MAAM,CAACqH,CAAC,CAACK,KAAK,CAAC;cACtBP,GAAG,EAAEE,CAAC,CAACF,GAAG;cACV;cACAQ,YAAY,EAAEN,CAAC,CAACM,YAAY,CAACrH,GAAG,CAACN,MAAM,CAAC;cACxC;cACA4H,cAAc,EAAEP,CAAC,CAACQ,gBAAgB;cAClCzC,iBAAiB,EAAExE,QAAQ,CAACyG,CAAC,CAAC1B,WAAW,CAAC;cAC1CD,YAAY,EAAE9E,QAAQ,CAACyG,CAAC,CAAC1B,WAAW,CAAC;cACrCnB,UAAU,EAAEjE,gBAAgB,CAAC8G,CAAC,CAAC7C,UAAU;YAC3C,CAAC,CAAC,CAAC;YACH;YACA+C,sBAAsB,EAAEpB;UAC1B;QACF,CAAC;MACH;;MAEA;MACA,OAAO;QACLxB,IAAI;QACJmD,KAAK,EAAE;UACLV,UAAU,EAAGH,OAAO,CAAmB3G,GAAG,CAAE+G,CAAC,KAAM;YACjDC,QAAQ,EAAED,CAAC,CAAC3H,KAAK;YACjBgG,YAAY,EAAE9E,QAAQ,CAACyG,CAAC,CAAC1B,WAAW,CAAC;YACrCnB,UAAU,EAAEjE,gBAAgB,CAAC8G,CAAC,CAAC7C,UAAU;UAC3C,CAAC,CAAC;QACJ;MACF,CAAC;IACH,CAAC,CAAC;IAEF,OAAOH,IAAI,CAACC,SAAS,CAAC;MACpByD,eAAe,EAAE,CACf;QACEvF,QAAQ,EAAE;UAAEgC,UAAU,EAAEJ;QAAc,CAAC;QACvC4D,YAAY,EAAE,CACZ;UACEtD,KAAK,EAAE;YAAEC,IAAI,EAAE,mBAAmB;YAAEC,OAAO,EAAEpF;UAAY,CAAC;UAC1DgH,OAAO,EAAEO;QACX,CAAC;MAEL,CAAC;IAEL,CAAC,CAAC;EACJ;AACF;;AAEA;;AAEA;AACA,MAAMkB,mBAA2C,GAAG;EAClDC,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE,CAAC;EACRC,IAAI,EAAE,CAAC;EACPC,IAAI,EAAE,EAAE;EACR9G,KAAK,EAAE,EAAE;EACT+G,KAAK,EAAE;AACT,CAAC;AASD,OAAO,MAAMC,mBAAmB,CAAwB;EAI9C9G,MAAM,GAAgB,EAAE;EAKhCC,WAAWA,CAACC,OAAmC,EAAE;IAC/C,IAAI,CAAC6G,YAAY,GAAG7G,OAAO,CAACE,QAAQ,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,UAAU;IACpE,IAAI,CAACC,OAAO,GAAG;MACb,cAAc,EAAE,kBAAkB;MAClC,GAAGJ,OAAO,CAACI;IACb,CAAC;IACD,IAAI,CAACC,SAAS,GAAGL,OAAO,CAACK,SAAS,IAAI,EAAE;IAExC,MAAMC,QAAQ,GAAGN,OAAO,CAACO,eAAe,IAAI,MAAM;IAClD,IAAI,CAACC,MAAM,GAAGC,WAAW,CAAC,MAAM;MAC9B,IAAI,CAACC,KAAK,CAAC,CAAC;IACd,CAAC,EAAEJ,QAAQ,CAAC;IACZ;IACA,IAAI,OAAO,IAAI,CAACE,MAAM,CAACG,KAAK,KAAK,UAAU,EAAE,IAAI,CAACH,MAAM,CAACG,KAAK,CAAC,CAAC;EAClE;EAEAC,WAAWA,CAACC,QAA4B,EAAQ;IAC9C,IAAI,CAACC,SAAS,GAAGD,QAAQ;EAC3B;;EAEA;EACAE,UAAUA,CAACC,OAAuB,EAAQ;IACxC,IAAI,CAACC,IAAI,GAAG,IAAItD,GAAG,CAAYqD,OAAO,EAAE,6BAA6B,CAAC;IACtE,IAAI,CAACE,SAAS,CAAC,CAAC;EAClB;EAEQA,SAASA,CAAA,EAAS;IACxB,IAAI,CAAC,IAAI,CAACD,IAAI,EAAE;IAChB,KAAK,MAAME,KAAK,IAAI,IAAI,CAACF,IAAI,CAACG,OAAO,CAAC,CAAC,EAAE;MACvC,IAAI,CAACC,YAAY,CAACF,KAAK,CAACG,IAAI,EAAiBH,KAAK,CAACI,EAAE,CAAC;IACxD;EACF;EAEAC,MAAMA,CAACsF,IAAiB,EAAQ;IAC9B,IAAI,CAAChH,MAAM,CAAC4B,IAAI,CAAC,GAAGoF,IAAI,CAAC;IACzB,IAAI,IAAI,CAAChH,MAAM,CAAC6B,MAAM,IAAI,IAAI,CAACtB,SAAS,EAAE;MACxC,IAAI,CAACK,KAAK,CAAC,CAAC;IACd;EACF;EAEAA,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACZ,MAAM,CAAC6B,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAMR,KAAK,GAAG,IAAI,CAACrB,MAAM,CAAC8B,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAACX,IAAI,EAAE;MACb,MAAMM,EAAE,GAAG,IAAI,CAACN,IAAI,CAACY,KAAK,CAACV,KAAK,CAAC;MACjC,IAAI,CAACE,YAAY,CAACF,KAAK,EAAEI,EAAE,CAAC;IAC9B,CAAC,MAAM;MACL,IAAI,CAACF,YAAY,CAACF,KAAK,EAAEW,SAAS,CAAC;IACrC;EACF;EAEAC,OAAOA,CAAA,EAAS;IACd,IAAI,IAAI,CAACvB,MAAM,KAAKsB,SAAS,EAAE;MAC7BE,aAAa,CAAC,IAAI,CAACxB,MAAM,CAAC;MAC1B,IAAI,CAACA,MAAM,GAAGsB,SAAS;IACzB;IACA,IAAI,CAACpB,KAAK,CAAC,CAAC;EACd;EAEQW,YAAYA,CAACyF,IAAiB,EAAE7E,KAAyB,EAAQ;IACvE,IAAI,CAAC8E,IAAI,CAACD,IAAI,CAAC,CACZzE,IAAI,CAAEC,OAAO,IAAK;MACjB,IAAIA,OAAO,IAAIL,KAAK,KAAKH,SAAS,EAAE;QAClC,IAAI,CAACb,IAAI,EAAEsB,MAAM,CAACN,KAAK,CAAC;MAC1B;IACF,CAAC,CAAC,CACDO,KAAK,CAAC,MAAM;MACX;IAAA,CACD,CAAC;EACN;EAEQuE,IAAIA,CAACD,IAAiB,EAAoB;IAChD,MAAMrE,aAAa,GAAG,IAAI,CAAC3B,SAAS,GAChClC,gBAAgB,CAAC,IAAI,CAACkC,SAA+C,CAAC,GACtE,EAAE;IAEN,MAAMoB,IAAI,GAAGQ,IAAI,CAACC,SAAS,CAAC;MAC1BqE,YAAY,EAAE,CACZ;QACEnG,QAAQ,EAAE;UAAEgC,UAAU,EAAEJ;QAAc,CAAC;QACvCwE,SAAS,EAAE,CACT;UACElE,KAAK,EAAE;YAAEC,IAAI,EAAE,mBAAmB;YAAEC,OAAO,EAAEpF;UAAY,CAAC;UAC1DqJ,UAAU,EAAEJ,IAAI,CAACnI,GAAG,CAAEwI,GAAG,KAAM;YAC7BpD,YAAY,EAAE9E,QAAQ,CAACkI,GAAG,CAACnD,WAAW,CAAC;YACvCoD,cAAc,EAAEd,mBAAmB,CAACa,GAAG,CAACE,QAAQ,CAAC,IAAI,CAAC;YACtDC,YAAY,EAAEH,GAAG,CAACE,QAAQ;YAC1BnF,IAAI,EAAE;cAAEjE,WAAW,EAAEkJ,GAAG,CAACjF;YAAK,CAAC;YAC/B,IAAIiF,GAAG,CAAC9D,OAAO,GAAG;cAAEA,OAAO,EAAE8D,GAAG,CAAC9D;YAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI8D,GAAG,CAAC7D,MAAM,GAAG;cAAEA,MAAM,EAAE6D,GAAG,CAAC7D;YAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7CT,UAAU,EAAEjE,gBAAgB,CAACuI,GAAG,CAACtE,UAAU;UAC7C,CAAC,CAAC;QACJ,CAAC;MAEL,CAAC;IAEL,CAAC,CAAC;IAEF,OAAOjF,cAAc,CAAC,IAAI,CAACiJ,YAAY,EAAE;MACvCzE,MAAM,EAAE,MAAM;MACdhC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrB8B;IACF,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const MAX_BATCHES = 3;
|
|
4
|
+
const MAX_ITEMS_PER_BATCH = 500;
|
|
5
|
+
|
|
6
|
+
// Circuit breaker: after this many consecutive delivery failures, pause for
|
|
7
|
+
// CIRCUIT_OPEN_MS before attempting again.
|
|
8
|
+
const CIRCUIT_BREAKER_THRESHOLD = 5;
|
|
9
|
+
const CIRCUIT_OPEN_MS = 60_000;
|
|
10
|
+
// Write-ahead log backed by StorageAdapter.
|
|
11
|
+
// Persists undelivered export batches so they survive force-kills.
|
|
12
|
+
// Stores at most maxBatches batches; oldest are dropped when the limit is exceeded.
|
|
13
|
+
export class Wal {
|
|
14
|
+
constructor(storage, storageKey, maxBatches = MAX_BATCHES, maxItems = MAX_ITEMS_PER_BATCH) {
|
|
15
|
+
this.storage = storage;
|
|
16
|
+
this.storageKey = storageKey;
|
|
17
|
+
this.maxBatches = maxBatches;
|
|
18
|
+
this.maxItems = maxItems;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Persist a batch and return the id needed to delete it after delivery.
|
|
22
|
+
write(items) {
|
|
23
|
+
const batches = this.readAll();
|
|
24
|
+
const id = `${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
|
|
25
|
+
batches.push({
|
|
26
|
+
id,
|
|
27
|
+
timestamp: Date.now(),
|
|
28
|
+
data: items.slice(0, this.maxItems)
|
|
29
|
+
});
|
|
30
|
+
// Keep only the most recent batches to cap storage growth.
|
|
31
|
+
const trimmed = batches.slice(-this.maxBatches);
|
|
32
|
+
this.storage.setSync(this.storageKey, JSON.stringify(trimmed));
|
|
33
|
+
return id;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Remove a successfully delivered batch from the WAL.
|
|
37
|
+
delete(id) {
|
|
38
|
+
const remaining = this.readAll().filter(b => b.id !== id);
|
|
39
|
+
if (remaining.length === 0) {
|
|
40
|
+
this.storage.deleteSync(this.storageKey);
|
|
41
|
+
} else {
|
|
42
|
+
this.storage.setSync(this.storageKey, JSON.stringify(remaining));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Return all pending batches (for session-start replay).
|
|
47
|
+
readAll() {
|
|
48
|
+
const raw = this.storage.getSync(this.storageKey);
|
|
49
|
+
if (!raw) return [];
|
|
50
|
+
try {
|
|
51
|
+
return JSON.parse(raw);
|
|
52
|
+
} catch {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Per-endpoint circuit-breaker state.
|
|
59
|
+
// Key: URL string. Stores consecutive failure count and open-until timestamp.
|
|
60
|
+
|
|
61
|
+
const circuitMap = new Map();
|
|
62
|
+
function getCircuit(url) {
|
|
63
|
+
let state = circuitMap.get(url);
|
|
64
|
+
if (!state) {
|
|
65
|
+
state = {
|
|
66
|
+
failures: 0,
|
|
67
|
+
openUntil: 0
|
|
68
|
+
};
|
|
69
|
+
circuitMap.set(url, state);
|
|
70
|
+
}
|
|
71
|
+
return state;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// The fetch implementation used for all OTLP delivery.
|
|
75
|
+
// Overridden by the SDK before installing fetch instrumentation so that
|
|
76
|
+
// exporter calls always use the original fetch — preventing infinite recursion.
|
|
77
|
+
let fetchImpl;
|
|
78
|
+
export function setFetchImpl(impl) {
|
|
79
|
+
fetchImpl = impl;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Retry a fetch up to maxRetries times with exponential backoff + jitter.
|
|
83
|
+
// Returns true on success, false if all retries are exhausted.
|
|
84
|
+
// 4xx responses are not retried (they indicate a client-side problem).
|
|
85
|
+
// After CIRCUIT_BREAKER_THRESHOLD consecutive failures the circuit opens for
|
|
86
|
+
// CIRCUIT_OPEN_MS and all attempts are skipped until it closes.
|
|
87
|
+
export async function fetchWithRetry(url, options, maxRetries = 3, baseDelayMs = 500) {
|
|
88
|
+
const circuit = getCircuit(url);
|
|
89
|
+
|
|
90
|
+
// Circuit open — bail out immediately without burning retries.
|
|
91
|
+
if (circuit.openUntil > Date.now()) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Use the override if set (pre-patch fetch), otherwise fall back to global.
|
|
96
|
+
const doFetch = fetchImpl ?? globalThis.fetch;
|
|
97
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
98
|
+
try {
|
|
99
|
+
const response = await doFetch(url, options);
|
|
100
|
+
if (response.ok || response.status >= 400 && response.status < 500) {
|
|
101
|
+
// Reset circuit on success.
|
|
102
|
+
circuit.failures = 0;
|
|
103
|
+
circuit.openUntil = 0;
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
// 5xx — fall through to retry
|
|
107
|
+
} catch {
|
|
108
|
+
// Network error — fall through to retry
|
|
109
|
+
}
|
|
110
|
+
if (attempt < maxRetries - 1) {
|
|
111
|
+
// Jitter: scale by 0.5–1.0 to spread out retries under load.
|
|
112
|
+
const jitter = 0.5 + Math.random() * 0.5;
|
|
113
|
+
await new Promise(r => setTimeout(r, baseDelayMs * Math.pow(2, attempt) * jitter));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// All retries exhausted — update circuit breaker.
|
|
118
|
+
circuit.failures += 1;
|
|
119
|
+
if (circuit.failures >= CIRCUIT_BREAKER_THRESHOLD) {
|
|
120
|
+
circuit.openUntil = Date.now() + CIRCUIT_OPEN_MS;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Reset circuit breaker state for a URL (useful in tests).
|
|
126
|
+
export function resetCircuit(url) {
|
|
127
|
+
circuitMap.delete(url);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=wal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MAX_BATCHES","MAX_ITEMS_PER_BATCH","CIRCUIT_BREAKER_THRESHOLD","CIRCUIT_OPEN_MS","Wal","constructor","storage","storageKey","maxBatches","maxItems","write","items","batches","readAll","id","Date","now","Math","random","toString","slice","push","timestamp","data","trimmed","setSync","JSON","stringify","delete","remaining","filter","b","length","deleteSync","raw","getSync","parse","circuitMap","Map","getCircuit","url","state","get","failures","openUntil","set","fetchImpl","setFetchImpl","impl","fetchWithRetry","options","maxRetries","baseDelayMs","circuit","doFetch","globalThis","fetch","attempt","response","ok","status","jitter","Promise","r","setTimeout","pow","resetCircuit"],"sourceRoot":"../../../src","sources":["exporters/wal.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -7,6 +7,17 @@ export { Span, NoopSpan } from "./core/span.js";
|
|
|
7
7
|
export { Tracer } from "./core/tracer.js";
|
|
8
8
|
export { Meter, Counter, Histogram, Gauge } from "./core/meter.js";
|
|
9
9
|
export { OtelLogger } from "./core/log-record.js";
|
|
10
|
+
|
|
11
|
+
// Samplers
|
|
12
|
+
|
|
13
|
+
export { AlwaysOnSampler, AlwaysOffSampler, TraceIdRatioSampler } from "./core/sampler.js";
|
|
14
|
+
|
|
15
|
+
// Processors
|
|
16
|
+
export { SimpleSpanProcessor, NoopSpanProcessor } from "./core/processor.js";
|
|
17
|
+
|
|
18
|
+
// Version
|
|
19
|
+
export { SDK_VERSION } from "./version.js";
|
|
20
|
+
|
|
10
21
|
// Context
|
|
11
22
|
export { spanContext } from "./context/span-context.js";
|
|
12
23
|
|
|
@@ -14,10 +25,15 @@ export { spanContext } from "./context/span-context.js";
|
|
|
14
25
|
|
|
15
26
|
export { ConsoleSpanExporter, ConsoleMetricExporter, ConsoleLogExporter } from "./exporters/console-exporter.js";
|
|
16
27
|
export { OtlpHttpExporter, OtlpHttpMetricExporter, OtlpHttpLogExporter } from "./exporters/otlp-http-exporter.js";
|
|
28
|
+
export { MultiSpanExporter, MultiMetricExporter, MultiLogExporter } from "./exporters/multi-exporter.js";
|
|
29
|
+
|
|
17
30
|
// Instrumentation
|
|
18
31
|
export { createNavigationInstrumentation } from "./instrumentation/navigation.js";
|
|
19
32
|
export { createAxiosInstrumentation } from "./instrumentation/network.js";
|
|
20
33
|
export { installErrorInstrumentation } from "./instrumentation/errors.js";
|
|
34
|
+
export { createFetchInstrumentation, uninstallFetchInstrumentation } from "./instrumentation/fetch.js";
|
|
35
|
+
export { installStartupInstrumentation } from "./instrumentation/startup.js";
|
|
36
|
+
export { createLinkingInstrumentation, recordPushNotification } from "./instrumentation/linking.js";
|
|
21
37
|
// React
|
|
22
38
|
export { OtelProvider, OtelContext } from "./react/OtelProvider.js";
|
|
23
39
|
export { useOtel } from "./react/useOtel.js";
|