@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.
- package/Logger/package.json +6 -0
- package/dist/cjs/Logger.js +85 -0
- package/dist/cjs/Logger.js.map +1 -0
- package/dist/cjs/NodeSdk.js +8 -4
- package/dist/cjs/NodeSdk.js.map +1 -1
- package/dist/cjs/Resource.js +14 -8
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/WebSdk.js +7 -3
- package/dist/cjs/WebSdk.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/tracer.js +6 -24
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/utils.js +35 -0
- package/dist/cjs/internal/utils.js.map +1 -0
- package/dist/dts/Logger.d.ts +39 -0
- package/dist/dts/Logger.d.ts.map +1 -0
- package/dist/dts/NodeSdk.d.ts +4 -1
- package/dist/dts/NodeSdk.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +9 -0
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/WebSdk.d.ts +4 -1
- package/dist/dts/WebSdk.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/utils.d.ts +2 -0
- package/dist/dts/internal/utils.d.ts.map +1 -0
- package/dist/esm/Logger.js +74 -0
- package/dist/esm/Logger.js.map +1 -0
- package/dist/esm/NodeSdk.js +8 -4
- package/dist/esm/NodeSdk.js.map +1 -1
- package/dist/esm/Resource.js +11 -6
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/WebSdk.js +7 -3
- package/dist/esm/WebSdk.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/tracer.js +1 -19
- package/dist/esm/internal/tracer.js.map +1 -1
- package/dist/esm/internal/utils.js +23 -0
- package/dist/esm/internal/utils.js.map +1 -0
- package/package.json +13 -2
- package/src/Logger.ts +111 -0
- package/src/NodeSdk.ts +24 -15
- package/src/Resource.ts +20 -9
- package/src/WebSdk.ts +23 -10
- package/src/index.ts +5 -0
- package/src/internal/tracer.ts +1 -22
- package/src/internal/utils.ts +31 -0
package/dist/dts/WebSdk.d.ts
CHANGED
|
@@ -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
|
|
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;
|
package/dist/dts/WebSdk.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/dts/index.d.ts
CHANGED
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -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 @@
|
|
|
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":[]}
|
package/dist/esm/NodeSdk.js
CHANGED
|
@@ -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 =
|
|
29
|
-
const TracerLive =
|
|
30
|
-
const MetricsLive =
|
|
31
|
-
|
|
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
|
package/dist/esm/NodeSdk.js.map
CHANGED
|
@@ -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","
|
|
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":[]}
|
package/dist/esm/Resource.js
CHANGED
|
@@ -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
|
-
...(
|
|
24
|
-
[SEMRESATTRS_SERVICE_NAME]:
|
|
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 (
|
|
29
|
-
attributes[SEMRESATTRS_SERVICE_VERSION] =
|
|
33
|
+
if (options.serviceVersion) {
|
|
34
|
+
attributes[SEMRESATTRS_SERVICE_VERSION] = options.serviceVersion;
|
|
30
35
|
}
|
|
31
|
-
return
|
|
36
|
+
return attributes;
|
|
32
37
|
};
|
|
33
38
|
/**
|
|
34
39
|
* @since 1.0.0
|
package/dist/esm/Resource.js.map
CHANGED
|
@@ -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","
|
|
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":[]}
|
package/dist/esm/WebSdk.js
CHANGED
|
@@ -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 =
|
|
30
|
-
const
|
|
31
|
-
|
|
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
|
package/dist/esm/WebSdk.js.map
CHANGED
|
@@ -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","
|
|
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
package/dist/esm/index.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
+
)
|