@grafana/faro-react-native-tracing 1.2.1 → 1.3.1
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/dist/cjs/exporters/faroTraceExporter.js +2 -1
- package/dist/cjs/exporters/faroTraceExporter.js.map +1 -1
- package/dist/esm/exporters/faroTraceExporter.js +2 -1
- package/dist/esm/exporters/faroTraceExporter.js.map +1 -1
- package/package.json +13 -13
- package/src/exporters/faroTraceExporter.ts +2 -1
|
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.FaroTraceExporter = void 0;
|
|
40
40
|
var core_1 = require("@opentelemetry/core");
|
|
41
|
+
var utils_1 = require("@opentelemetry/otlp-transformer/build/src/common/utils");
|
|
41
42
|
var internal_1 = require("@opentelemetry/otlp-transformer/build/src/trace/internal");
|
|
42
43
|
var faro_core_1 = require("@grafana/faro-core");
|
|
43
44
|
var internalLogger = (0, faro_core_1.createInternalLogger)();
|
|
@@ -65,7 +66,7 @@ var FaroTraceExporter = /** @class */ (function () {
|
|
|
65
66
|
}
|
|
66
67
|
try {
|
|
67
68
|
// Convert spans to OTLP format
|
|
68
|
-
var traceEvent = (0, internal_1.createExportTraceServiceRequest)(spans,
|
|
69
|
+
var traceEvent = (0, internal_1.createExportTraceServiceRequest)(spans, utils_1.JSON_ENCODER);
|
|
69
70
|
// Send traces to Faro
|
|
70
71
|
this.config.api.pushTraces(traceEvent);
|
|
71
72
|
// Send Faro events for CLIENT spans (HTTP requests, etc.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../../src/exporters/faroTraceExporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAuD;AAEvD,qFAA2G;AAG3G,gDAA0D;AAE1D,IAAM,cAAc,GAAG,IAAA,gCAAoB,GAAE,CAAC;AAI9C,qEAA2D;AAE3D;;;;;;;;;GASG;AACH;IAGE,2BAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAF3C,gBAAW,GAAG,KAAK,CAAC;IAE0B,CAAC;IAEvD,kCAAM,GAAN,UAAO,KAAqB,EAAE,cAA8C;QAC1E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,cAAc,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACtF,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAM,UAAU,GAAG,IAAA,0CAA+B,EAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../../src/exporters/faroTraceExporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAuD;AAEvD,gFAAsF;AACtF,qFAA2G;AAG3G,gDAA0D;AAE1D,IAAM,cAAc,GAAG,IAAA,gCAAoB,GAAE,CAAC;AAI9C,qEAA2D;AAE3D;;;;;;;;;GASG;AACH;IAGE,2BAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAF3C,gBAAW,GAAG,KAAK,CAAC;IAE0B,CAAC;IAEvD,kCAAM,GAAN,UAAO,KAAqB,EAAE,cAA8C;QAC1E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,cAAc,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACtF,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAM,UAAU,GAAG,IAAA,0CAA+B,EAAC,KAAK,EAAE,oBAAY,CAAC,CAAC;YAExE,sBAAsB;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAEvC,0DAA0D;YAC1D,uDAAuD;YACvD,IAAA,wCAAc,EAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAEzC,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2BAA2B;YAC3B,cAAc,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACzE,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEK,oCAAQ,GAAd;;;gBACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,sBAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC;;;KACnC;IAEK,sCAAU,GAAhB;;;gBACE,4DAA4D;gBAC5D,sBAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAC;;;KACnC;IACH,wBAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCY,8CAAiB","sourcesContent":["import { ExportResultCode } from '@opentelemetry/core';\nimport type { ExportResult } from '@opentelemetry/core';\nimport { JSON_ENCODER } from '@opentelemetry/otlp-transformer/build/src/common/utils';\nimport { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer/build/src/trace/internal';\nimport type { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';\n\nimport { createInternalLogger } from '@grafana/faro-core';\n\nconst internalLogger = createInternalLogger();\n\nimport type { FaroTraceExporterConfig } from '../types';\n\nimport { sendFaroEvents } from './faroTraceExporter.utils';\n\n/**\n * FaroTraceExporter for React Native\n *\n * Exports OpenTelemetry spans to Faro backend using pushTraces API.\n *\n * IMPORTANT: To avoid infinite loops:\n * - Uses internalLogger instead of console\n * - Does NOT log during export (except errors)\n * - Relies on Faro's internal deduplication\n */\nexport class FaroTraceExporter implements SpanExporter {\n private _isShutdown = false;\n\n constructor(private config: FaroTraceExporterConfig) {}\n\n export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void {\n if (this._isShutdown) {\n internalLogger.error('FaroTraceExporter: Cannot export spans, exporter is shut down');\n resultCallback({ code: ExportResultCode.FAILED });\n return;\n }\n\n try {\n // Convert spans to OTLP format\n const traceEvent = createExportTraceServiceRequest(spans, JSON_ENCODER);\n\n // Send traces to Faro\n this.config.api.pushTraces(traceEvent);\n\n // Send Faro events for CLIENT spans (HTTP requests, etc.)\n // This is done WITHOUT logging to avoid infinite loops\n sendFaroEvents(traceEvent.resourceSpans);\n\n resultCallback({ code: ExportResultCode.SUCCESS });\n } catch (error) {\n // Only log critical errors\n internalLogger.error('FaroTraceExporter: Failed to export spans', error);\n resultCallback({ code: ExportResultCode.FAILED });\n }\n }\n\n async shutdown(): Promise<void> {\n this._isShutdown = true;\n return Promise.resolve(undefined);\n }\n\n async forceFlush(): Promise<void> {\n // No-op for now - spans are sent immediately via pushTraces\n return Promise.resolve(undefined);\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { ExportResultCode } from '@opentelemetry/core';
|
|
11
|
+
import { JSON_ENCODER } from '@opentelemetry/otlp-transformer/build/src/common/utils';
|
|
11
12
|
import { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer/build/src/trace/internal';
|
|
12
13
|
import { createInternalLogger } from '@grafana/faro-core';
|
|
13
14
|
const internalLogger = createInternalLogger();
|
|
@@ -35,7 +36,7 @@ export class FaroTraceExporter {
|
|
|
35
36
|
}
|
|
36
37
|
try {
|
|
37
38
|
// Convert spans to OTLP format
|
|
38
|
-
const traceEvent = createExportTraceServiceRequest(spans,
|
|
39
|
+
const traceEvent = createExportTraceServiceRequest(spans, JSON_ENCODER);
|
|
39
40
|
// Send traces to Faro
|
|
40
41
|
this.config.api.pushTraces(traceEvent);
|
|
41
42
|
// Send Faro events for CLIENT spans (HTTP requests, etc.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../../src/exporters/faroTraceExporter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AAG3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAI9C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAF3C,gBAAW,GAAG,KAAK,CAAC;IAE0B,CAAC;IAEvD,MAAM,CAAC,KAAqB,EAAE,cAA8C;QAC1E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,cAAc,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACtF,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../../src/exporters/faroTraceExporter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,wDAAwD,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AAG3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAI9C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAF3C,gBAAW,GAAG,KAAK,CAAC;IAE0B,CAAC;IAEvD,MAAM,CAAC,KAAqB,EAAE,cAA8C;QAC1E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,cAAc,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACtF,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAExE,sBAAsB;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAEvC,0DAA0D;YAC1D,uDAAuD;YACvD,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAEzC,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2BAA2B;YAC3B,cAAc,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACzE,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEK,QAAQ;;YACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;KAAA;IAEK,UAAU;;YACd,4DAA4D;YAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;KAAA;CACF","sourcesContent":["import { ExportResultCode } from '@opentelemetry/core';\nimport type { ExportResult } from '@opentelemetry/core';\nimport { JSON_ENCODER } from '@opentelemetry/otlp-transformer/build/src/common/utils';\nimport { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer/build/src/trace/internal';\nimport type { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';\n\nimport { createInternalLogger } from '@grafana/faro-core';\n\nconst internalLogger = createInternalLogger();\n\nimport type { FaroTraceExporterConfig } from '../types';\n\nimport { sendFaroEvents } from './faroTraceExporter.utils';\n\n/**\n * FaroTraceExporter for React Native\n *\n * Exports OpenTelemetry spans to Faro backend using pushTraces API.\n *\n * IMPORTANT: To avoid infinite loops:\n * - Uses internalLogger instead of console\n * - Does NOT log during export (except errors)\n * - Relies on Faro's internal deduplication\n */\nexport class FaroTraceExporter implements SpanExporter {\n private _isShutdown = false;\n\n constructor(private config: FaroTraceExporterConfig) {}\n\n export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void {\n if (this._isShutdown) {\n internalLogger.error('FaroTraceExporter: Cannot export spans, exporter is shut down');\n resultCallback({ code: ExportResultCode.FAILED });\n return;\n }\n\n try {\n // Convert spans to OTLP format\n const traceEvent = createExportTraceServiceRequest(spans, JSON_ENCODER);\n\n // Send traces to Faro\n this.config.api.pushTraces(traceEvent);\n\n // Send Faro events for CLIENT spans (HTTP requests, etc.)\n // This is done WITHOUT logging to avoid infinite loops\n sendFaroEvents(traceEvent.resourceSpans);\n\n resultCallback({ code: ExportResultCode.SUCCESS });\n } catch (error) {\n // Only log critical errors\n internalLogger.error('FaroTraceExporter: Failed to export spans', error);\n resultCallback({ code: ExportResultCode.FAILED });\n }\n }\n\n async shutdown(): Promise<void> {\n this._isShutdown = true;\n return Promise.resolve(undefined);\n }\n\n async forceFlush(): Promise<void> {\n // No-op for now - spans are sent immediately via pushTraces\n return Promise.resolve(undefined);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafana/faro-react-native-tracing",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Faro React Native tracing implementation with OpenTelemetry.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"observability",
|
|
@@ -51,18 +51,18 @@
|
|
|
51
51
|
"quality:circular-deps": "madge --circular ."
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@grafana/faro-core": "^2.2
|
|
55
|
-
"@grafana/faro-react-native": "^1.
|
|
54
|
+
"@grafana/faro-core": "^2.8.2",
|
|
55
|
+
"@grafana/faro-react-native": "^1.3.1",
|
|
56
56
|
"@opentelemetry/api": "^1.9.0",
|
|
57
|
-
"@opentelemetry/core": "^2.
|
|
58
|
-
"@opentelemetry/instrumentation": "^0.
|
|
59
|
-
"@opentelemetry/instrumentation-fetch": "^0.
|
|
60
|
-
"@opentelemetry/instrumentation-xml-http-request": "^0.
|
|
61
|
-
"@opentelemetry/otlp-transformer": "^0.
|
|
62
|
-
"@opentelemetry/resources": "^2.
|
|
63
|
-
"@opentelemetry/sdk-trace-base": "^2.
|
|
64
|
-
"@opentelemetry/sdk-trace-web": "^2.
|
|
65
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
57
|
+
"@opentelemetry/core": "^2.9.0",
|
|
58
|
+
"@opentelemetry/instrumentation": "^0.220.0",
|
|
59
|
+
"@opentelemetry/instrumentation-fetch": "^0.220.0",
|
|
60
|
+
"@opentelemetry/instrumentation-xml-http-request": "^0.220.0",
|
|
61
|
+
"@opentelemetry/otlp-transformer": "^0.220.0",
|
|
62
|
+
"@opentelemetry/resources": "^2.9.0",
|
|
63
|
+
"@opentelemetry/sdk-trace-base": "^2.9.0",
|
|
64
|
+
"@opentelemetry/sdk-trace-web": "^2.9.0",
|
|
65
|
+
"@opentelemetry/semantic-conventions": "^1.43.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"react-native": ">=0.70.0"
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public"
|
|
76
76
|
},
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "fed3084557bb9c34129fff2b190ad4758fad7daf"
|
|
78
78
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ExportResultCode } from '@opentelemetry/core';
|
|
2
2
|
import type { ExportResult } from '@opentelemetry/core';
|
|
3
|
+
import { JSON_ENCODER } from '@opentelemetry/otlp-transformer/build/src/common/utils';
|
|
3
4
|
import { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer/build/src/trace/internal';
|
|
4
5
|
import type { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';
|
|
5
6
|
|
|
@@ -35,7 +36,7 @@ export class FaroTraceExporter implements SpanExporter {
|
|
|
35
36
|
|
|
36
37
|
try {
|
|
37
38
|
// Convert spans to OTLP format
|
|
38
|
-
const traceEvent = createExportTraceServiceRequest(spans,
|
|
39
|
+
const traceEvent = createExportTraceServiceRequest(spans, JSON_ENCODER);
|
|
39
40
|
|
|
40
41
|
// Send traces to Faro
|
|
41
42
|
this.config.api.pushTraces(traceEvent);
|