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.
Files changed (110) hide show
  1. package/README.md +1137 -13
  2. package/lib/module/context/span-context.js +56 -5
  3. package/lib/module/context/span-context.js.map +1 -1
  4. package/lib/module/core/ids.js +21 -7
  5. package/lib/module/core/ids.js.map +1 -1
  6. package/lib/module/core/meter.js +101 -12
  7. package/lib/module/core/meter.js.map +1 -1
  8. package/lib/module/core/processor.js +28 -0
  9. package/lib/module/core/processor.js.map +1 -0
  10. package/lib/module/core/resource.js +1 -0
  11. package/lib/module/core/resource.js.map +1 -1
  12. package/lib/module/core/sampler.js +55 -0
  13. package/lib/module/core/sampler.js.map +1 -0
  14. package/lib/module/core/span.js +15 -1
  15. package/lib/module/core/span.js.map +1 -1
  16. package/lib/module/core/tracer.js +94 -5
  17. package/lib/module/core/tracer.js.map +1 -1
  18. package/lib/module/exporters/console-exporter.js +8 -1
  19. package/lib/module/exporters/console-exporter.js.map +1 -1
  20. package/lib/module/exporters/multi-exporter.js +57 -0
  21. package/lib/module/exporters/multi-exporter.js.map +1 -0
  22. package/lib/module/exporters/otlp-http-exporter.js +159 -25
  23. package/lib/module/exporters/otlp-http-exporter.js.map +1 -1
  24. package/lib/module/exporters/wal.js +129 -0
  25. package/lib/module/exporters/wal.js.map +1 -0
  26. package/lib/module/index.js +16 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/instrumentation/errors.js +21 -0
  29. package/lib/module/instrumentation/errors.js.map +1 -1
  30. package/lib/module/instrumentation/expo-router.js +76 -0
  31. package/lib/module/instrumentation/expo-router.js.map +1 -0
  32. package/lib/module/instrumentation/fetch.js +99 -0
  33. package/lib/module/instrumentation/fetch.js.map +1 -0
  34. package/lib/module/instrumentation/lifecycle.js +6 -1
  35. package/lib/module/instrumentation/lifecycle.js.map +1 -1
  36. package/lib/module/instrumentation/linking.js +65 -0
  37. package/lib/module/instrumentation/linking.js.map +1 -0
  38. package/lib/module/instrumentation/network.js +35 -0
  39. package/lib/module/instrumentation/network.js.map +1 -1
  40. package/lib/module/instrumentation/startup.js +46 -0
  41. package/lib/module/instrumentation/startup.js.map +1 -0
  42. package/lib/module/sdk.js +87 -5
  43. package/lib/module/sdk.js.map +1 -1
  44. package/lib/module/version.js +7 -0
  45. package/lib/module/version.js.map +1 -0
  46. package/lib/typescript/src/context/span-context.d.ts +14 -4
  47. package/lib/typescript/src/context/span-context.d.ts.map +1 -1
  48. package/lib/typescript/src/core/ids.d.ts.map +1 -1
  49. package/lib/typescript/src/core/meter.d.ts +12 -2
  50. package/lib/typescript/src/core/meter.d.ts.map +1 -1
  51. package/lib/typescript/src/core/processor.d.ts +29 -0
  52. package/lib/typescript/src/core/processor.d.ts.map +1 -0
  53. package/lib/typescript/src/core/resource.d.ts +3 -0
  54. package/lib/typescript/src/core/resource.d.ts.map +1 -1
  55. package/lib/typescript/src/core/sampler.d.ts +31 -0
  56. package/lib/typescript/src/core/sampler.d.ts.map +1 -0
  57. package/lib/typescript/src/core/span.d.ts +16 -0
  58. package/lib/typescript/src/core/span.d.ts.map +1 -1
  59. package/lib/typescript/src/core/tracer.d.ts +16 -6
  60. package/lib/typescript/src/core/tracer.d.ts.map +1 -1
  61. package/lib/typescript/src/exporters/console-exporter.d.ts.map +1 -1
  62. package/lib/typescript/src/exporters/multi-exporter.d.ts +28 -0
  63. package/lib/typescript/src/exporters/multi-exporter.d.ts.map +1 -0
  64. package/lib/typescript/src/exporters/otlp-http-exporter.d.ts +20 -2
  65. package/lib/typescript/src/exporters/otlp-http-exporter.d.ts.map +1 -1
  66. package/lib/typescript/src/exporters/types.d.ts +17 -3
  67. package/lib/typescript/src/exporters/types.d.ts.map +1 -1
  68. package/lib/typescript/src/exporters/wal.d.ts +21 -0
  69. package/lib/typescript/src/exporters/wal.d.ts.map +1 -0
  70. package/lib/typescript/src/index.d.ts +15 -2
  71. package/lib/typescript/src/index.d.ts.map +1 -1
  72. package/lib/typescript/src/instrumentation/errors.d.ts.map +1 -1
  73. package/lib/typescript/src/instrumentation/expo-router.d.ts +31 -0
  74. package/lib/typescript/src/instrumentation/expo-router.d.ts.map +1 -0
  75. package/lib/typescript/src/instrumentation/fetch.d.ts +18 -0
  76. package/lib/typescript/src/instrumentation/fetch.d.ts.map +1 -0
  77. package/lib/typescript/src/instrumentation/lifecycle.d.ts.map +1 -1
  78. package/lib/typescript/src/instrumentation/linking.d.ts +23 -0
  79. package/lib/typescript/src/instrumentation/linking.d.ts.map +1 -0
  80. package/lib/typescript/src/instrumentation/network.d.ts.map +1 -1
  81. package/lib/typescript/src/instrumentation/startup.d.ts +16 -0
  82. package/lib/typescript/src/instrumentation/startup.d.ts.map +1 -0
  83. package/lib/typescript/src/sdk.d.ts +35 -0
  84. package/lib/typescript/src/sdk.d.ts.map +1 -1
  85. package/lib/typescript/src/version.d.ts +2 -0
  86. package/lib/typescript/src/version.d.ts.map +1 -0
  87. package/package.json +12 -2
  88. package/src/context/span-context.ts +61 -8
  89. package/src/core/ids.ts +21 -7
  90. package/src/core/meter.ts +136 -14
  91. package/src/core/processor.ts +33 -0
  92. package/src/core/resource.ts +6 -0
  93. package/src/core/sampler.ts +65 -0
  94. package/src/core/span.ts +28 -1
  95. package/src/core/tracer.ts +140 -19
  96. package/src/exporters/console-exporter.ts +18 -4
  97. package/src/exporters/multi-exporter.ts +59 -0
  98. package/src/exporters/otlp-http-exporter.ts +191 -29
  99. package/src/exporters/types.ts +24 -3
  100. package/src/exporters/wal.ts +145 -0
  101. package/src/index.ts +36 -1
  102. package/src/instrumentation/errors.ts +27 -0
  103. package/src/instrumentation/expo-router.ts +94 -0
  104. package/src/instrumentation/fetch.ts +134 -0
  105. package/src/instrumentation/lifecycle.ts +7 -1
  106. package/src/instrumentation/linking.ts +83 -0
  107. package/src/instrumentation/network.ts +39 -0
  108. package/src/instrumentation/startup.ts +49 -0
  109. package/src/sdk.ts +115 -4
  110. 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
- console.log(`[OTEL METRIC] ${metric.name} ${metric.type} value=${metric.value}`, Object.keys(metric.attributes).length > 0 ? metric.attributes : '');
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":"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","ignoreList":[]}
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.send(batch);
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
- send(spans) {
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
- const body = JSON.stringify({
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: '0.1.0'
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: 2 = CUMULATIVE
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.send(metrics);
222
+ this.buffer_.push(...metrics);
168
223
  }
169
- send(metrics) {
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
- const body = JSON.stringify({
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: '0.1.0'
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.send(batch);
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: '0.1.0'
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
- fetch(this.logsEndpoint, {
444
+ return fetchWithRetry(this.logsEndpoint, {
311
445
  method: 'POST',
312
446
  headers: this.headers,
313
447
  body
314
- }).catch(() => {});
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":[]}
@@ -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";