@grafana/faro-web-tracing 1.0.0-beta1 → 1.0.0-beta3

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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # @grafana/faro-web-tracing
2
2
 
3
- This package provides tools for integrating [Open Telemetry](https://opentelemetry.io/docs/instrumentation/js/)
4
- based tracing with the [Faro for the web](https://github.com/grafana/faro-web-sdk/tree/main/packages/web).
5
- See [quick start document](../../docs/sources/tutorials/quick-start-browser.md) for instructions how to set up and use.
3
+ This package provides tools for integrating [Open Telemetry](https://opentelemetry.io/docs/instrumentation/js/) based
4
+ tracing with the [Faro for the web](https://github.com/grafana/faro-web-sdk/tree/main/packages/web).
5
+
6
+ See [quick start document](https://github.com/grafana/faro-web-sdk/blob/main/docs/sources/tutorials/quick-start-browser.md)
7
+ for instructions how to set up and use.
8
+
9
+ _Warning_: currently pre-release and subject to frequent breaking changes. Use at your own risk.
@@ -1,26 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
2
  Object.defineProperty(exports, "__esModule", { value: true });
25
3
  exports.FaroTraceExporter = void 0;
26
4
  var core_1 = require("@opentelemetry/core");
@@ -30,7 +8,7 @@ var FaroTraceExporter = /** @class */ (function () {
30
8
  this.config = config;
31
9
  }
32
10
  FaroTraceExporter.prototype.export = function (spans, resultCallback) {
33
- var traceEvent = exportTraceServiceRequestToTraceEvent((0, otlp_transformer_1.createExportTraceServiceRequest)(spans, true));
11
+ var traceEvent = (0, otlp_transformer_1.createExportTraceServiceRequest)(spans, true);
34
12
  this.config.faro.api.pushTraces(traceEvent);
35
13
  resultCallback({ code: core_1.ExportResultCode.SUCCESS });
36
14
  };
@@ -40,15 +18,4 @@ var FaroTraceExporter = /** @class */ (function () {
40
18
  return FaroTraceExporter;
41
19
  }());
42
20
  exports.FaroTraceExporter = FaroTraceExporter;
43
- // TODO: Revert temporary patching. See tracing/types for details
44
- function exportTraceServiceRequestToTraceEvent(_a) {
45
- var resourceSpans = _a.resourceSpans, rest = __rest(_a, ["resourceSpans"]);
46
- return __assign(__assign({}, rest), { resourceSpans: resourceSpans === null || resourceSpans === void 0 ? void 0 : resourceSpans.map(function (_a) {
47
- var scopeSpans = _a.scopeSpans, rest = __rest(_a, ["scopeSpans"]);
48
- return (__assign(__assign({}, rest), { instrumentationLibrarySpans: scopeSpans === null || scopeSpans === void 0 ? void 0 : scopeSpans.map(function (_a) {
49
- var scope = _a.scope, rest = __rest(_a, ["scope"]);
50
- return (__assign(__assign({}, rest), { instrumentationLibrary: scope }));
51
- }) }));
52
- }) });
53
- }
54
21
  //# sourceMappingURL=faroTraceExporter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../src/faroTraceExporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAuD;AAEvD,oEAAkF;AAQlF;IACE,2BAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAAG,CAAC;IAEvD,kCAAM,GAAN,UAAO,KAAqB,EAAE,cAA8C;QAC1E,IAAM,UAAU,GAAG,qCAAqC,CAAC,IAAA,kDAA+B,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAEvG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE5C,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,oCAAQ,GAAR;QACE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACH,wBAAC;AAAD,CAAC,AAdD,IAcC;AAdY,8CAAiB;AAgB9B,iEAAiE;AACjE,SAAS,qCAAqC,CAAC,EAAsD;IAApD,IAAA,aAAa,mBAAA,EAAK,IAAI,cAAxB,iBAA0B,CAAF;IACrE,6BACK,IAAI,KACP,aAAa,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC,UAAC,EAAuB;YAArB,IAAA,UAAU,gBAAA,EAAK,IAAI,cAArB,cAAuB,CAAF;YAAO,OAAA,uBAC1D,IAAI,KACP,2BAA2B,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,UAAC,EAAkB;oBAAhB,IAAA,KAAK,WAAA,EAAK,IAAI,cAAhB,SAAkB,CAAF;oBAAO,OAAA,uBAChE,IAAI,KACP,sBAAsB,EAAE,KAAK,IAC7B,CAAA;iBAAA,CAAC,IACH,CAAA;SAAA,CAAC,IACH;AACJ,CAAC"}
1
+ {"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../src/faroTraceExporter.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAEvD,oEAAkF;AAKlF;IACE,2BAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAAG,CAAC;IAEvD,kCAAM,GAAN,UAAO,KAAqB,EAAE,cAA8C;QAC1E,IAAM,UAAU,GAAG,IAAA,kDAA+B,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE5C,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,oCAAQ,GAAR;QACE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACH,wBAAC;AAAD,CAAC,AAdD,IAcC;AAdY,8CAAiB","sourcesContent":["import { ExportResultCode } from '@opentelemetry/core';\nimport type { ExportResult } from '@opentelemetry/core';\nimport { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';\nimport type { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';\n\nimport type { FaroTraceExporterConfig } from './types';\n\nexport class FaroTraceExporter implements SpanExporter {\n constructor(private config: FaroTraceExporterConfig) {}\n\n export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void {\n const traceEvent = createExportTraceServiceRequest(spans, true);\n\n this.config.faro.api.pushTraces(traceEvent);\n\n resultCallback({ code: ExportResultCode.SUCCESS });\n }\n\n shutdown(): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultOTELInstrumentations.js","sourceRoot":"","sources":["../../src/getDefaultOTELInstrumentations.ts"],"names":[],"mappings":";;;AACA,8FAA2F;AAC3F,8EAA4E;AAC5E,oGAAiG;AACjG,oGAAgG;AAEhG,SAAgB,8BAA8B,CAAC,UAAuC;IAAvC,2BAAA,EAAA,eAAuC;IACpF,OAAO;QACL,IAAI,2DAA2B,EAAE;QACjC,IAAI,4CAAoB,CAAC,EAAE,UAAU,YAAA,EAAE,CAAC;QACxC,IAAI,gEAA6B,CAAC,EAAE,UAAU,YAAA,EAAE,CAAC;QACjD,IAAI,iEAA8B,EAAE;KACrC,CAAC;AACJ,CAAC;AAPD,wEAOC"}
1
+ {"version":3,"file":"getDefaultOTELInstrumentations.js","sourceRoot":"","sources":["../../src/getDefaultOTELInstrumentations.ts"],"names":[],"mappings":";;;AACA,8FAA2F;AAC3F,8EAA4E;AAC5E,oGAAiG;AACjG,oGAAgG;AAEhG,SAAgB,8BAA8B,CAAC,UAAuC;IAAvC,2BAAA,EAAA,eAAuC;IACpF,OAAO;QACL,IAAI,2DAA2B,EAAE;QACjC,IAAI,4CAAoB,CAAC,EAAE,UAAU,YAAA,EAAE,CAAC;QACxC,IAAI,gEAA6B,CAAC,EAAE,UAAU,YAAA,EAAE,CAAC;QACjD,IAAI,iEAA8B,EAAE;KACrC,CAAC;AACJ,CAAC;AAPD,wEAOC","sourcesContent":["import type { InstrumentationOption } from '@opentelemetry/instrumentation';\nimport { DocumentLoadInstrumentation } from '@opentelemetry/instrumentation-document-load';\nimport { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch';\nimport { UserInteractionInstrumentation } from '@opentelemetry/instrumentation-user-interaction';\nimport { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';\n\nexport function getDefaultOTELInstrumentations(ignoreUrls: Array<string | RegExp> = []): InstrumentationOption[] {\n return [\n new DocumentLoadInstrumentation(),\n new FetchInstrumentation({ ignoreUrls }),\n new XMLHttpRequestInstrumentation({ ignoreUrls }),\n new UserInteractionInstrumentation(),\n ];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,+DAAkE;AAAzD,gIAAA,wBAAwB,OAAA;AAEjC,mFAAkF;AAAzE,gJAAA,8BAA8B,OAAA;AAEvC,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAE1B,+DAAkE;AAAzD,gIAAA,wBAAwB,OAAA;AAEjC,mFAAkF;AAAzE,gJAAA,8BAA8B,OAAA;AAEvC,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA","sourcesContent":["export { FaroTraceExporter } from './faroTraceExporter';\n\nexport { FaroSessionSpanProcessor } from './sessionSpanProcessor';\n\nexport { getDefaultOTELInstrumentations } from './getDefaultOTELInstrumentations';\n\nexport { TracingInstrumentation } from './instrumentation';\n\nexport type { FaroTraceExporterConfig, TracingInstrumentationOptions } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,0CAAoD;AACpD,4DAAiE;AACjE,4CAAgE;AAChE,kEAA0E;AAC1E,sDAAwE;AACxE,gEAAmE;AACnE,8DAAiE;AACjE,4EAAiF;AAEjF,gDAAwE;AAExE,yDAAwD;AACxD,mFAAkF;AAClF,+DAAkE;AAGlE,8CAA8C;AAC9C,gEAAgE;AAChE,0BAA0B;AAE1B;IAA4C,0CAAmB;IAM7D,gCAAoB,OAA2C;QAA3C,wBAAA,EAAA,YAA2C;QAA/D,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAAoC;QAL/D,UAAI,GAAG,2BAA2B,CAAC;QACnC,aAAO,GAAG,mBAAO,CAAC;;IAMlB,CAAC;IAED,2CAAU,GAAV;;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,UAAU,GAAuB,EAAE,CAAC;QAE1C,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACnB,UAAU,CAAC,iDAA0B,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;SACvE;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;YACtB,UAAU,CAAC,iDAA0B,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;SAC7E;QAED,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAM,QAAQ,GAAG,oBAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,oBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,IAAM,QAAQ,GAAG,IAAI,iCAAiB,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAErD,QAAQ,CAAC,gBAAgB,CACvB,MAAA,OAAO,CAAC,aAAa,mCACnB,IAAI,+CAAwB,CAC1B,IAAI,mCAAkB,CAAC,IAAI,qCAAiB,CAAC,EAAE,IAAI,EAAE,gBAAI,EAAE,CAAC,EAAE;YAC5D,oBAAoB,EAAE,sBAAsB,CAAC,wBAAwB;YACrE,kBAAkB,EAAE,EAAE;SACvB,CAAC,CACH,CACJ,CAAC;QAEF,QAAQ,CAAC,QAAQ,CAAC;YAChB,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,IAAI,gCAAyB,EAAE;YACjE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,IAAI,iCAAkB,EAAE;SACnE,CAAC,CAAC;QAEH,IAAA,0CAAwB,EAAC;YACvB,gBAAgB,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,IAAA,+DAA8B,EAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SACnG,CAAC,CAAC;QAEH,gBAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAK,EAAE,aAAO,CAAC,CAAC;IACpC,CAAC;IAEO,8CAAa,GAArB;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,aAAa,EAAE,EAAzB,CAAyB,CAAC,CAAC;IAC3F,CAAC;IAjDM,+CAAwB,GAAG,IAAI,CAAC;IAkDzC,6BAAC;CAAA,AAtDD,CAA4C,+BAAmB,GAsD9D;AAtDY,wDAAsB"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,0CAAoD;AACpD,4DAAiE;AACjE,4CAAgE;AAChE,kEAA0E;AAC1E,sDAAwE;AACxE,gEAAmE;AACnE,8DAAiE;AACjE,4EAAiF;AAEjF,gDAAwE;AAExE,yDAAwD;AACxD,mFAAkF;AAClF,+DAAkE;AAGlE,8CAA8C;AAC9C,gEAAgE;AAChE,0BAA0B;AAE1B;IAA4C,0CAAmB;IAM7D,gCAAoB,OAA2C;QAA3C,wBAAA,EAAA,YAA2C;QAA/D,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAAoC;QAL/D,UAAI,GAAG,2BAA2B,CAAC;QACnC,aAAO,GAAG,mBAAO,CAAC;;IAMlB,CAAC;IAED,2CAAU,GAAV;;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,UAAU,GAAuB,EAAE,CAAC;QAE1C,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACnB,UAAU,CAAC,iDAA0B,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;SACvE;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;YACtB,UAAU,CAAC,iDAA0B,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;SAC7E;QAED,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAM,QAAQ,GAAG,oBAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,oBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,IAAM,QAAQ,GAAG,IAAI,iCAAiB,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAErD,QAAQ,CAAC,gBAAgB,CACvB,MAAA,OAAO,CAAC,aAAa,mCACnB,IAAI,+CAAwB,CAC1B,IAAI,mCAAkB,CAAC,IAAI,qCAAiB,CAAC,EAAE,IAAI,EAAE,gBAAI,EAAE,CAAC,EAAE;YAC5D,oBAAoB,EAAE,sBAAsB,CAAC,wBAAwB;YACrE,kBAAkB,EAAE,EAAE;SACvB,CAAC,CACH,CACJ,CAAC;QAEF,QAAQ,CAAC,QAAQ,CAAC;YAChB,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,IAAI,gCAAyB,EAAE;YACjE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,IAAI,iCAAkB,EAAE;SACnE,CAAC,CAAC;QAEH,IAAA,0CAAwB,EAAC;YACvB,gBAAgB,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,IAAA,+DAA8B,EAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SACnG,CAAC,CAAC;QAEH,gBAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAK,EAAE,aAAO,CAAC,CAAC;IACpC,CAAC;IAEO,8CAAa,GAArB;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,aAAa,EAAE,EAAzB,CAAyB,CAAC,CAAC;IAC3F,CAAC;IAjDM,+CAAwB,GAAG,IAAI,CAAC;IAkDzC,6BAAC;CAAA,AAtDD,CAA4C,+BAAmB,GAsD9D;AAtDY,wDAAsB","sourcesContent":["import { context, trace } from '@opentelemetry/api';\nimport { ZoneContextManager } from '@opentelemetry/context-zone';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { Resource, ResourceAttributes } from '@opentelemetry/resources';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';\n\nimport { BaseInstrumentation, faro, VERSION } from '@grafana/faro-core';\n\nimport { FaroTraceExporter } from './faroTraceExporter';\nimport { getDefaultOTELInstrumentations } from './getDefaultOTELInstrumentations';\nimport { FaroSessionSpanProcessor } from './sessionSpanProcessor';\nimport type { TracingInstrumentationOptions } from './types';\n\n// the providing of app name here is not great\n// should delay initialization and provide the full Faro config,\n// taking app name from it\n\nexport class TracingInstrumentation extends BaseInstrumentation {\n name = '@grafana/faro-web-tracing';\n version = VERSION;\n\n static SCHEDULED_BATCH_DELAY_MS = 1000;\n\n constructor(private options: TracingInstrumentationOptions = {}) {\n super();\n }\n\n initialize(): void {\n const config = this.faro.config;\n const options = this.options;\n const attributes: ResourceAttributes = {};\n\n if (config.app.name) {\n attributes[SemanticResourceAttributes.SERVICE_NAME] = config.app.name;\n }\n\n if (config.app.version) {\n attributes[SemanticResourceAttributes.SERVICE_VERSION] = config.app.version;\n }\n\n Object.assign(attributes, options.resourceAttributes);\n\n const resource = Resource.default().merge(new Resource(attributes));\n\n const provider = new WebTracerProvider({ resource });\n\n provider.addSpanProcessor(\n options.spanProcessor ??\n new FaroSessionSpanProcessor(\n new BatchSpanProcessor(new FaroTraceExporter({ faro: faro }), {\n scheduledDelayMillis: TracingInstrumentation.SCHEDULED_BATCH_DELAY_MS,\n maxExportBatchSize: 30,\n })\n )\n );\n\n provider.register({\n propagator: options.propagator ?? new W3CTraceContextPropagator(),\n contextManager: options.contextManager ?? new ZoneContextManager(),\n });\n\n registerInstrumentations({\n instrumentations: options.instrumentations ?? getDefaultOTELInstrumentations(this.getIgnoreUrls()),\n });\n\n faro.api.initOTEL(trace, context);\n }\n\n private getIgnoreUrls(): Array<string | RegExp> {\n return this.faro.transports.transports.flatMap((transport) => transport.getIgnoreUrls());\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionSpanProcessor.js","sourceRoot":"","sources":["../../src/sessionSpanProcessor.ts"],"names":[],"mappings":";;;AAGA,gDAA0C;AAE1C,qCAAqC;AACrC;IAGE,kCAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,6CAAU,GAAV;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,0CAAO,GAAP,UAAQ,IAAU,EAAE,aAAsB;QACxC,IAAM,OAAO,GAAG,gBAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAEzC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,wCAAK,GAAL,UAAM,IAAkB;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,2CAAQ,GAAR;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IACH,+BAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,4DAAwB"}
1
+ {"version":3,"file":"sessionSpanProcessor.js","sourceRoot":"","sources":["../../src/sessionSpanProcessor.ts"],"names":[],"mappings":";;;AAGA,gDAA0C;AAE1C,qCAAqC;AACrC;IAGE,kCAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,6CAAU,GAAV;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,0CAAO,GAAP,UAAQ,IAAU,EAAE,aAAsB;QACxC,IAAM,OAAO,GAAG,gBAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAEzC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,wCAAK,GAAL,UAAM,IAAkB;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,2CAAQ,GAAR;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IACH,+BAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,4DAAwB","sourcesContent":["import type { Context } from '@opentelemetry/api';\nimport type { ReadableSpan, Span, SpanProcessor } from '@opentelemetry/sdk-trace-base';\n\nimport { faro } from '@grafana/faro-core';\n\n// adds Faro session id to every span\nexport class FaroSessionSpanProcessor implements SpanProcessor {\n private processor: SpanProcessor;\n\n constructor(processor: SpanProcessor) {\n this.processor = processor;\n }\n\n forceFlush(): Promise<void> {\n return this.processor.forceFlush();\n }\n\n onStart(span: Span, parentContext: Context): void {\n const session = faro.metas.value.session;\n\n if (session?.id) {\n span.attributes['session_id'] = session.id;\n }\n\n this.processor.onStart(span, parentContext);\n }\n\n onEnd(span: ReadableSpan): void {\n this.processor.onEnd(span);\n }\n\n shutdown(): Promise<void> {\n return this.processor.shutdown();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ContextManager, TextMapPropagator } from '@opentelemetry/api';\nimport type { InstrumentationOption } from '@opentelemetry/instrumentation';\nimport type { ResourceAttributes } from '@opentelemetry/resources';\nimport type { SpanProcessor } from '@opentelemetry/sdk-trace-base';\n\nimport type { Faro } from '@grafana/faro-core';\n\nexport interface FaroTraceExporterConfig {\n faro: Faro;\n}\n\nexport interface TracingInstrumentationOptions {\n resourceAttributes?: ResourceAttributes;\n propagator?: TextMapPropagator;\n contextManager?: ContextManager;\n instrumentations?: InstrumentationOption[];\n spanProcessor?: SpanProcessor;\n}\n"]}
@@ -1,14 +1,3 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
1
  import { ExportResultCode } from '@opentelemetry/core';
13
2
  import { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';
14
3
  export class FaroTraceExporter {
@@ -16,7 +5,7 @@ export class FaroTraceExporter {
16
5
  this.config = config;
17
6
  }
18
7
  export(spans, resultCallback) {
19
- const traceEvent = exportTraceServiceRequestToTraceEvent(createExportTraceServiceRequest(spans, true));
8
+ const traceEvent = createExportTraceServiceRequest(spans, true);
20
9
  this.config.faro.api.pushTraces(traceEvent);
21
10
  resultCallback({ code: ExportResultCode.SUCCESS });
22
11
  }
@@ -24,15 +13,4 @@ export class FaroTraceExporter {
24
13
  return Promise.resolve(undefined);
25
14
  }
26
15
  }
27
- // TODO: Revert temporary patching. See tracing/types for details
28
- function exportTraceServiceRequestToTraceEvent(_a) {
29
- var { resourceSpans } = _a, rest = __rest(_a, ["resourceSpans"]);
30
- return Object.assign(Object.assign({}, rest), { resourceSpans: resourceSpans === null || resourceSpans === void 0 ? void 0 : resourceSpans.map((_a) => {
31
- var { scopeSpans } = _a, rest = __rest(_a, ["scopeSpans"]);
32
- return (Object.assign(Object.assign({}, rest), { instrumentationLibrarySpans: scopeSpans === null || scopeSpans === void 0 ? void 0 : scopeSpans.map((_a) => {
33
- var { scope } = _a, rest = __rest(_a, ["scope"]);
34
- return (Object.assign(Object.assign({}, rest), { instrumentationLibrary: scope }));
35
- }) }));
36
- }) });
37
- }
38
16
  //# sourceMappingURL=faroTraceExporter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../src/faroTraceExporter.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAQlF,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAAG,CAAC;IAEvD,MAAM,CAAC,KAAqB,EAAE,cAA8C;QAC1E,MAAM,UAAU,GAAG,qCAAqC,CAAC,+BAA+B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAEvG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE5C,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;CACF;AAED,iEAAiE;AACjE,SAAS,qCAAqC,CAAC,EAAsD;QAAtD,EAAE,aAAa,OAAuC,EAAlC,IAAI,cAAxB,iBAA0B,CAAF;IACrE,uCACK,IAAI,KACP,aAAa,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC,CAAC,EAAuB,EAAE,EAAE;gBAA3B,EAAE,UAAU,OAAW,EAAN,IAAI,cAArB,cAAuB,CAAF;YAAO,OAAA,iCAC1D,IAAI,KACP,2BAA2B,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,CAAC,EAAkB,EAAE,EAAE;wBAAtB,EAAE,KAAK,OAAW,EAAN,IAAI,cAAhB,SAAkB,CAAF;oBAAO,OAAA,iCAChE,IAAI,KACP,sBAAsB,EAAE,KAAK,IAC7B,CAAA;iBAAA,CAAC,IACH,CAAA;SAAA,CAAC,IACH;AACJ,CAAC"}
1
+ {"version":3,"file":"faroTraceExporter.js","sourceRoot":"","sources":["../../src/faroTraceExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAKlF,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAAG,CAAC;IAEvD,MAAM,CAAC,KAAqB,EAAE,cAA8C;QAC1E,MAAM,UAAU,GAAG,+BAA+B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE5C,cAAc,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;CACF","sourcesContent":["import { ExportResultCode } from '@opentelemetry/core';\nimport type { ExportResult } from '@opentelemetry/core';\nimport { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer';\nimport type { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base';\n\nimport type { FaroTraceExporterConfig } from './types';\n\nexport class FaroTraceExporter implements SpanExporter {\n constructor(private config: FaroTraceExporterConfig) {}\n\n export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void {\n const traceEvent = createExportTraceServiceRequest(spans, true);\n\n this.config.faro.api.pushTraces(traceEvent);\n\n resultCallback({ code: ExportResultCode.SUCCESS });\n }\n\n shutdown(): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultOTELInstrumentations.js","sourceRoot":"","sources":["../../src/getDefaultOTELInstrumentations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAEhG,MAAM,UAAU,8BAA8B,CAAC,aAAqC,EAAE;IACpF,OAAO;QACL,IAAI,2BAA2B,EAAE;QACjC,IAAI,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;QACxC,IAAI,6BAA6B,CAAC,EAAE,UAAU,EAAE,CAAC;QACjD,IAAI,8BAA8B,EAAE;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getDefaultOTELInstrumentations.js","sourceRoot":"","sources":["../../src/getDefaultOTELInstrumentations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAEhG,MAAM,UAAU,8BAA8B,CAAC,aAAqC,EAAE;IACpF,OAAO;QACL,IAAI,2BAA2B,EAAE;QACjC,IAAI,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;QACxC,IAAI,6BAA6B,CAAC,EAAE,UAAU,EAAE,CAAC;QACjD,IAAI,8BAA8B,EAAE;KACrC,CAAC;AACJ,CAAC","sourcesContent":["import type { InstrumentationOption } from '@opentelemetry/instrumentation';\nimport { DocumentLoadInstrumentation } from '@opentelemetry/instrumentation-document-load';\nimport { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch';\nimport { UserInteractionInstrumentation } from '@opentelemetry/instrumentation-user-interaction';\nimport { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';\n\nexport function getDefaultOTELInstrumentations(ignoreUrls: Array<string | RegExp> = []): InstrumentationOption[] {\n return [\n new DocumentLoadInstrumentation(),\n new FetchInstrumentation({ ignoreUrls }),\n new XMLHttpRequestInstrumentation({ ignoreUrls }),\n new UserInteractionInstrumentation(),\n ];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export { FaroTraceExporter } from './faroTraceExporter';\n\nexport { FaroSessionSpanProcessor } from './sessionSpanProcessor';\n\nexport { getDefaultOTELInstrumentations } from './getDefaultOTELInstrumentations';\n\nexport { TracingInstrumentation } from './instrumentation';\n\nexport type { FaroTraceExporterConfig, TracingInstrumentationOptions } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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","sourcesContent":["import { context, trace } from '@opentelemetry/api';\nimport { ZoneContextManager } from '@opentelemetry/context-zone';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { Resource, ResourceAttributes } from '@opentelemetry/resources';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';\n\nimport { BaseInstrumentation, faro, VERSION } from '@grafana/faro-core';\n\nimport { FaroTraceExporter } from './faroTraceExporter';\nimport { getDefaultOTELInstrumentations } from './getDefaultOTELInstrumentations';\nimport { FaroSessionSpanProcessor } from './sessionSpanProcessor';\nimport type { TracingInstrumentationOptions } from './types';\n\n// the providing of app name here is not great\n// should delay initialization and provide the full Faro config,\n// taking app name from it\n\nexport class TracingInstrumentation extends BaseInstrumentation {\n name = '@grafana/faro-web-tracing';\n version = VERSION;\n\n static SCHEDULED_BATCH_DELAY_MS = 1000;\n\n constructor(private options: TracingInstrumentationOptions = {}) {\n super();\n }\n\n initialize(): void {\n const config = this.faro.config;\n const options = this.options;\n const attributes: ResourceAttributes = {};\n\n if (config.app.name) {\n attributes[SemanticResourceAttributes.SERVICE_NAME] = config.app.name;\n }\n\n if (config.app.version) {\n attributes[SemanticResourceAttributes.SERVICE_VERSION] = config.app.version;\n }\n\n Object.assign(attributes, options.resourceAttributes);\n\n const resource = Resource.default().merge(new Resource(attributes));\n\n const provider = new WebTracerProvider({ resource });\n\n provider.addSpanProcessor(\n options.spanProcessor ??\n new FaroSessionSpanProcessor(\n new BatchSpanProcessor(new FaroTraceExporter({ faro: faro }), {\n scheduledDelayMillis: TracingInstrumentation.SCHEDULED_BATCH_DELAY_MS,\n maxExportBatchSize: 30,\n })\n )\n );\n\n provider.register({\n propagator: options.propagator ?? new W3CTraceContextPropagator(),\n contextManager: options.contextManager ?? new ZoneContextManager(),\n });\n\n registerInstrumentations({\n instrumentations: options.instrumentations ?? getDefaultOTELInstrumentations(this.getIgnoreUrls()),\n });\n\n faro.api.initOTEL(trace, context);\n }\n\n private getIgnoreUrls(): Array<string | RegExp> {\n return this.faro.transports.transports.flatMap((transport) => transport.getIgnoreUrls());\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionSpanProcessor.js","sourceRoot":"","sources":["../../src/sessionSpanProcessor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,qCAAqC;AACrC,MAAM,OAAO,wBAAwB;IAGnC,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAAU,EAAE,aAAsB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAEzC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAkB;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"sessionSpanProcessor.js","sourceRoot":"","sources":["../../src/sessionSpanProcessor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,qCAAqC;AACrC,MAAM,OAAO,wBAAwB;IAGnC,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAAU,EAAE,aAAsB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAEzC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAkB;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF","sourcesContent":["import type { Context } from '@opentelemetry/api';\nimport type { ReadableSpan, Span, SpanProcessor } from '@opentelemetry/sdk-trace-base';\n\nimport { faro } from '@grafana/faro-core';\n\n// adds Faro session id to every span\nexport class FaroSessionSpanProcessor implements SpanProcessor {\n private processor: SpanProcessor;\n\n constructor(processor: SpanProcessor) {\n this.processor = processor;\n }\n\n forceFlush(): Promise<void> {\n return this.processor.forceFlush();\n }\n\n onStart(span: Span, parentContext: Context): void {\n const session = faro.metas.value.session;\n\n if (session?.id) {\n span.attributes['session_id'] = session.id;\n }\n\n this.processor.onStart(span, parentContext);\n }\n\n onEnd(span: ReadableSpan): void {\n this.processor.onEnd(span);\n }\n\n shutdown(): Promise<void> {\n return this.processor.shutdown();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ContextManager, TextMapPropagator } from '@opentelemetry/api';\nimport type { InstrumentationOption } from '@opentelemetry/instrumentation';\nimport type { ResourceAttributes } from '@opentelemetry/resources';\nimport type { SpanProcessor } from '@opentelemetry/sdk-trace-base';\n\nimport type { Faro } from '@grafana/faro-core';\n\nexport interface FaroTraceExporterConfig {\n faro: Faro;\n}\n\nexport interface TracingInstrumentationOptions {\n resourceAttributes?: ResourceAttributes;\n propagator?: TextMapPropagator;\n contextManager?: ContextManager;\n instrumentations?: InstrumentationOption[];\n spanProcessor?: SpanProcessor;\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,17 @@
1
1
  {
2
2
  "name": "@grafana/faro-web-tracing",
3
- "version": "1.0.0-beta1",
3
+ "version": "1.0.0-beta3",
4
4
  "description": "Faro web tracing implementation.",
5
+ "keywords": [
6
+ "observability",
7
+ "apm",
8
+ "rum",
9
+ "logs",
10
+ "traces",
11
+ "metrics",
12
+ "browser",
13
+ "opentelemetry"
14
+ ],
5
15
  "license": "Apache-2.0",
6
16
  "author": "Grafana Labs",
7
17
  "homepage": "https://github.com/grafana/faro-web-sdk",
@@ -33,21 +43,21 @@
33
43
  "quality:circular-deps": "madge --circular ."
34
44
  },
35
45
  "dependencies": {
36
- "@grafana/faro-core": "^1.0.0-beta1",
37
- "@opentelemetry/api": "^1.1.0",
38
- "@opentelemetry/context-zone": "^1.7.0",
39
- "@opentelemetry/core": "^1.7.0",
40
- "@opentelemetry/exporter-trace-otlp-http": "^0.33.0",
41
- "@opentelemetry/instrumentation": "^0.33.0",
42
- "@opentelemetry/instrumentation-document-load": "^0.30.0",
43
- "@opentelemetry/instrumentation-fetch": "^0.33.0",
44
- "@opentelemetry/instrumentation-user-interaction": "^0.31.0",
45
- "@opentelemetry/instrumentation-xml-http-request": "^0.33.0",
46
- "@opentelemetry/otlp-transformer": "^0.33.0",
47
- "@opentelemetry/resources": "^1.7.0",
48
- "@opentelemetry/sdk-trace-base": "^1.7.0",
49
- "@opentelemetry/sdk-trace-web": "^1.7.0",
50
- "@opentelemetry/semantic-conventions": "^1.7.0"
46
+ "@grafana/faro-core": "^1.0.0-beta3",
47
+ "@opentelemetry/api": "^1.3.0",
48
+ "@opentelemetry/context-zone": "^1.8.0",
49
+ "@opentelemetry/core": "^1.8.0",
50
+ "@opentelemetry/exporter-trace-otlp-http": "^0.34.0",
51
+ "@opentelemetry/instrumentation": "^0.34.0",
52
+ "@opentelemetry/instrumentation-document-load": "^0.31.0",
53
+ "@opentelemetry/instrumentation-fetch": "^0.34.0",
54
+ "@opentelemetry/instrumentation-user-interaction": "^0.32.0",
55
+ "@opentelemetry/instrumentation-xml-http-request": "^0.34.0",
56
+ "@opentelemetry/otlp-transformer": "^0.34.0",
57
+ "@opentelemetry/resources": "^1.8.0",
58
+ "@opentelemetry/sdk-trace-base": "^1.8.0",
59
+ "@opentelemetry/sdk-trace-web": "^1.8.0",
60
+ "@opentelemetry/semantic-conventions": "^1.8.0"
51
61
  },
52
62
  "resolutions": {
53
63
  "@opentelemetry/api-metrics": "^0.29.1"
@@ -55,5 +65,5 @@
55
65
  "publishConfig": {
56
66
  "access": "public"
57
67
  },
58
- "gitHead": "cdbe104dbbffcbd681e4342d6817227ef4dff0e4"
68
+ "gitHead": "99cc29ee4c9bfece5697b016855f3a2ba96a9848"
59
69
  }