@effect/opentelemetry 0.2.0 → 0.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/NodeSdk.js CHANGED
@@ -24,7 +24,7 @@ const config = config => config;
24
24
  * @category layer
25
25
  */
26
26
  exports.config = config;
27
- const layer = config => Layer.scopedDiscard(Effect.acquireRelease(Effect.flatMap(Effect.all(config, _Resource.Resource), ([config, resource]) => Effect.sync(() => {
27
+ const layer = config => Layer.scopedDiscard(Effect.acquireRelease(Effect.flatMap(Effect.all([config, _Resource.Resource]), ([config, resource]) => Effect.sync(() => {
28
28
  const sdk = new _sdkNode.NodeSDK({
29
29
  ...config,
30
30
  resource
package/NodeSdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSdk.js","names":["Effect","_interopRequireWildcard","require","Layer","_Resource","_sdkNode","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","config","exports","layer","scopedDiscard","acquireRelease","flatMap","all","Resource","resource","sync","sdk","NodeSDK","start","promise","shutdown"],"sources":["./src/NodeSdk.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,KAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,SAAA,gBAAAF,OAAA;AAEA,IAAAG,QAAA,gBAAAH,OAAA;AAAiD,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAN,wBAAAU,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAPjD;;;;AAeA;;;;AAIO,MAAMW,MAAM,GAA8CA,MAAqB,IAAKA,MAAM;AAEjG;;;;AAAAC,OAAA,CAAAD,MAAA,GAAAA,MAAA;AAIO,MAAME,KAAK,GAChBF,MAA0C,IAE1CzB,KAAK,CAAC4B,aAAa,CAAC/B,MAAM,CAACgC,cAAc,CACvChC,MAAM,CAACiC,OAAO,CACZjC,MAAM,CAACkC,GAAG,CAACN,MAAM,EAAEO,kBAAQ,CAAC,EAC5B,CAAC,CAACP,MAAM,EAAEQ,QAAQ,CAAC,KACjBpC,MAAM,CAACqC,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAG,IAAIC,gBAAO,CAAC;IAAE,GAAGX,MAAM;IAAEQ;EAAQ,CAAE,CAAC;EAChDE,GAAG,CAACE,KAAK,EAAE;EACX,OAAOF,GAAG;AACZ,CAAC,CAAC,CACL,EACAA,GAAG,IAAKtC,MAAM,CAACyC,OAAO,CAAC,MAAMH,GAAG,CAACI,QAAQ,EAAE,CAAC,CAC9C,CAAC;AAAAb,OAAA,CAAAC,KAAA,GAAAA,KAAA"}
1
+ {"version":3,"file":"NodeSdk.js","names":["Effect","_interopRequireWildcard","require","Layer","_Resource","_sdkNode","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","config","exports","layer","scopedDiscard","acquireRelease","flatMap","all","Resource","resource","sync","sdk","NodeSDK","start","promise","shutdown"],"sources":["./src/NodeSdk.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,KAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,SAAA,gBAAAF,OAAA;AAEA,IAAAG,QAAA,gBAAAH,OAAA;AAAiD,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAN,wBAAAU,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAPjD;;;;AAeA;;;;AAIO,MAAMW,MAAM,GAA8CA,MAAqB,IAAKA,MAAM;AAEjG;;;;AAAAC,OAAA,CAAAD,MAAA,GAAAA,MAAA;AAIO,MAAME,KAAK,GAChBF,MAA0C,IAE1CzB,KAAK,CAAC4B,aAAa,CAAC/B,MAAM,CAACgC,cAAc,CACvChC,MAAM,CAACiC,OAAO,CACZjC,MAAM,CAACkC,GAAG,CAAC,CAACN,MAAM,EAAEO,kBAAQ,CAAC,CAAC,EAC9B,CAAC,CAACP,MAAM,EAAEQ,QAAQ,CAAC,KACjBpC,MAAM,CAACqC,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAG,IAAIC,gBAAO,CAAC;IAAE,GAAGX,MAAM;IAAEQ;EAAQ,CAAE,CAAC;EAChDE,GAAG,CAACE,KAAK,EAAE;EACX,OAAOF,GAAG;AACZ,CAAC,CAAC,CACL,EACAA,GAAG,IAAKtC,MAAM,CAACyC,OAAO,CAAC,MAAMH,GAAG,CAACI,QAAQ,EAAE,CAAC,CAC9C,CAAC;AAAAb,OAAA,CAAAC,KAAA,GAAAA,KAAA"}
package/Tracer.d.ts CHANGED
@@ -5,6 +5,7 @@ import type { Tag } from "@effect/data/Context";
5
5
  import type { Effect } from "@effect/io/Effect";
6
6
  import type { Layer } from "@effect/io/Layer";
7
7
  import type { ExternalSpan, Tracer } from "@effect/io/Tracer";
8
+ import { OtelSupervisor } from "@effect/opentelemetry/internal/tracer";
8
9
  import type { Resource } from "@effect/opentelemetry/Resource";
9
10
  import type * as Otel from "@opentelemetry/api";
10
11
  /**
@@ -12,6 +13,14 @@ import type * as Otel from "@opentelemetry/api";
12
13
  * @category constructors
13
14
  */
14
15
  export declare const make: Effect<Resource, never, Tracer>;
16
+ export {
17
+ /**
18
+ * An effect supervisor that sets up the OpenTelemetry context for the fiber executions.
19
+ *
20
+ * @since 1.0.0
21
+ * @category supervisor
22
+ */
23
+ OtelSupervisor };
15
24
  /**
16
25
  * @since 1.0.0
17
26
  * @category constructors
package/Tracer.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["./src/Tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAiB,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAC7B,OAAO,EAAE;IACP,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,KACE,YAAwC,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAkB,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAA0B,CAAA;AAEvF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAA0B,CAAA"}
1
+ {"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["./src/Tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAiB,CAAA;AAElE,OAAO;AACL;;;;;GAKG;AACH,cAAc,EACf,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAC7B,OAAO,EAAE;IACP,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,KACE,YAAwC,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAkB,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAA0B,CAAA;AAEvF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAA0B,CAAA"}
package/Tracer.js CHANGED
@@ -3,8 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "OtelSupervisor", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return internal.OtelSupervisor;
10
+ }
11
+ });
6
12
  exports.makeExternalSpan = exports.make = exports.layer = exports.TraceState = exports.TraceFlags = void 0;
7
- var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/opentelemetry/internal_effect_untraced/tracer"));
13
+ var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/opentelemetry/internal/tracer"));
8
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
16
  /**
@@ -12,11 +18,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
12
18
  * @category constructors
13
19
  */
14
20
  const make = internal.make;
21
+ exports.make = make;
15
22
  /**
16
23
  * @since 1.0.0
17
24
  * @category constructors
18
25
  */
19
- exports.make = make;
20
26
  const makeExternalSpan = internal.makeExternalSpan;
21
27
  /**
22
28
  * @since 1.0.0
package/Tracer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tracer.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","make","exports","makeExternalSpan","layer","TraceFlags","traceFlagsTag","TraceState","traceStateTag"],"sources":["./src/Tracer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAOA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAiF,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAIjF;;;;AAIO,MAAMW,IAAI,GAAoCzB,QAAQ,CAACyB,IAAI;AAElE;;;;AAAAC,OAAA,CAAAD,IAAA,GAAAA,IAAA;AAIO,MAAME,gBAAgB,GAQT3B,QAAQ,CAAC2B,gBAAgB;AAE7C;;;;AAAAD,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAIO,MAAMC,KAAK,GAAkC5B,QAAQ,CAAC4B,KAAK;AAElE;;;;AAAAF,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAIO,MAAMC,UAAU,GAA0C7B,QAAQ,CAAC8B,aAAa;AAEvF;;;;AAAAJ,OAAA,CAAAG,UAAA,GAAAA,UAAA;AAIO,MAAME,UAAU,GAA0C/B,QAAQ,CAACgC,aAAa;AAAAN,OAAA,CAAAK,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"Tracer.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","make","exports","makeExternalSpan","layer","TraceFlags","traceFlagsTag","TraceState","traceStateTag"],"sources":["./src/Tracer.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;AAOA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAiE,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAKjE;;;;AAIO,MAAMW,IAAI,GAAoCzB,QAAQ,CAACyB,IAAI;AAAAC,OAAA,CAAAD,IAAA,GAAAA,IAAA;AAYlE;;;;AAIO,MAAME,gBAAgB,GAQT3B,QAAQ,CAAC2B,gBAAgB;AAE7C;;;;AAAAD,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAIO,MAAMC,KAAK,GAAkC5B,QAAQ,CAAC4B,KAAK;AAElE;;;;AAAAF,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAIO,MAAMC,UAAU,GAA0C7B,QAAQ,CAAC8B,aAAa;AAEvF;;;;AAAAJ,OAAA,CAAAG,UAAA,GAAAA,UAAA;AAIO,MAAME,UAAU,GAA0C/B,QAAQ,CAACgC,aAAa;AAAAN,OAAA,CAAAK,UAAA,GAAAA,UAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/internal/tracer.ts"],"names":[],"mappings":""}
@@ -3,12 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.traceStateTag = exports.traceFlagsTag = exports.makeExternalSpan = exports.make = exports.layer = exports.OtelSpan = void 0;
6
+ exports.traceStateTag = exports.traceFlagsTag = exports.supervisor = exports.makeExternalSpan = exports.make = exports.layer = exports.OtelSupervisor = exports.OtelSpan = void 0;
7
7
  var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Context"));
8
+ var List = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/List"));
8
9
  var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option"));
9
10
  var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Cause"));
10
11
  var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
12
+ var FiberRef = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/FiberRef"));
13
+ var FiberRefs = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/FiberRefs"));
11
14
  var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Layer"));
15
+ var Supervisor = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Supervisor"));
12
16
  var Tracer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Tracer"));
13
17
  var _Resource = /*#__PURE__*/require("@effect/opentelemetry/Resource");
14
18
  var OtelApi = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@opentelemetry/api"));
@@ -23,17 +27,9 @@ class OtelSpan {
23
27
  this._tag = "Span";
24
28
  this.attributes = new Map();
25
29
  const active = contextApi.active();
26
- this.span = parent._tag === "Some" ? tracer.startSpan(name, {
30
+ this.span = tracer.startSpan(name, {
27
31
  startTime: nanosToHrTime(startTime)
28
- }, parent.value instanceof OtelSpan ? traceApi.setSpan(active, parent.value.span) : traceApi.setSpanContext(active, {
29
- spanId: parent.value.spanId,
30
- traceId: parent.value.traceId,
31
- isRemote: parent.value._tag === "ExternalSpan",
32
- traceFlags: Option.getOrElse(extractTraceTag(parent, context, traceFlagsTag), () => OtelApi.TraceFlags.SAMPLED),
33
- traceState: Option.getOrUndefined(extractTraceTag(parent, context, traceStateTag))
34
- })) : tracer.startSpan(name, {
35
- startTime: nanosToHrTime(startTime)
36
- }, active);
32
+ }, parent._tag === "Some" ? populateContext(active, parent.value, context) : active);
37
33
  const spanContext = this.span.spanContext();
38
34
  this.spanId = spanContext.spanId;
39
35
  this.traceId = spanContext.traceId;
@@ -84,9 +80,6 @@ const make = /*#__PURE__*/Effect.map(tracer => Tracer.make({
84
80
  }))( /*#__PURE__*/Effect.flatMap(resource => Effect.sync(() => OtelApi.trace.getTracer(resource.attributes["service.name"], resource.attributes["service.version"])))(_Resource.Resource));
85
81
  /** @internal */
86
82
  exports.make = make;
87
- const layer = /*#__PURE__*/Layer.unwrapEffect( /*#__PURE__*/Effect.map(make, Effect.setTracer));
88
- /** @internal */
89
- exports.layer = layer;
90
83
  const traceFlagsTag = /*#__PURE__*/Context.Tag("@effect/opentelemetry/traceFlags");
91
84
  /** @internal */
92
85
  exports.traceFlagsTag = traceFlagsTag;
@@ -99,23 +92,53 @@ const makeExternalSpan = options => {
99
92
  context = Context.add(context, traceFlagsTag, options.traceFlags);
100
93
  }
101
94
  if (options.traceState) {
102
- context = Option.match(createTraceState(options.traceState), () => context, traceState => Context.add(context, traceStateTag, traceState));
95
+ context = Option.match(createTraceState(options.traceState), {
96
+ onNone: () => context,
97
+ onSome: traceState => Context.add(context, traceStateTag, traceState)
98
+ });
103
99
  }
104
100
  return {
105
101
  _tag: "ExternalSpan",
106
- name: options.name,
107
102
  traceId: options.traceId,
108
103
  spanId: options.spanId,
109
104
  context
110
105
  };
111
106
  };
107
+ /** @internal */
112
108
  exports.makeExternalSpan = makeExternalSpan;
113
- const oneE9 = 1000000000n;
109
+ class OtelSupervisor extends Supervisor.AbstractSupervisor {
110
+ value() {
111
+ return Effect.unit;
112
+ }
113
+ onRun(execution, fiber) {
114
+ const currentSpan = Option.flatMap(FiberRefs.get(fiber.unsafeGetFiberRefs(), FiberRef.currentTracerSpan), List.head);
115
+ if (currentSpan._tag === "None") {
116
+ return execution();
117
+ }
118
+ return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan.value), execution);
119
+ }
120
+ }
121
+ /** @internal */
122
+ exports.OtelSupervisor = OtelSupervisor;
123
+ const supervisor = /*#__PURE__*/new OtelSupervisor();
124
+ /** @internal */
125
+ exports.supervisor = supervisor;
126
+ const layer = /*#__PURE__*/Layer.merge( /*#__PURE__*/Layer.unwrapEffect( /*#__PURE__*/Effect.map(make, Effect.setTracer)), /*#__PURE__*/Supervisor.addSupervisor(supervisor));
127
+ // -------------------------------------------------------------------------------------
128
+ // utils
129
+ // -------------------------------------------------------------------------------------
130
+ exports.layer = layer;
131
+ const bigint1e9 = 1000000000n;
114
132
  const nanosToHrTime = timestamp => {
115
- const nanos = timestamp % oneE9;
116
- const seconds = Number((timestamp - nanos) / oneE9);
117
- return [seconds, Number(nanos)];
133
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
118
134
  };
119
- const extractTraceTag = (parent, context, tag) => Option.orElse(Context.getOption(context, tag), () => Option.flatMap(parent, parent => Context.getOption(parent.context, tag)));
120
135
  const createTraceState = /*#__PURE__*/Option.liftThrowable(OtelApi.createTraceState);
136
+ const populateContext = (otelContext, span, context) => span instanceof OtelSpan ? OtelApi.trace.setSpan(otelContext, span.span) : OtelApi.trace.setSpanContext(otelContext, {
137
+ spanId: span.spanId,
138
+ traceId: span.traceId,
139
+ isRemote: span._tag === "ExternalSpan",
140
+ traceFlags: Option.getOrElse(context ? extractTraceTag(span, context, traceFlagsTag) : Context.getOption(span.context, traceFlagsTag), () => OtelApi.TraceFlags.SAMPLED),
141
+ traceState: Option.getOrUndefined(context ? extractTraceTag(span, context, traceStateTag) : Context.getOption(span.context, traceStateTag))
142
+ });
143
+ const extractTraceTag = (parent, context, tag) => Option.orElse(Context.getOption(context, tag), () => Context.getOption(parent.context, tag));
121
144
  //# sourceMappingURL=tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.js","names":["Context","_interopRequireWildcard","require","List","Option","Cause","Effect","FiberRef","FiberRefs","Layer","Supervisor","Tracer","_Resource","OtelApi","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","OtelSpan","constructor","traceApi","contextApi","tracer","name","parent","context","startTime","_tag","attributes","Map","active","span","startSpan","nanosToHrTime","populateContext","value","spanContext","spanId","traceId","status","attribute","setAttribute","end","endTime","exit","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","ERROR","message","pretty","event","addEvent","exports","make","map","trace","flatMap","resource","sync","getTracer","Resource","traceFlagsTag","Tag","traceStateTag","makeExternalSpan","options","empty","traceFlags","add","traceState","match","createTraceState","onNone","onSome","OtelSupervisor","AbstractSupervisor","unit","onRun","execution","fiber","currentSpan","unsafeGetFiberRefs","currentTracerSpan","head","with","supervisor","layer","merge","unwrapEffect","setTracer","addSupervisor","bigint1e9","timestamp","Number","liftThrowable","otelContext","setSpan","setSpanContext","isRemote","getOrElse","extractTraceTag","getOption","TraceFlags","SAMPLED","getOrUndefined","tag","orElse"],"sources":["../src/internal/tracer.ts"],"sourcesContent":[null],"mappings":"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"}
package/mjs/NodeSdk.mjs CHANGED
@@ -14,7 +14,7 @@ export const config = config => config;
14
14
  * @since 1.0.0
15
15
  * @category layer
16
16
  */
17
- export const layer = config => Layer.scopedDiscard(Effect.acquireRelease(Effect.flatMap(Effect.all(config, Resource), ([config, resource]) => Effect.sync(() => {
17
+ export const layer = config => Layer.scopedDiscard(Effect.acquireRelease(Effect.flatMap(Effect.all([config, Resource]), ([config, resource]) => Effect.sync(() => {
18
18
  const sdk = new NodeSDK({
19
19
  ...config,
20
20
  resource
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSdk.mjs","names":["Effect","Layer","Resource","NodeSDK","config","layer","scopedDiscard","acquireRelease","flatMap","all","resource","sync","sdk","start","promise","shutdown"],"sources":["../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,SAASC,QAAQ,QAAQ,gCAAgC;AAEzD,SAASC,OAAO,QAAQ,yBAAyB;AAQjD;;;;AAIA,OAAO,MAAMC,MAAM,GAA8CA,MAAqB,IAAKA,MAAM;AAEjG;;;;AAIA,OAAO,MAAMC,KAAK,GAChBD,MAA0C,IAE1CH,KAAK,CAACK,aAAa,CAACN,MAAM,CAACO,cAAc,CACvCP,MAAM,CAACQ,OAAO,CACZR,MAAM,CAACS,GAAG,CAACL,MAAM,EAAEF,QAAQ,CAAC,EAC5B,CAAC,CAACE,MAAM,EAAEM,QAAQ,CAAC,KACjBV,MAAM,CAACW,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAG,IAAIT,OAAO,CAAC;IAAE,GAAGC,MAAM;IAAEM;EAAQ,CAAE,CAAC;EAChDE,GAAG,CAACC,KAAK,EAAE;EACX,OAAOD,GAAG;AACZ,CAAC,CAAC,CACL,EACAA,GAAG,IAAKZ,MAAM,CAACc,OAAO,CAAC,MAAMF,GAAG,CAACG,QAAQ,EAAE,CAAC,CAC9C,CAAC"}
1
+ {"version":3,"file":"NodeSdk.mjs","names":["Effect","Layer","Resource","NodeSDK","config","layer","scopedDiscard","acquireRelease","flatMap","all","resource","sync","sdk","start","promise","shutdown"],"sources":["../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,SAASC,QAAQ,QAAQ,gCAAgC;AAEzD,SAASC,OAAO,QAAQ,yBAAyB;AAQjD;;;;AAIA,OAAO,MAAMC,MAAM,GAA8CA,MAAqB,IAAKA,MAAM;AAEjG;;;;AAIA,OAAO,MAAMC,KAAK,GAChBD,MAA0C,IAE1CH,KAAK,CAACK,aAAa,CAACN,MAAM,CAACO,cAAc,CACvCP,MAAM,CAACQ,OAAO,CACZR,MAAM,CAACS,GAAG,CAAC,CAACL,MAAM,EAAEF,QAAQ,CAAC,CAAC,EAC9B,CAAC,CAACE,MAAM,EAAEM,QAAQ,CAAC,KACjBV,MAAM,CAACW,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAG,IAAIT,OAAO,CAAC;IAAE,GAAGC,MAAM;IAAEM;EAAQ,CAAE,CAAC;EAChDE,GAAG,CAACC,KAAK,EAAE;EACX,OAAOD,GAAG;AACZ,CAAC,CAAC,CACL,EACAA,GAAG,IAAKZ,MAAM,CAACc,OAAO,CAAC,MAAMF,GAAG,CAACG,QAAQ,EAAE,CAAC,CAC9C,CAAC"}
package/mjs/Tracer.mjs CHANGED
@@ -1,9 +1,18 @@
1
- import * as internal from "@effect/opentelemetry/internal_effect_untraced/tracer";
1
+ import * as internal from "@effect/opentelemetry/internal/tracer";
2
+ import { OtelSupervisor } from "@effect/opentelemetry/internal/tracer";
2
3
  /**
3
4
  * @since 1.0.0
4
5
  * @category constructors
5
6
  */
6
7
  export const make = internal.make;
8
+ export {
9
+ /**
10
+ * An effect supervisor that sets up the OpenTelemetry context for the fiber executions.
11
+ *
12
+ * @since 1.0.0
13
+ * @category supervisor
14
+ */
15
+ OtelSupervisor };
7
16
  /**
8
17
  * @since 1.0.0
9
18
  * @category constructors
@@ -1 +1 @@
1
- {"version":3,"file":"Tracer.mjs","names":["internal","make","makeExternalSpan","layer","TraceFlags","traceFlagsTag","TraceState","traceStateTag"],"sources":["../src/Tracer.ts"],"sourcesContent":[null],"mappings":"AAOA,OAAO,KAAKA,QAAQ,MAAM,uDAAuD;AAIjF;;;;AAIA,OAAO,MAAMC,IAAI,GAAoCD,QAAQ,CAACC,IAAI;AAElE;;;;AAIA,OAAO,MAAMC,gBAAgB,GAQTF,QAAQ,CAACE,gBAAgB;AAE7C;;;;AAIA,OAAO,MAAMC,KAAK,GAAkCH,QAAQ,CAACG,KAAK;AAElE;;;;AAIA,OAAO,MAAMC,UAAU,GAA0CJ,QAAQ,CAACK,aAAa;AAEvF;;;;AAIA,OAAO,MAAMC,UAAU,GAA0CN,QAAQ,CAACO,aAAa"}
1
+ {"version":3,"file":"Tracer.mjs","names":["internal","OtelSupervisor","make","makeExternalSpan","layer","TraceFlags","traceFlagsTag","TraceState","traceStateTag"],"sources":["../src/Tracer.ts"],"sourcesContent":[null],"mappings":"AAOA,OAAO,KAAKA,QAAQ,MAAM,uCAAuC;AACjE,SAASC,cAAc,QAAQ,uCAAuC;AAItE;;;;AAIA,OAAO,MAAMC,IAAI,GAAoCF,QAAQ,CAACE,IAAI;AAElE;AACE;;;;;;AAMAD,cAAc;AAGhB;;;;AAIA,OAAO,MAAME,gBAAgB,GAQTH,QAAQ,CAACG,gBAAgB;AAE7C;;;;AAIA,OAAO,MAAMC,KAAK,GAAkCJ,QAAQ,CAACI,KAAK;AAElE;;;;AAIA,OAAO,MAAMC,UAAU,GAA0CL,QAAQ,CAACM,aAAa;AAEvF;;;;AAIA,OAAO,MAAMC,UAAU,GAA0CP,QAAQ,CAACQ,aAAa"}
@@ -1,8 +1,12 @@
1
1
  import * as Context from "@effect/data/Context";
2
+ import * as List from "@effect/data/List";
2
3
  import * as Option from "@effect/data/Option";
3
4
  import * as Cause from "@effect/io/Cause";
4
5
  import * as Effect from "@effect/io/Effect";
6
+ import * as FiberRef from "@effect/io/FiberRef";
7
+ import * as FiberRefs from "@effect/io/FiberRefs";
5
8
  import * as Layer from "@effect/io/Layer";
9
+ import * as Supervisor from "@effect/io/Supervisor";
6
10
  import * as Tracer from "@effect/io/Tracer";
7
11
  import { Resource } from "@effect/opentelemetry/Resource";
8
12
  import * as OtelApi from "@opentelemetry/api";
@@ -15,17 +19,9 @@ export class OtelSpan {
15
19
  this._tag = "Span";
16
20
  this.attributes = new Map();
17
21
  const active = contextApi.active();
18
- this.span = parent._tag === "Some" ? tracer.startSpan(name, {
22
+ this.span = tracer.startSpan(name, {
19
23
  startTime: nanosToHrTime(startTime)
20
- }, parent.value instanceof OtelSpan ? traceApi.setSpan(active, parent.value.span) : traceApi.setSpanContext(active, {
21
- spanId: parent.value.spanId,
22
- traceId: parent.value.traceId,
23
- isRemote: parent.value._tag === "ExternalSpan",
24
- traceFlags: Option.getOrElse(extractTraceTag(parent, context, traceFlagsTag), () => OtelApi.TraceFlags.SAMPLED),
25
- traceState: Option.getOrUndefined(extractTraceTag(parent, context, traceStateTag))
26
- })) : tracer.startSpan(name, {
27
- startTime: nanosToHrTime(startTime)
28
- }, active);
24
+ }, parent._tag === "Some" ? populateContext(active, parent.value, context) : active);
29
25
  const spanContext = this.span.spanContext();
30
26
  this.spanId = spanContext.spanId;
31
27
  this.traceId = spanContext.traceId;
@@ -74,8 +70,6 @@ export const make = /*#__PURE__*/Effect.map(tracer => Tracer.make({
74
70
  }
75
71
  }))( /*#__PURE__*/Effect.flatMap(resource => Effect.sync(() => OtelApi.trace.getTracer(resource.attributes["service.name"], resource.attributes["service.version"])))(Resource));
76
72
  /** @internal */
77
- export const layer = /*#__PURE__*/Layer.unwrapEffect( /*#__PURE__*/Effect.map(make, Effect.setTracer));
78
- /** @internal */
79
73
  export const traceFlagsTag = /*#__PURE__*/Context.Tag("@effect/opentelemetry/traceFlags");
80
74
  /** @internal */
81
75
  export const traceStateTag = /*#__PURE__*/Context.Tag("@effect/opentelemetry/traceState");
@@ -86,22 +80,49 @@ export const makeExternalSpan = options => {
86
80
  context = Context.add(context, traceFlagsTag, options.traceFlags);
87
81
  }
88
82
  if (options.traceState) {
89
- context = Option.match(createTraceState(options.traceState), () => context, traceState => Context.add(context, traceStateTag, traceState));
83
+ context = Option.match(createTraceState(options.traceState), {
84
+ onNone: () => context,
85
+ onSome: traceState => Context.add(context, traceStateTag, traceState)
86
+ });
90
87
  }
91
88
  return {
92
89
  _tag: "ExternalSpan",
93
- name: options.name,
94
90
  traceId: options.traceId,
95
91
  spanId: options.spanId,
96
92
  context
97
93
  };
98
94
  };
99
- const oneE9 = 1000000000n;
95
+ /** @internal */
96
+ export class OtelSupervisor extends Supervisor.AbstractSupervisor {
97
+ value() {
98
+ return Effect.unit;
99
+ }
100
+ onRun(execution, fiber) {
101
+ const currentSpan = Option.flatMap(FiberRefs.get(fiber.unsafeGetFiberRefs(), FiberRef.currentTracerSpan), List.head);
102
+ if (currentSpan._tag === "None") {
103
+ return execution();
104
+ }
105
+ return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan.value), execution);
106
+ }
107
+ }
108
+ /** @internal */
109
+ export const supervisor = /*#__PURE__*/new OtelSupervisor();
110
+ /** @internal */
111
+ export const layer = /*#__PURE__*/Layer.merge( /*#__PURE__*/Layer.unwrapEffect( /*#__PURE__*/Effect.map(make, Effect.setTracer)), /*#__PURE__*/Supervisor.addSupervisor(supervisor));
112
+ // -------------------------------------------------------------------------------------
113
+ // utils
114
+ // -------------------------------------------------------------------------------------
115
+ const bigint1e9 = 1000000000n;
100
116
  const nanosToHrTime = timestamp => {
101
- const nanos = timestamp % oneE9;
102
- const seconds = Number((timestamp - nanos) / oneE9);
103
- return [seconds, Number(nanos)];
117
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
104
118
  };
105
- const extractTraceTag = (parent, context, tag) => Option.orElse(Context.getOption(context, tag), () => Option.flatMap(parent, parent => Context.getOption(parent.context, tag)));
106
119
  const createTraceState = /*#__PURE__*/Option.liftThrowable(OtelApi.createTraceState);
120
+ const populateContext = (otelContext, span, context) => span instanceof OtelSpan ? OtelApi.trace.setSpan(otelContext, span.span) : OtelApi.trace.setSpanContext(otelContext, {
121
+ spanId: span.spanId,
122
+ traceId: span.traceId,
123
+ isRemote: span._tag === "ExternalSpan",
124
+ traceFlags: Option.getOrElse(context ? extractTraceTag(span, context, traceFlagsTag) : Context.getOption(span.context, traceFlagsTag), () => OtelApi.TraceFlags.SAMPLED),
125
+ traceState: Option.getOrUndefined(context ? extractTraceTag(span, context, traceStateTag) : Context.getOption(span.context, traceStateTag))
126
+ });
127
+ const extractTraceTag = (parent, context, tag) => Option.orElse(Context.getOption(context, tag), () => Context.getOption(parent.context, tag));
107
128
  //# sourceMappingURL=tracer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.mjs","names":["Context","List","Option","Cause","Effect","FiberRef","FiberRefs","Layer","Supervisor","Tracer","Resource","OtelApi","OtelSpan","constructor","traceApi","contextApi","tracer","name","parent","context","startTime","_tag","attributes","Map","active","span","startSpan","nanosToHrTime","populateContext","value","spanContext","spanId","traceId","status","attribute","key","setAttribute","set","end","endTime","exit","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","ERROR","message","pretty","event","addEvent","make","map","trace","flatMap","resource","sync","getTracer","traceFlagsTag","Tag","traceStateTag","makeExternalSpan","options","empty","traceFlags","add","traceState","match","createTraceState","onNone","onSome","OtelSupervisor","AbstractSupervisor","unit","onRun","execution","fiber","currentSpan","get","unsafeGetFiberRefs","currentTracerSpan","head","with","supervisor","layer","merge","unwrapEffect","setTracer","addSupervisor","bigint1e9","timestamp","Number","liftThrowable","otelContext","setSpan","setSpanContext","isRemote","getOrElse","extractTraceTag","getOption","TraceFlags","SAMPLED","getOrUndefined","tag","orElse"],"sources":["../../src/internal/tracer.ts"],"sourcesContent":[null],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@effect/opentelemetry",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/Effect-TS/opentelemetry.git"
8
8
  },
9
9
  "dependencies": {
10
- "@effect/data": "^0.12.10",
11
- "@effect/io": "^0.29.1",
10
+ "@effect/data": "^0.14.1",
11
+ "@effect/io": "^0.32.0",
12
12
  "@opentelemetry/api": "^1.4.1",
13
13
  "@opentelemetry/resources": "^1.14.0",
14
+ "@opentelemetry/sdk-node": "^0.40.0",
14
15
  "@opentelemetry/semantic-conventions": "^1.14.0"
15
16
  },
16
17
  "publishConfig": {
package/src/NodeSdk.ts CHANGED
@@ -28,7 +28,7 @@ export const layer = <R, E>(
28
28
  ): Layer.Layer<Resource | R, E, never> =>
29
29
  Layer.scopedDiscard(Effect.acquireRelease(
30
30
  Effect.flatMap(
31
- Effect.all(config, Resource),
31
+ Effect.all([config, Resource]),
32
32
  ([config, resource]) =>
33
33
  Effect.sync(() => {
34
34
  const sdk = new NodeSDK({ ...config, resource })
package/src/Tracer.ts CHANGED
@@ -5,7 +5,8 @@ import type { Tag } from "@effect/data/Context"
5
5
  import type { Effect } from "@effect/io/Effect"
6
6
  import type { Layer } from "@effect/io/Layer"
7
7
  import type { ExternalSpan, Tracer } from "@effect/io/Tracer"
8
- import * as internal from "@effect/opentelemetry/internal_effect_untraced/tracer"
8
+ import * as internal from "@effect/opentelemetry/internal/tracer"
9
+ import { OtelSupervisor } from "@effect/opentelemetry/internal/tracer"
9
10
  import type { Resource } from "@effect/opentelemetry/Resource"
10
11
  import type * as Otel from "@opentelemetry/api"
11
12
 
@@ -15,6 +16,16 @@ import type * as Otel from "@opentelemetry/api"
15
16
  */
16
17
  export const make: Effect<Resource, never, Tracer> = internal.make
17
18
 
19
+ export {
20
+ /**
21
+ * An effect supervisor that sets up the OpenTelemetry context for the fiber executions.
22
+ *
23
+ * @since 1.0.0
24
+ * @category supervisor
25
+ */
26
+ OtelSupervisor
27
+ }
28
+
18
29
  /**
19
30
  * @since 1.0.0
20
31
  * @category constructors
@@ -1,10 +1,15 @@
1
1
  import * as Context from "@effect/data/Context"
2
2
  import { pipe } from "@effect/data/Function"
3
+ import * as List from "@effect/data/List"
3
4
  import * as Option from "@effect/data/Option"
4
5
  import * as Cause from "@effect/io/Cause"
5
6
  import * as Effect from "@effect/io/Effect"
6
7
  import type { Exit } from "@effect/io/Exit"
8
+ import type { RuntimeFiber } from "@effect/io/Fiber"
9
+ import * as FiberRef from "@effect/io/FiberRef"
10
+ import * as FiberRefs from "@effect/io/FiberRefs"
7
11
  import * as Layer from "@effect/io/Layer"
12
+ import * as Supervisor from "@effect/io/Supervisor"
8
13
  import * as Tracer from "@effect/io/Tracer"
9
14
  import { Resource } from "@effect/opentelemetry/Resource"
10
15
  import * as OtelApi from "@opentelemetry/api"
@@ -29,26 +34,12 @@ export class OtelSpan implements Tracer.Span {
29
34
  startTime: bigint
30
35
  ) {
31
36
  const active = contextApi.active()
32
- this.span = parent._tag === "Some"
33
- ? tracer.startSpan(
34
- name,
35
- { startTime: nanosToHrTime(startTime) },
36
- parent.value instanceof OtelSpan ?
37
- traceApi.setSpan(active, parent.value.span) :
38
- traceApi.setSpanContext(active, {
39
- spanId: parent.value.spanId,
40
- traceId: parent.value.traceId,
41
- isRemote: parent.value._tag === "ExternalSpan",
42
- traceFlags: Option.getOrElse(
43
- extractTraceTag(parent, context, traceFlagsTag),
44
- () => OtelApi.TraceFlags.SAMPLED
45
- ),
46
- traceState: Option.getOrUndefined(extractTraceTag(parent, context, traceStateTag))
47
- })
48
- )
49
- : tracer.startSpan(name, { startTime: nanosToHrTime(startTime) }, active)
37
+ this.span = tracer.startSpan(
38
+ name,
39
+ { startTime: nanosToHrTime(startTime) },
40
+ parent._tag === "Some" ? populateContext(active, parent.value, context) : active
41
+ )
50
42
  const spanContext = this.span.spanContext()
51
-
52
43
  this.spanId = spanContext.spanId
53
44
  this.traceId = spanContext.traceId
54
45
 
@@ -123,11 +114,6 @@ export const make = pipe(
123
114
  )
124
115
  )
125
116
 
126
- /** @internal */
127
- export const layer = Layer.unwrapEffect(
128
- Effect.map(make, Effect.setTracer)
129
- )
130
-
131
117
  /** @internal */
132
118
  export const traceFlagsTag = Context.Tag<OtelApi.TraceFlags>("@effect/opentelemetry/traceFlags")
133
119
 
@@ -149,41 +135,96 @@ export const makeExternalSpan = (options: {
149
135
  }
150
136
 
151
137
  if (options.traceState) {
152
- context = Option.match(
153
- createTraceState(options.traceState),
154
- () => context,
155
- (traceState) => Context.add(context, traceStateTag, traceState)
156
- )
138
+ context = Option.match(createTraceState(options.traceState), {
139
+ onNone: () => context,
140
+ onSome: (traceState) => Context.add(context, traceStateTag, traceState)
141
+ })
157
142
  }
158
143
 
159
144
  return {
160
145
  _tag: "ExternalSpan",
161
- name: options.name,
162
146
  traceId: options.traceId,
163
147
  spanId: options.spanId,
164
148
  context
165
149
  }
166
150
  }
167
151
 
168
- const oneE9 = 1_000_000_000n
152
+ /** @internal */
153
+ export class OtelSupervisor extends Supervisor.AbstractSupervisor<void> {
154
+ value(): Effect.Effect<never, never, void> {
155
+ return Effect.unit
156
+ }
157
+
158
+ onRun<E, A, X>(execution: () => X, fiber: RuntimeFiber<E, A>): X {
159
+ const currentSpan = Option.flatMap(
160
+ FiberRefs.get(
161
+ fiber.unsafeGetFiberRefs(),
162
+ FiberRef.currentTracerSpan
163
+ ),
164
+ List.head
165
+ )
166
+
167
+ if (currentSpan._tag === "None") {
168
+ return execution()
169
+ }
170
+
171
+ return OtelApi.context.with(
172
+ populateContext(OtelApi.context.active(), currentSpan.value),
173
+ execution
174
+ )
175
+ }
176
+ }
177
+
178
+ /** @internal */
179
+ export const supervisor = new OtelSupervisor()
180
+
181
+ /** @internal */
182
+ export const layer = Layer.merge(
183
+ Layer.unwrapEffect(Effect.map(make, Effect.setTracer)),
184
+ Supervisor.addSupervisor(supervisor)
185
+ )
186
+
187
+ // -------------------------------------------------------------------------------------
188
+ // utils
189
+ // -------------------------------------------------------------------------------------
190
+
191
+ const bigint1e9 = 1_000_000_000n
169
192
  const nanosToHrTime = (timestamp: bigint): OtelApi.HrTime => {
170
- const nanos = timestamp % oneE9
171
- const seconds = Number((timestamp - nanos) / oneE9)
172
- return [seconds, Number(nanos)]
193
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)]
173
194
  }
174
195
 
196
+ const createTraceState = Option.liftThrowable(OtelApi.createTraceState)
197
+
198
+ const populateContext = (
199
+ otelContext: OtelApi.Context,
200
+ span: Tracer.ParentSpan,
201
+ context?: Context.Context<never>
202
+ ): OtelApi.Context =>
203
+ span instanceof OtelSpan ?
204
+ OtelApi.trace.setSpan(otelContext, span.span) :
205
+ OtelApi.trace.setSpanContext(otelContext, {
206
+ spanId: span.spanId,
207
+ traceId: span.traceId,
208
+ isRemote: span._tag === "ExternalSpan",
209
+ traceFlags: Option.getOrElse(
210
+ context ?
211
+ extractTraceTag(span, context, traceFlagsTag) :
212
+ Context.getOption(span.context, traceFlagsTag),
213
+ () => OtelApi.TraceFlags.SAMPLED
214
+ ),
215
+ traceState: Option.getOrUndefined(
216
+ context ?
217
+ extractTraceTag(span, context, traceStateTag) :
218
+ Context.getOption(span.context, traceStateTag)
219
+ )
220
+ })
221
+
175
222
  const extractTraceTag = <I, S>(
176
- parent: Option.Option<Tracer.ParentSpan>,
223
+ parent: Tracer.ParentSpan,
177
224
  context: Context.Context<never>,
178
225
  tag: Context.Tag<I, S>
179
226
  ) =>
180
227
  Option.orElse(
181
228
  Context.getOption(context, tag),
182
- () =>
183
- Option.flatMap(
184
- parent,
185
- (parent) => Context.getOption(parent.context, tag)
186
- )
229
+ () => Context.getOption(parent.context, tag)
187
230
  )
188
-
189
- const createTraceState = Option.liftThrowable(OtelApi.createTraceState)
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../src/internal_effect_untraced/tracer.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer.js","names":["Context","_interopRequireWildcard","require","Option","Cause","Effect","Layer","Tracer","_Resource","OtelApi","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","OtelSpan","constructor","traceApi","contextApi","tracer","name","parent","context","startTime","_tag","attributes","Map","active","span","startSpan","nanosToHrTime","value","setSpan","setSpanContext","spanId","traceId","isRemote","traceFlags","getOrElse","extractTraceTag","traceFlagsTag","TraceFlags","SAMPLED","traceState","getOrUndefined","traceStateTag","spanContext","status","attribute","setAttribute","end","endTime","exit","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","ERROR","message","pretty","event","addEvent","exports","make","map","trace","flatMap","resource","sync","getTracer","Resource","layer","unwrapEffect","setTracer","Tag","makeExternalSpan","options","empty","add","match","createTraceState","oneE9","timestamp","nanos","seconds","Number","tag","orElse","getOption","liftThrowable"],"sources":["../src/internal_effect_untraced/tracer.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer.mjs","names":["Context","Option","Cause","Effect","Layer","Tracer","Resource","OtelApi","OtelSpan","constructor","traceApi","contextApi","tracer","name","parent","context","startTime","_tag","attributes","Map","active","span","startSpan","nanosToHrTime","value","setSpan","setSpanContext","spanId","traceId","isRemote","traceFlags","getOrElse","extractTraceTag","traceFlagsTag","TraceFlags","SAMPLED","traceState","getOrUndefined","traceStateTag","spanContext","status","attribute","key","setAttribute","set","end","endTime","exit","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","ERROR","message","pretty","event","addEvent","make","map","trace","flatMap","resource","sync","getTracer","layer","unwrapEffect","setTracer","Tag","makeExternalSpan","options","empty","add","match","createTraceState","oneE9","timestamp","nanos","seconds","Number","tag","orElse","getOption","liftThrowable"],"sources":["../../src/internal_effect_untraced/tracer.ts"],"sourcesContent":[null],"mappings":"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"}