@effect/opentelemetry 0.42.8 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/Logger/package.json +6 -0
  2. package/dist/cjs/Logger.js +85 -0
  3. package/dist/cjs/Logger.js.map +1 -0
  4. package/dist/cjs/NodeSdk.js +8 -4
  5. package/dist/cjs/NodeSdk.js.map +1 -1
  6. package/dist/cjs/Resource.js +14 -8
  7. package/dist/cjs/Resource.js.map +1 -1
  8. package/dist/cjs/WebSdk.js +7 -3
  9. package/dist/cjs/WebSdk.js.map +1 -1
  10. package/dist/cjs/index.js +3 -1
  11. package/dist/cjs/internal/tracer.js +6 -24
  12. package/dist/cjs/internal/tracer.js.map +1 -1
  13. package/dist/cjs/internal/utils.js +35 -0
  14. package/dist/cjs/internal/utils.js.map +1 -0
  15. package/dist/dts/Logger.d.ts +39 -0
  16. package/dist/dts/Logger.d.ts.map +1 -0
  17. package/dist/dts/NodeSdk.d.ts +4 -1
  18. package/dist/dts/NodeSdk.d.ts.map +1 -1
  19. package/dist/dts/Resource.d.ts +9 -0
  20. package/dist/dts/Resource.d.ts.map +1 -1
  21. package/dist/dts/WebSdk.d.ts +4 -1
  22. package/dist/dts/WebSdk.d.ts.map +1 -1
  23. package/dist/dts/index.d.ts +4 -0
  24. package/dist/dts/index.d.ts.map +1 -1
  25. package/dist/dts/internal/utils.d.ts +2 -0
  26. package/dist/dts/internal/utils.d.ts.map +1 -0
  27. package/dist/esm/Logger.js +74 -0
  28. package/dist/esm/Logger.js.map +1 -0
  29. package/dist/esm/NodeSdk.js +8 -4
  30. package/dist/esm/NodeSdk.js.map +1 -1
  31. package/dist/esm/Resource.js +11 -6
  32. package/dist/esm/Resource.js.map +1 -1
  33. package/dist/esm/WebSdk.js +7 -3
  34. package/dist/esm/WebSdk.js.map +1 -1
  35. package/dist/esm/index.js +4 -0
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/internal/tracer.js +1 -19
  38. package/dist/esm/internal/tracer.js.map +1 -1
  39. package/dist/esm/internal/utils.js +23 -0
  40. package/dist/esm/internal/utils.js.map +1 -0
  41. package/package.json +13 -2
  42. package/src/Logger.ts +111 -0
  43. package/src/NodeSdk.ts +24 -15
  44. package/src/Resource.ts +20 -9
  45. package/src/WebSdk.ts +23 -10
  46. package/src/index.ts +5 -0
  47. package/src/internal/tracer.ts +1 -22
  48. package/src/internal/utils.ts +31 -0
@@ -2,11 +2,12 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import type * as Resources from "@opentelemetry/resources";
5
+ import type { LoggerProviderConfig, LogRecordProcessor } from "@opentelemetry/sdk-logs";
5
6
  import type { MetricReader } from "@opentelemetry/sdk-metrics";
6
7
  import type { SpanProcessor, TracerConfig } from "@opentelemetry/sdk-trace-base";
7
8
  import type { NonEmptyReadonlyArray } from "effect/Array";
8
9
  import * as Effect from "effect/Effect";
9
- import type { LazyArg } from "effect/Function";
10
+ import { type LazyArg } from "effect/Function";
10
11
  import * as Layer from "effect/Layer";
11
12
  import * as Resource from "./Resource.js";
12
13
  import * as Tracer from "./Tracer.js";
@@ -18,6 +19,8 @@ export interface Configuration {
18
19
  readonly spanProcessor?: SpanProcessor | ReadonlyArray<SpanProcessor> | undefined;
19
20
  readonly tracerConfig?: Omit<TracerConfig, "resource">;
20
21
  readonly metricReader?: MetricReader | ReadonlyArray<MetricReader> | undefined;
22
+ readonly logRecordProcessor?: LogRecordProcessor | ReadonlyArray<LogRecordProcessor> | undefined;
23
+ readonly loggerProviderConfig?: Omit<LoggerProviderConfig, "resource"> | undefined;
21
24
  readonly resource: {
22
25
  readonly serviceName: string;
23
26
  readonly serviceVersion?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WebSdk.d.ts","sourceRoot":"","sources":["../../src/WebSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IAC9E,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAA;KACnD,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,WACtD,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAsB/D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;;OAGG;IACH,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAwBzF,CAAA"}
1
+ {"version":3,"file":"WebSdk.d.ts","sourceRoot":"","sources":["../../src/WebSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IAC9E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAA;IAChG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,GAAG,SAAS,CAAA;IAClF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAA;KACnD,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,WACtD,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAsB/D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;;OAGG;IACH,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAgCzF,CAAA"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ export * as Logger from "./Logger.js";
1
5
  /**
2
6
  * @since 1.0.0
3
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/internal/utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Otel from "@opentelemetry/sdk-logs";
5
+ import * as Arr from "effect/Array";
6
+ import * as Context from "effect/Context";
7
+ import * as Effect from "effect/Effect";
8
+ import * as FiberId from "effect/FiberId";
9
+ import * as Layer from "effect/Layer";
10
+ import * as Logger from "effect/Logger";
11
+ import { unknownToAttributeValue } from "./internal/utils.js";
12
+ import { Resource } from "./Resource.js";
13
+ /**
14
+ * @since 1.0.0
15
+ * @category tags
16
+ */
17
+ export class OtelLoggerProvider extends /*#__PURE__*/Context.Tag("@effect/opentelemetry/Logger/OtelLoggerProvider")() {}
18
+ /**
19
+ * @since 1.0.0
20
+ * @category constructors
21
+ */
22
+ export const make = /*#__PURE__*/Effect.gen(function* () {
23
+ const loggerProvider = yield* OtelLoggerProvider;
24
+ const clock = yield* Effect.clock;
25
+ const otelLogger = loggerProvider.getLogger("@effect/opentelemetry");
26
+ return Logger.make(options => {
27
+ const now = options.date.getTime();
28
+ const attributes = {
29
+ fiberId: FiberId.threadName(options.fiberId)
30
+ };
31
+ for (const [key, value] of options.annotations) {
32
+ attributes[key] = unknownToAttributeValue(value);
33
+ }
34
+ for (const span of options.spans) {
35
+ attributes[`logSpan.${span.label}`] = `${now - span.startTime}ms`;
36
+ }
37
+ const message = Arr.ensure(options.message).map(unknownToAttributeValue);
38
+ otelLogger.emit({
39
+ body: message.length === 1 ? message[0] : message,
40
+ severityText: options.logLevel.label,
41
+ severityNumber: options.logLevel.ordinal,
42
+ timestamp: options.date,
43
+ observedTimestamp: clock.unsafeCurrentTimeMillis(),
44
+ attributes
45
+ });
46
+ });
47
+ });
48
+ /**
49
+ * @since 1.0.0
50
+ * @category layers
51
+ */
52
+ export const layerLoggerAdd = /*#__PURE__*/Logger.addEffect(make);
53
+ /**
54
+ * @since 1.0.0
55
+ * @category layers
56
+ */
57
+ export const layerLoggerReplace = /*#__PURE__*/Logger.replaceEffect(Logger.defaultLogger, make);
58
+ /**
59
+ * @since 1.0.0
60
+ * @category layers
61
+ */
62
+ export const layerLoggerProvider = (processor, config) => Layer.scoped(OtelLoggerProvider, Effect.flatMap(Resource, resource => Effect.acquireRelease(Effect.sync(() => {
63
+ const provider = new Otel.LoggerProvider({
64
+ ...(config ?? undefined),
65
+ resource
66
+ });
67
+ if (Array.isArray(processor)) {
68
+ processor.forEach(p => provider.addLogRecordProcessor(p));
69
+ } else {
70
+ provider.addLogRecordProcessor(processor);
71
+ }
72
+ return provider;
73
+ }), provider => Effect.ignoreLogged(Effect.promise(() => provider.forceFlush().then(() => provider.shutdown()))))));
74
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","names":["Otel","Arr","Context","Effect","FiberId","Layer","Logger","unknownToAttributeValue","Resource","OtelLoggerProvider","Tag","make","gen","loggerProvider","clock","otelLogger","getLogger","options","now","date","getTime","attributes","fiberId","threadName","key","value","annotations","span","spans","label","startTime","message","ensure","map","emit","body","length","severityText","logLevel","severityNumber","ordinal","timestamp","observedTimestamp","unsafeCurrentTimeMillis","layerLoggerAdd","addEffect","layerLoggerReplace","replaceEffect","defaultLogger","layerLoggerProvider","processor","config","scoped","flatMap","resource","acquireRelease","sync","provider","LoggerProvider","undefined","Array","isArray","forEach","p","addLogRecordProcessor","ignoreLogged","promise","forceFlush","then","shutdown"],"sources":["../../src/Logger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,9 @@
1
1
  import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
2
2
  import * as Effect from "effect/Effect";
3
+ import { constant } from "effect/Function";
3
4
  import * as Layer from "effect/Layer";
5
+ import { isNonEmpty } from "./internal/utils.js";
6
+ import * as Logger from "./Logger.js";
4
7
  import * as Metrics from "./Metrics.js";
5
8
  import * as Resource from "./Resource.js";
6
9
  import * as Tracer from "./Tracer.js";
@@ -25,10 +28,11 @@ export const layerTracerProvider = (processor, config) => Layer.scoped(Tracer.Ot
25
28
  * @category layer
26
29
  */
27
30
  export const layer = evaluate => Layer.unwrapEffect(Effect.map(Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate), config => {
28
- const ResourceLive = config.resource === undefined ? Resource.layerFromEnv() : Resource.layer(config.resource);
29
- const TracerLive = config.spanProcessor && !(Array.isArray(config.spanProcessor) && config.spanProcessor.length === 0) ? Tracer.layer.pipe(Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.empty;
30
- const MetricsLive = config.metricReader && !(Array.isArray(config.metricReader) && config.metricReader.length === 0) ? Metrics.layer(() => config.metricReader) : Layer.empty;
31
- return Layer.merge(TracerLive, MetricsLive).pipe(Layer.provideMerge(ResourceLive));
31
+ const ResourceLive = Resource.layerFromEnv(config.resource && Resource.configToAttributes(config.resource));
32
+ const TracerLive = isNonEmpty(config.spanProcessor) ? Layer.provide(Tracer.layer, layerTracerProvider(config.spanProcessor, config.tracerConfig)) : Layer.empty;
33
+ const MetricsLive = isNonEmpty(config.metricReader) ? Metrics.layer(constant(config.metricReader)) : Layer.empty;
34
+ const LoggerLive = isNonEmpty(config.logRecordProcessor) ? Layer.provide(Logger.layerLoggerAdd, Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)) : Layer.empty;
35
+ return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(Layer.provideMerge(ResourceLive));
32
36
  }));
33
37
  /**
34
38
  * @since 2.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSdk.js","names":["NodeTracerProvider","Effect","Layer","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","OtelTracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","Array","isArray","forEach","p","addSpanProcessor","ignoreLogged","promise","forceFlush","then","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","layerFromEnv","TracerLive","spanProcessor","length","pipe","provide","tracerConfig","empty","MetricsLive","metricReader","merge","provideMerge","layerEmpty"],"sources":["../../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"AAMA,SAASA,kBAAkB,QAAQ,+BAA+B;AAElE,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AAiBrC;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAA+D,EAC/DC,MAAuC,KAEvCN,KAAK,CAACO,MAAM,CACVJ,MAAM,CAACK,kBAAkB,EACzBT,MAAM,CAACU,OAAO,CACZP,QAAQ,CAACA,QAAQ,EAChBQ,QAAQ,IACPX,MAAM,CAACY,cAAc,CACnBZ,MAAM,CAACa,IAAI,CAAC,MAAK;EACf,MAAMC,QAAQ,GAAG,IAAIf,kBAAkB,CAAC;IACtC,IAAIQ,MAAM,IAAIQ,SAAS,CAAC;IACxBJ;GACD,CAAC;EACF,IAAIK,KAAK,CAACC,OAAO,CAACX,SAAS,CAAC,EAAE;IAC5BA,SAAS,CAACY,OAAO,CAAEC,CAAC,IAAKL,QAAQ,CAACM,gBAAgB,CAACD,CAAC,CAAC,CAAC;EACxD,CAAC,MAAM;IACLL,QAAQ,CAACM,gBAAgB,CAACd,SAAgB,CAAC;EAC7C;EACA,OAAOQ,QAAQ;AACjB,CAAC,CAAC,EACDA,QAAQ,IAAKd,MAAM,CAACqB,YAAY,CAACrB,MAAM,CAACsB,OAAO,CAAC,MAAMR,QAAQ,CAACS,UAAU,EAAE,CAACC,IAAI,CAAC,MAAMV,QAAQ,CAACW,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC/G,CACJ,CACF;AAEH;;;;AAIA,OAAO,MAAMC,KAAK,GAYhBC,QAAyE,IAEzE1B,KAAK,CAAC2B,YAAY,CAChB5B,MAAM,CAAC6B,GAAG,CACR7B,MAAM,CAAC8B,QAAQ,CAACH,QAAQ,CAAC,GACrBA,QAAwC,GACxC3B,MAAM,CAACa,IAAI,CAACc,QAAQ,CAAC,EACxBpB,MAAM,IAAI;EACT,MAAMwB,YAAY,GAAGxB,MAAM,CAACI,QAAQ,KAAKI,SAAS,GAC9CZ,QAAQ,CAAC6B,YAAY,EAAE,GACvB7B,QAAQ,CAACuB,KAAK,CAACnB,MAAM,CAACI,QAAQ,CAAC;EACnC,MAAMsB,UAAU,GACd1B,MAAM,CAAC2B,aAAa,IAAI,EAAElB,KAAK,CAACC,OAAO,CAACV,MAAM,CAAC2B,aAAa,CAAC,IAAI3B,MAAM,CAAC2B,aAAa,CAACC,MAAM,KAAK,CAAC,CAAC,GACjG/B,MAAM,CAACsB,KAAK,CAACU,IAAI,CACfnC,KAAK,CAACoC,OAAO,CAAChC,mBAAmB,CAACE,MAAM,CAAC2B,aAAoB,EAAE3B,MAAM,CAAC+B,YAAY,CAAC,CAAC,CACrF,GACCrC,KAAK,CAACsC,KAAK;EACjB,MAAMC,WAAW,GACfjC,MAAM,CAACkC,YAAY,IAAI,EAAEzB,KAAK,CAACC,OAAO,CAACV,MAAM,CAACkC,YAAY,CAAC,IAAIlC,MAAM,CAACkC,YAAY,CAACN,MAAM,KAAK,CAAC,CAAC,GAC5FjC,OAAO,CAACwB,KAAK,CAAC,MAAMnB,MAAM,CAACkC,YAAmB,CAAC,GAC/CxC,KAAK,CAACsC,KAAK;EACjB,OAAOtC,KAAK,CAACyC,KAAK,CAACT,UAAU,EAAEO,WAAW,CAAC,CAACJ,IAAI,CAC9CnC,KAAK,CAAC0C,YAAY,CAACZ,YAAY,CAAC,CACjC;AACH,CAAC,CACF,CACF;AAEH;;;;AAIA,OAAO,MAAMa,UAAU,GAAmCzC,QAAQ,CAACyC,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"NodeSdk.js","names":["NodeTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","OtelTracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","Array","isArray","forEach","p","addSpanProcessor","ignoreLogged","promise","forceFlush","then","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","layerFromEnv","configToAttributes","TracerLive","spanProcessor","provide","tracerConfig","empty","MetricsLive","metricReader","LoggerLive","logRecordProcessor","layerLoggerAdd","layerLoggerProvider","loggerProviderConfig","mergeAll","pipe","provideMerge","layerEmpty"],"sources":["../../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -18,17 +18,22 @@ export const Resource = /*#__PURE__*/GenericTag("@effect/opentelemetry/Resource"
18
18
  * @since 1.0.0
19
19
  * @category layer
20
20
  */
21
- export const layer = config => {
21
+ export const layer = config => Layer.succeed(Resource, new Resources.Resource(configToAttributes(config)));
22
+ /**
23
+ * @since 1.0.0
24
+ * @category config
25
+ */
26
+ export const configToAttributes = options => {
22
27
  const attributes = {
23
- ...(config.attributes ?? undefined),
24
- [SEMRESATTRS_SERVICE_NAME]: config.serviceName,
28
+ ...(options.attributes ?? undefined),
29
+ [SEMRESATTRS_SERVICE_NAME]: options.serviceName,
25
30
  [SEMRESATTRS_TELEMETRY_SDK_NAME]: "@effect/opentelemetry",
26
31
  [SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]: typeof globalThis.document === "undefined" ? TELEMETRYSDKLANGUAGEVALUES_NODEJS : TELEMETRYSDKLANGUAGEVALUES_WEBJS
27
32
  };
28
- if (config.serviceVersion) {
29
- attributes[SEMRESATTRS_SERVICE_VERSION] = config.serviceVersion;
33
+ if (options.serviceVersion) {
34
+ attributes[SEMRESATTRS_SERVICE_VERSION] = options.serviceVersion;
30
35
  }
31
- return Layer.succeed(Resource, new Resources.Resource(attributes));
36
+ return attributes;
32
37
  };
33
38
  /**
34
39
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.js","names":["Resources","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","SEMRESATTRS_TELEMETRY_SDK_NAME","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_WEBJS","Arr","Config","GenericTag","Effect","pipe","Layer","Resource","layer","config","attributes","undefined","serviceName","globalThis","document","serviceVersion","succeed","layerFromEnv","additionalAttributes","effect","gen","string","option","orDie","withDefault","map","s","attrs","split","reduce","acc","attr","parts","length","trim","_tag","value","Object","assign","layerEmpty","empty"],"sources":["../../src/Resource.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Resource.js","names":["Resources","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","SEMRESATTRS_TELEMETRY_SDK_NAME","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_WEBJS","Arr","Config","GenericTag","Effect","pipe","Layer","Resource","layer","config","succeed","configToAttributes","options","attributes","undefined","serviceName","globalThis","document","serviceVersion","layerFromEnv","additionalAttributes","effect","gen","string","option","orDie","withDefault","map","s","attrs","split","reduce","acc","attr","parts","length","trim","_tag","value","Object","assign","layerEmpty","empty"],"sources":["../../src/Resource.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,9 @@
1
1
  import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
2
2
  import * as Effect from "effect/Effect";
3
+ import { constant } from "effect/Function";
3
4
  import * as Layer from "effect/Layer";
5
+ import { isNonEmpty } from "./internal/utils.js";
6
+ import * as Logger from "./Logger.js";
4
7
  import * as Metrics from "./Metrics.js";
5
8
  import * as Resource from "./Resource.js";
6
9
  import * as Tracer from "./Tracer.js";
@@ -26,8 +29,9 @@ export const layerTracerProvider = (processor, config) => Layer.scoped(Tracer.Ot
26
29
  */
27
30
  export const layer = evaluate => Layer.unwrapEffect(Effect.map(Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate), config => {
28
31
  const ResourceLive = Resource.layer(config.resource);
29
- const TracerLive = config.spanProcessor && !(Array.isArray(config.spanProcessor) && config.spanProcessor.length === 0) ? Tracer.layer.pipe(Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.effectDiscard(Effect.void);
30
- const MetricsLive = config.metricReader && !(Array.isArray(config.metricReader) && config.metricReader.length === 0) ? Metrics.layer(() => config.metricReader) : Layer.effectDiscard(Effect.void);
31
- return Layer.merge(TracerLive, MetricsLive).pipe(Layer.provideMerge(ResourceLive));
32
+ const TracerLive = isNonEmpty(config.spanProcessor) ? Layer.provide(Tracer.layer, layerTracerProvider(config.spanProcessor, config.tracerConfig)) : Layer.empty;
33
+ const LoggerLive = isNonEmpty(config.logRecordProcessor) ? Layer.provide(Logger.layerLoggerAdd, Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)) : Layer.empty;
34
+ const MetricsLive = isNonEmpty(config.metricReader) ? Metrics.layer(constant(config.metricReader)) : Layer.empty;
35
+ return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(Layer.provideMerge(ResourceLive));
32
36
  }));
33
37
  //# sourceMappingURL=WebSdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","Layer","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","OtelTracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","Array","isArray","forEach","p","addSpanProcessor","ignoreLogged","promise","forceFlush","then","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","TracerLive","spanProcessor","length","pipe","provide","tracerConfig","effectDiscard","void","MetricsLive","metricReader","merge","provideMerge"],"sources":["../../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"AAMA,SAASA,iBAAiB,QAAQ,8BAA8B;AAEhE,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AAiBrC;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAA+D,EAC/DC,MAAuC,KAEvCN,KAAK,CAACO,MAAM,CACVJ,MAAM,CAACK,kBAAkB,EACzBT,MAAM,CAACU,OAAO,CACZP,QAAQ,CAACA,QAAQ,EAChBQ,QAAQ,IACPX,MAAM,CAACY,cAAc,CACnBZ,MAAM,CAACa,IAAI,CAAC,MAAK;EACf,MAAMC,QAAQ,GAAG,IAAIf,iBAAiB,CAAC;IACrC,IAAIQ,MAAM,IAAIQ,SAAS,CAAC;IACxBJ;GACD,CAAC;EACF,IAAIK,KAAK,CAACC,OAAO,CAACX,SAAS,CAAC,EAAE;IAC5BA,SAAS,CAACY,OAAO,CAAEC,CAAC,IAAKL,QAAQ,CAACM,gBAAgB,CAACD,CAAC,CAAC,CAAC;EACxD,CAAC,MAAM;IACLL,QAAQ,CAACM,gBAAgB,CAACd,SAAgB,CAAC;EAC7C;EACA,OAAOQ,QAAQ;AACjB,CAAC,CAAC,EACDA,QAAQ,IAAKd,MAAM,CAACqB,YAAY,CAACrB,MAAM,CAACsB,OAAO,CAAC,MAAMR,QAAQ,CAACS,UAAU,EAAE,CAACC,IAAI,CAAC,MAAMV,QAAQ,CAACW,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC/G,CACJ,CACF;AAEH;;;;AAIA,OAAO,MAAMC,KAAK,GAYhBC,QAAyE,IAEzE1B,KAAK,CAAC2B,YAAY,CAChB5B,MAAM,CAAC6B,GAAG,CACR7B,MAAM,CAAC8B,QAAQ,CAACH,QAAQ,CAAC,GACrBA,QAAwC,GACxC3B,MAAM,CAACa,IAAI,CAACc,QAAQ,CAAC,EACxBpB,MAAM,IAAI;EACT,MAAMwB,YAAY,GAAG5B,QAAQ,CAACuB,KAAK,CAACnB,MAAM,CAACI,QAAQ,CAAC;EACpD,MAAMqB,UAAU,GACdzB,MAAM,CAAC0B,aAAa,IAAI,EAAEjB,KAAK,CAACC,OAAO,CAACV,MAAM,CAAC0B,aAAa,CAAC,IAAI1B,MAAM,CAAC0B,aAAa,CAACC,MAAM,KAAK,CAAC,CAAC,GACjG9B,MAAM,CAACsB,KAAK,CAACS,IAAI,CAAClC,KAAK,CAACmC,OAAO,CAAC/B,mBAAmB,CAACE,MAAM,CAAC0B,aAAoB,EAAE1B,MAAM,CAAC8B,YAAY,CAAC,CAAC,CAAC,GACrGpC,KAAK,CAACqC,aAAa,CAACtC,MAAM,CAACuC,IAAI,CAAC;EACtC,MAAMC,WAAW,GACfjC,MAAM,CAACkC,YAAY,IAAI,EAAEzB,KAAK,CAACC,OAAO,CAACV,MAAM,CAACkC,YAAY,CAAC,IAAIlC,MAAM,CAACkC,YAAY,CAACP,MAAM,KAAK,CAAC,CAAC,GAC5FhC,OAAO,CAACwB,KAAK,CAAC,MAAMnB,MAAM,CAACkC,YAAmB,CAAC,GAC/CxC,KAAK,CAACqC,aAAa,CAACtC,MAAM,CAACuC,IAAI,CAAC;EACtC,OAAOtC,KAAK,CAACyC,KAAK,CAACV,UAAU,EAAEQ,WAAW,CAAC,CAACL,IAAI,CAC9ClC,KAAK,CAAC0C,YAAY,CAACZ,YAAY,CAAC,CACjC;AACH,CAAC,CACF,CACF","ignoreList":[]}
1
+ {"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","OtelTracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","Array","isArray","forEach","p","addSpanProcessor","ignoreLogged","promise","forceFlush","then","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","TracerLive","spanProcessor","provide","tracerConfig","empty","LoggerLive","logRecordProcessor","layerLoggerAdd","layerLoggerProvider","loggerProviderConfig","MetricsLive","metricReader","mergeAll","pipe","provideMerge"],"sources":["../../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"AAOA,SAASA,iBAAiB,QAAQ,8BAA8B;AAEhE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAsB,iBAAiB;AACxD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,UAAU,QAAQ,qBAAqB;AAChD,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AAmBrC;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAA+D,EAC/DC,MAAuC,KAEvCR,KAAK,CAACS,MAAM,CACVJ,MAAM,CAACK,kBAAkB,EACzBZ,MAAM,CAACa,OAAO,CACZP,QAAQ,CAACA,QAAQ,EAChBQ,QAAQ,IACPd,MAAM,CAACe,cAAc,CACnBf,MAAM,CAACgB,IAAI,CAAC,MAAK;EACf,MAAMC,QAAQ,GAAG,IAAIlB,iBAAiB,CAAC;IACrC,IAAIW,MAAM,IAAIQ,SAAS,CAAC;IACxBJ;GACD,CAAC;EACF,IAAIK,KAAK,CAACC,OAAO,CAACX,SAAS,CAAC,EAAE;IAC5BA,SAAS,CAACY,OAAO,CAAEC,CAAC,IAAKL,QAAQ,CAACM,gBAAgB,CAACD,CAAC,CAAC,CAAC;EACxD,CAAC,MAAM;IACLL,QAAQ,CAACM,gBAAgB,CAACd,SAAgB,CAAC;EAC7C;EACA,OAAOQ,QAAQ;AACjB,CAAC,CAAC,EACDA,QAAQ,IAAKjB,MAAM,CAACwB,YAAY,CAACxB,MAAM,CAACyB,OAAO,CAAC,MAAMR,QAAQ,CAACS,UAAU,EAAE,CAACC,IAAI,CAAC,MAAMV,QAAQ,CAACW,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC/G,CACJ,CACF;AAEH;;;;AAIA,OAAO,MAAMC,KAAK,GAYhBC,QAAyE,IAEzE5B,KAAK,CAAC6B,YAAY,CAChB/B,MAAM,CAACgC,GAAG,CACRhC,MAAM,CAACiC,QAAQ,CAACH,QAAQ,CAAC,GACrBA,QAAwC,GACxC9B,MAAM,CAACgB,IAAI,CAACc,QAAQ,CAAC,EACxBpB,MAAM,IAAI;EACT,MAAMwB,YAAY,GAAG5B,QAAQ,CAACuB,KAAK,CAACnB,MAAM,CAACI,QAAQ,CAAC;EAEpD,MAAMqB,UAAU,GAAGhC,UAAU,CAACO,MAAM,CAAC0B,aAAa,CAAC,GAC/ClC,KAAK,CAACmC,OAAO,CAAC9B,MAAM,CAACsB,KAAK,EAAErB,mBAAmB,CAACE,MAAM,CAAC0B,aAAa,EAAE1B,MAAM,CAAC4B,YAAY,CAAC,CAAC,GAC3FpC,KAAK,CAACqC,KAAK;EAEf,MAAMC,UAAU,GAAGrC,UAAU,CAACO,MAAM,CAAC+B,kBAAkB,CAAC,GACpDvC,KAAK,CAACmC,OAAO,CACbjC,MAAM,CAACsC,cAAc,EACrBtC,MAAM,CAACuC,mBAAmB,CAACjC,MAAM,CAAC+B,kBAAkB,EAAE/B,MAAM,CAACkC,oBAAoB,CAAC,CACnF,GACC1C,KAAK,CAACqC,KAAK;EAEf,MAAMM,WAAW,GAAG1C,UAAU,CAACO,MAAM,CAACoC,YAAY,CAAC,GAC/CzC,OAAO,CAACwB,KAAK,CAAC5B,QAAQ,CAACS,MAAM,CAACoC,YAAY,CAAC,CAAC,GAC5C5C,KAAK,CAACqC,KAAK;EAEf,OAAOrC,KAAK,CAAC6C,QAAQ,CAACZ,UAAU,EAAEU,WAAW,EAAEL,UAAU,CAAC,CAACQ,IAAI,CAC7D9C,KAAK,CAAC+C,YAAY,CAACf,YAAY,CAAC,CACjC;AACH,CAAC,CACF,CACF","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ export * as Logger from "./Logger.js";
1
5
  /**
2
6
  * @since 1.0.0
3
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Metrics","NodeSdk","Resource","Tracer","WebSdk"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","Resource","Tracer","WebSdk"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
@@ -3,11 +3,11 @@ import * as Cause from "effect/Cause";
3
3
  import * as Context from "effect/Context";
4
4
  import * as Effect from "effect/Effect";
5
5
  import { dual } from "effect/Function";
6
- import * as Inspectable from "effect/Inspectable";
7
6
  import * as Layer from "effect/Layer";
8
7
  import * as Option from "effect/Option";
9
8
  import * as EffectTracer from "effect/Tracer";
10
9
  import { Resource } from "../Resource.js";
10
+ import { nanosToHrTime, recordToAttributes, unknownToAttributeValue } from "./utils.js";
11
11
  const OtelSpanTypeId = /*#__PURE__*/Symbol.for("@effect/opentelemetry/Tracer/OtelSpan");
12
12
  const kindMap = {
13
13
  "internal": OtelApi.SpanKind.INTERNAL,
@@ -169,10 +169,6 @@ export const layer = /*#__PURE__*/layerWithoutOtelTracer.pipe( /*#__PURE__*/Laye
169
169
  // -------------------------------------------------------------------------------------
170
170
  // utils
171
171
  // -------------------------------------------------------------------------------------
172
- const bigint1e9 = 1000000000n;
173
- const nanosToHrTime = timestamp => {
174
- return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
175
- };
176
172
  const createTraceState = /*#__PURE__*/Option.liftThrowable(OtelApi.createTraceState);
177
173
  const populateContext = (otelContext, span, context) => span instanceof OtelSpan ? OtelApi.trace.setSpan(otelContext, span.span) : OtelApi.trace.setSpanContext(otelContext, makeSpanContext(span, context));
178
174
  const makeSpanContext = (span, context) => ({
@@ -183,20 +179,6 @@ const makeSpanContext = (span, context) => ({
183
179
  traceState: Option.getOrUndefined(context ? extractTraceTag(span, context, traceStateTag) : Context.getOption(span.context, traceStateTag))
184
180
  });
185
181
  const extractTraceTag = (parent, context, tag) => Option.orElse(Context.getOption(context, tag), () => Context.getOption(parent.context, tag));
186
- const recordToAttributes = value => {
187
- return Object.entries(value).reduce((acc, [key, value]) => {
188
- acc[key] = unknownToAttributeValue(value);
189
- return acc;
190
- }, {});
191
- };
192
- const unknownToAttributeValue = value => {
193
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
194
- return value;
195
- } else if (typeof value === "bigint") {
196
- return Number(value);
197
- }
198
- return Inspectable.toStringUnknown(value);
199
- };
200
182
  /** @internal */
201
183
  export const withSpanContext = /*#__PURE__*/dual(2, (effect, spanContext) => Effect.withParentSpan(effect, makeExternalSpan(spanContext)));
202
184
  //# sourceMappingURL=tracer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","names":["OtelApi","Cause","Context","Effect","dual","Inspectable","Layer","Option","EffectTracer","Resource","OtelSpanTypeId","Symbol","for","kindMap","SpanKind","INTERNAL","CLIENT","SERVER","PRODUCER","CONSUMER","OtelSpan","name","parent","context","links","kind","_tag","span","spanId","traceId","attributes","Map","sampled","status","constructor","contextApi","tracer","startTime","active","startSpan","nanosToHrTime","length","map","link","makeSpanContext","recordToAttributes","undefined","populateContext","value","trace","deleteSpan","spanContext","traceFlags","TraceFlags","SAMPLED","attribute","key","setAttribute","unknownToAttributeValue","set","end","endTime","exit","hrTime","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","message","pretty","errors","prettyErrors","error","recordException","ERROR","event","addEvent","TracerProvider","GenericTag","Tracer","make","execution","fiber","currentSpan","with","traceFlagsTag","traceStateTag","makeExternalSpan","options","empty","add","traceState","match","createTraceState","onNone","onSome","currentOtelSpan","flatMap","succeed","fail","NoSuchElementException","layerGlobalProvider","sync","getTracerProvider","layerTracer","effect","zip","resource","provider","getTracer","layerGlobalTracer","pipe","provide","layerGlobal","unwrapEffect","setTracer","provideMerge","layerWithoutOtelTracer","layer","bigint1e9","timestamp","Number","liftThrowable","otelContext","setSpan","setSpanContext","isRemote","getOrElse","extractTraceTag","getOption","getOrUndefined","tag","orElse","Object","entries","reduce","acc","toStringUnknown","withSpanContext","withParentSpan"],"sources":["../../../src/internal/tracer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"tracer.js","names":["OtelApi","Cause","Context","Effect","dual","Layer","Option","EffectTracer","Resource","nanosToHrTime","recordToAttributes","unknownToAttributeValue","OtelSpanTypeId","Symbol","for","kindMap","SpanKind","INTERNAL","CLIENT","SERVER","PRODUCER","CONSUMER","OtelSpan","name","parent","context","links","kind","_tag","span","spanId","traceId","attributes","Map","sampled","status","constructor","contextApi","tracer","startTime","active","startSpan","length","map","link","makeSpanContext","undefined","populateContext","value","trace","deleteSpan","spanContext","traceFlags","TraceFlags","SAMPLED","attribute","key","setAttribute","set","end","endTime","exit","hrTime","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","message","pretty","errors","prettyErrors","error","recordException","ERROR","event","addEvent","TracerProvider","GenericTag","Tracer","make","execution","fiber","currentSpan","with","traceFlagsTag","traceStateTag","makeExternalSpan","options","empty","add","traceState","match","createTraceState","onNone","onSome","currentOtelSpan","flatMap","succeed","fail","NoSuchElementException","layerGlobalProvider","sync","getTracerProvider","layerTracer","effect","zip","resource","provider","getTracer","layerGlobalTracer","pipe","provide","layerGlobal","unwrapEffect","setTracer","provideMerge","layerWithoutOtelTracer","layer","liftThrowable","otelContext","setSpan","setSpanContext","isRemote","getOrElse","extractTraceTag","getOption","getOrUndefined","tag","orElse","withSpanContext","withParentSpan"],"sources":["../../../src/internal/tracer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import * as Inspectable from "effect/Inspectable";
2
+ const bigint1e9 = 1000000000n;
3
+ /** @internal */
4
+ export const nanosToHrTime = timestamp => {
5
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
6
+ };
7
+ /** @internal */
8
+ export const recordToAttributes = value => Object.entries(value).reduce((acc, [key, value]) => {
9
+ acc[key] = unknownToAttributeValue(value);
10
+ return acc;
11
+ }, {});
12
+ /** @internal */
13
+ export const unknownToAttributeValue = value => {
14
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
15
+ return value;
16
+ } else if (typeof value === "bigint") {
17
+ return Number(value);
18
+ }
19
+ return Inspectable.toStringUnknown(value);
20
+ };
21
+ /** @internal */
22
+ export const isNonEmpty = a => a !== undefined && !(Array.isArray(a) && a.length === 0);
23
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["Inspectable","bigint1e9","nanosToHrTime","timestamp","Number","recordToAttributes","value","Object","entries","reduce","acc","key","unknownToAttributeValue","toStringUnknown","isNonEmpty","a","undefined","Array","isArray","length"],"sources":["../../../src/internal/utils.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD,MAAMC,SAAS,GAAG,WAAc;AAEhC;AACA,OAAO,MAAMC,aAAa,GAAIC,SAAiB,IAAoB;EACjE,OAAO,CAACC,MAAM,CAACD,SAAS,GAAGF,SAAS,CAAC,EAAEG,MAAM,CAACD,SAAS,GAAGF,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;AACA,OAAO,MAAMI,kBAAkB,GAAIC,KAA8B,IAC/DC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAE,CAACC,GAAG,EAAEL,KAAK,CAAC,KAAI;EACjDI,GAAG,CAACC,GAAG,CAAC,GAAGC,uBAAuB,CAACN,KAAK,CAAC;EACzC,OAAOI,GAAG;AACZ,CAAC,EAAE,EAAwB,CAAC;AAE9B;AACA,OAAO,MAAME,uBAAuB,GAAIN,KAAc,IAA4B;EAChF,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOF,MAAM,CAACE,KAAK,CAAC;EACtB;EACA,OAAON,WAAW,CAACa,eAAe,CAACP,KAAK,CAAC;AAC3C,CAAC;AAED;AACA,OAAO,MAAMQ,UAAU,GAAOC,CAAmC,IAC/DA,CAAC,KAAKC,SAAS,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAIA,CAAC,CAACI,MAAM,KAAK,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/opentelemetry",
3
- "version": "0.42.8",
3
+ "version": "0.43.0",
4
4
  "description": "OpenTelemetry integration for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -17,7 +17,7 @@
17
17
  "@opentelemetry/sdk-trace-node": "^1.22",
18
18
  "@opentelemetry/sdk-trace-web": "^1.22",
19
19
  "@opentelemetry/semantic-conventions": "^1.24.1",
20
- "effect": "^3.12.8"
20
+ "effect": "^3.12.10"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "@opentelemetry/sdk-metrics": {
@@ -31,6 +31,9 @@
31
31
  },
32
32
  "@opentelemetry/sdk-trace-web": {
33
33
  "optional": true
34
+ },
35
+ "@opentelemetry/sdk-logs": {
36
+ "optional": true
34
37
  }
35
38
  },
36
39
  "publishConfig": {
@@ -46,6 +49,11 @@
46
49
  "import": "./dist/esm/index.js",
47
50
  "default": "./dist/cjs/index.js"
48
51
  },
52
+ "./Logger": {
53
+ "types": "./dist/dts/Logger.d.ts",
54
+ "import": "./dist/esm/Logger.js",
55
+ "default": "./dist/cjs/Logger.js"
56
+ },
49
57
  "./Metrics": {
50
58
  "types": "./dist/dts/Metrics.d.ts",
51
59
  "import": "./dist/esm/Metrics.js",
@@ -74,6 +82,9 @@
74
82
  },
75
83
  "typesVersions": {
76
84
  "*": {
85
+ "Logger": [
86
+ "./dist/dts/Logger.d.ts"
87
+ ],
77
88
  "Metrics": [
78
89
  "./dist/dts/Metrics.d.ts"
79
90
  ],
package/src/Logger.ts ADDED
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Otel from "@opentelemetry/sdk-logs"
5
+ import type { NonEmptyReadonlyArray } from "effect/Array"
6
+ import * as Arr from "effect/Array"
7
+ import * as Context from "effect/Context"
8
+ import * as Effect from "effect/Effect"
9
+ import * as FiberId from "effect/FiberId"
10
+ import * as Layer from "effect/Layer"
11
+ import * as Logger from "effect/Logger"
12
+ import { unknownToAttributeValue } from "./internal/utils.js"
13
+ import { Resource } from "./Resource.js"
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category tags
18
+ */
19
+ export class OtelLoggerProvider extends Context.Tag("@effect/opentelemetry/Logger/OtelLoggerProvider")<
20
+ OtelLoggerProvider,
21
+ Otel.LoggerProvider
22
+ >() {}
23
+
24
+ /**
25
+ * @since 1.0.0
26
+ * @category constructors
27
+ */
28
+ export const make: Effect.Effect<
29
+ Logger.Logger<unknown, void>,
30
+ never,
31
+ OtelLoggerProvider
32
+ > = Effect.gen(function*() {
33
+ const loggerProvider = yield* OtelLoggerProvider
34
+ const clock = yield* Effect.clock
35
+ const otelLogger = loggerProvider.getLogger("@effect/opentelemetry")
36
+
37
+ return Logger.make((options) => {
38
+ const now = options.date.getTime()
39
+
40
+ const attributes: Record<string, any> = {
41
+ fiberId: FiberId.threadName(options.fiberId)
42
+ }
43
+ for (const [key, value] of options.annotations) {
44
+ attributes[key] = unknownToAttributeValue(value)
45
+ }
46
+ for (const span of options.spans) {
47
+ attributes[`logSpan.${span.label}`] = `${now - span.startTime}ms`
48
+ }
49
+
50
+ const message = Arr.ensure(options.message).map(unknownToAttributeValue)
51
+ otelLogger.emit({
52
+ body: message.length === 1 ? message[0] : message,
53
+ severityText: options.logLevel.label,
54
+ severityNumber: options.logLevel.ordinal,
55
+ timestamp: options.date,
56
+ observedTimestamp: clock.unsafeCurrentTimeMillis(),
57
+ attributes
58
+ })
59
+ })
60
+ })
61
+
62
+ /**
63
+ * @since 1.0.0
64
+ * @category layers
65
+ */
66
+ export const layerLoggerAdd: Layer.Layer<
67
+ never,
68
+ never,
69
+ OtelLoggerProvider
70
+ > = Logger.addEffect(make)
71
+
72
+ /**
73
+ * @since 1.0.0
74
+ * @category layers
75
+ */
76
+ export const layerLoggerReplace: Layer.Layer<
77
+ never,
78
+ never,
79
+ OtelLoggerProvider
80
+ > = Logger.replaceEffect(Logger.defaultLogger, make)
81
+
82
+ /**
83
+ * @since 1.0.0
84
+ * @category layers
85
+ */
86
+ export const layerLoggerProvider = (
87
+ processor: Otel.LogRecordProcessor | NonEmptyReadonlyArray<Otel.LogRecordProcessor>,
88
+ config?: Omit<Otel.LoggerProviderConfig, "resource">
89
+ ): Layer.Layer<OtelLoggerProvider, never, Resource> =>
90
+ Layer.scoped(
91
+ OtelLoggerProvider,
92
+ Effect.flatMap(Resource, (resource) =>
93
+ Effect.acquireRelease(
94
+ Effect.sync(() => {
95
+ const provider = new Otel.LoggerProvider({
96
+ ...(config ?? undefined),
97
+ resource
98
+ })
99
+ if (Array.isArray(processor)) {
100
+ processor.forEach((p) => provider.addLogRecordProcessor(p))
101
+ } else {
102
+ provider.addLogRecordProcessor(processor as any)
103
+ }
104
+ return provider
105
+ }),
106
+ (provider) =>
107
+ Effect.ignoreLogged(Effect.promise(
108
+ () => provider.forceFlush().then(() => provider.shutdown())
109
+ ))
110
+ ))
111
+ )