@effect/opentelemetry 0.60.0 → 4.0.0-beta.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/LICENSE +1 -1
- package/dist/{dts/Logger.d.ts → Logger.d.ts} +19 -13
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +76 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Metrics.d.ts +76 -0
- package/dist/Metrics.d.ts.map +1 -0
- package/dist/Metrics.js +59 -0
- package/dist/Metrics.js.map +1 -0
- package/dist/{dts/NodeSdk.d.ts → NodeSdk.d.ts} +12 -9
- package/dist/NodeSdk.d.ts.map +1 -0
- package/dist/{esm/NodeSdk.js → NodeSdk.js} +23 -14
- package/dist/NodeSdk.js.map +1 -0
- package/dist/{dts/Resource.d.ts → Resource.d.ts} +10 -13
- package/dist/Resource.d.ts.map +1 -0
- package/dist/{esm/Resource.js → Resource.js} +12 -13
- package/dist/Resource.js.map +1 -0
- package/dist/Tracer.d.ts +129 -0
- package/dist/Tracer.d.ts.map +1 -0
- package/dist/Tracer.js +391 -0
- package/dist/Tracer.js.map +1 -0
- package/dist/{dts/WebSdk.d.ts → WebSdk.d.ts} +12 -9
- package/dist/WebSdk.d.ts.map +1 -0
- package/dist/WebSdk.js +41 -0
- package/dist/WebSdk.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{esm/index.js → index.js} +4 -20
- package/dist/index.js.map +1 -0
- package/dist/internal/attributes.d.ts +2 -0
- package/dist/internal/attributes.d.ts.map +1 -0
- package/dist/internal/attributes.js +19 -0
- package/dist/internal/attributes.js.map +1 -0
- package/dist/{dts/internal → internal}/metrics.d.ts.map +1 -1
- package/dist/internal/metrics.js +406 -0
- package/dist/internal/metrics.js.map +1 -0
- package/dist/internal/utilities.d.ts +2 -0
- package/dist/internal/utilities.d.ts.map +1 -0
- package/dist/internal/utilities.js +3 -0
- package/dist/internal/utilities.js.map +1 -0
- package/package.json +70 -118
- package/src/Logger.ts +52 -55
- package/src/Metrics.ts +92 -18
- package/src/NodeSdk.ts +67 -64
- package/src/Resource.ts +16 -24
- package/src/Tracer.ts +469 -78
- package/src/WebSdk.ts +59 -51
- package/src/index.ts +7 -26
- package/src/internal/attributes.ts +21 -0
- package/src/internal/metrics.ts +381 -250
- package/src/internal/utilities.ts +5 -0
- package/Logger/package.json +0 -6
- package/Metrics/package.json +0 -6
- package/NodeSdk/package.json +0 -6
- package/Otlp/package.json +0 -6
- package/OtlpLogger/package.json +0 -6
- package/OtlpMetrics/package.json +0 -6
- package/OtlpResource/package.json +0 -6
- package/OtlpTracer/package.json +0 -6
- package/Resource/package.json +0 -6
- package/Tracer/package.json +0 -6
- package/WebSdk/package.json +0 -6
- package/dist/cjs/Logger.js +0 -85
- package/dist/cjs/Logger.js.map +0 -1
- package/dist/cjs/Metrics.js +0 -24
- package/dist/cjs/Metrics.js.map +0 -1
- package/dist/cjs/NodeSdk.js +0 -53
- package/dist/cjs/NodeSdk.js.map +0 -1
- package/dist/cjs/Otlp.js +0 -46
- package/dist/cjs/Otlp.js.map +0 -1
- package/dist/cjs/OtlpLogger.js +0 -158
- package/dist/cjs/OtlpLogger.js.map +0 -1
- package/dist/cjs/OtlpMetrics.js +0 -354
- package/dist/cjs/OtlpMetrics.js.map +0 -1
- package/dist/cjs/OtlpResource.js +0 -136
- package/dist/cjs/OtlpResource.js.map +0 -1
- package/dist/cjs/OtlpTracer.js +0 -229
- package/dist/cjs/OtlpTracer.js.map +0 -1
- package/dist/cjs/Resource.js +0 -75
- package/dist/cjs/Resource.js.map +0 -1
- package/dist/cjs/Tracer.js +0 -87
- package/dist/cjs/Tracer.js.map +0 -1
- package/dist/cjs/WebSdk.js +0 -42
- package/dist/cjs/WebSdk.js.map +0 -1
- package/dist/cjs/index.js +0 -30
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/metrics.js +0 -288
- package/dist/cjs/internal/metrics.js.map +0 -1
- package/dist/cjs/internal/otlpExporter.js +0 -81
- package/dist/cjs/internal/otlpExporter.js.map +0 -1
- package/dist/cjs/internal/tracer.js +0 -299
- package/dist/cjs/internal/tracer.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -34
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/dts/Logger.d.ts.map +0 -1
- package/dist/dts/Metrics.d.ts +0 -29
- package/dist/dts/Metrics.d.ts.map +0 -1
- package/dist/dts/NodeSdk.d.ts.map +0 -1
- package/dist/dts/Otlp.d.ts +0 -31
- package/dist/dts/Otlp.d.ts.map +0 -1
- package/dist/dts/OtlpLogger.d.ts +0 -46
- package/dist/dts/OtlpLogger.d.ts.map +0 -1
- package/dist/dts/OtlpMetrics.d.ts +0 -40
- package/dist/dts/OtlpMetrics.d.ts.map +0 -1
- package/dist/dts/OtlpResource.d.ts +0 -104
- package/dist/dts/OtlpResource.d.ts.map +0 -1
- package/dist/dts/OtlpTracer.d.ts +0 -49
- package/dist/dts/OtlpTracer.d.ts.map +0 -1
- package/dist/dts/Resource.d.ts.map +0 -1
- package/dist/dts/Tracer.d.ts +0 -143
- package/dist/dts/Tracer.d.ts.map +0 -1
- package/dist/dts/WebSdk.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -45
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/otlpExporter.d.ts +0 -2
- package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
- package/dist/dts/internal/tracer.d.ts +0 -2
- package/dist/dts/internal/tracer.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -2
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/esm/Logger.js +0 -75
- package/dist/esm/Logger.js.map +0 -1
- package/dist/esm/Metrics.js +0 -17
- package/dist/esm/Metrics.js.map +0 -1
- package/dist/esm/NodeSdk.js.map +0 -1
- package/dist/esm/Otlp.js +0 -38
- package/dist/esm/Otlp.js.map +0 -1
- package/dist/esm/OtlpLogger.js +0 -150
- package/dist/esm/OtlpLogger.js.map +0 -1
- package/dist/esm/OtlpMetrics.js +0 -346
- package/dist/esm/OtlpMetrics.js.map +0 -1
- package/dist/esm/OtlpResource.js +0 -124
- package/dist/esm/OtlpResource.js.map +0 -1
- package/dist/esm/OtlpTracer.js +0 -221
- package/dist/esm/OtlpTracer.js.map +0 -1
- package/dist/esm/Resource.js.map +0 -1
- package/dist/esm/Tracer.js +0 -80
- package/dist/esm/Tracer.js.map +0 -1
- package/dist/esm/WebSdk.js +0 -33
- package/dist/esm/WebSdk.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/metrics.js +0 -278
- package/dist/esm/internal/metrics.js.map +0 -1
- package/dist/esm/internal/otlpExporter.js +0 -74
- package/dist/esm/internal/otlpExporter.js.map +0 -1
- package/dist/esm/internal/tracer.js +0 -290
- package/dist/esm/internal/tracer.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -23
- package/dist/esm/internal/utils.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/Otlp.ts +0 -66
- package/src/OtlpLogger.ts +0 -258
- package/src/OtlpMetrics.ts +0 -571
- package/src/OtlpResource.ts +0 -232
- package/src/OtlpTracer.ts +0 -349
- package/src/internal/otlpExporter.ts +0 -124
- package/src/internal/tracer.ts +0 -437
- package/src/internal/utils.ts +0 -31
- /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
package/src/WebSdk.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import type * as
|
|
4
|
+
import type * as Otel from "@opentelemetry/api"
|
|
5
5
|
import type { LoggerProviderConfig, LogRecordProcessor } from "@opentelemetry/sdk-logs"
|
|
6
6
|
import type { MetricReader } from "@opentelemetry/sdk-metrics"
|
|
7
7
|
import type { SpanProcessor, TracerConfig } from "@opentelemetry/sdk-trace-base"
|
|
@@ -10,100 +10,108 @@ import type { NonEmptyReadonlyArray } from "effect/Array"
|
|
|
10
10
|
import * as Effect from "effect/Effect"
|
|
11
11
|
import { constant, type LazyArg } from "effect/Function"
|
|
12
12
|
import * as Layer from "effect/Layer"
|
|
13
|
-
import { isNonEmpty } from "./internal/
|
|
14
|
-
import * as Logger from "./Logger.
|
|
15
|
-
import * as Metrics from "./Metrics.
|
|
16
|
-
import * as Resource from "./Resource.
|
|
17
|
-
import * as Tracer from "./Tracer.
|
|
13
|
+
import { isNonEmpty } from "./internal/utilities.ts"
|
|
14
|
+
import * as Logger from "./Logger.ts"
|
|
15
|
+
import * as Metrics from "./Metrics.ts"
|
|
16
|
+
import * as Resource from "./Resource.ts"
|
|
17
|
+
import * as Tracer from "./Tracer.ts"
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @since 1.0.0
|
|
21
|
-
* @category
|
|
21
|
+
* @category Models
|
|
22
22
|
*/
|
|
23
23
|
export interface Configuration {
|
|
24
24
|
readonly spanProcessor?: SpanProcessor | ReadonlyArray<SpanProcessor> | undefined
|
|
25
25
|
readonly tracerConfig?: Omit<TracerConfig, "resource">
|
|
26
26
|
readonly metricReader?: MetricReader | ReadonlyArray<MetricReader> | undefined
|
|
27
|
+
readonly metricTemporality?: Metrics.TemporalityPreference | undefined
|
|
27
28
|
readonly logRecordProcessor?: LogRecordProcessor | ReadonlyArray<LogRecordProcessor> | undefined
|
|
28
29
|
readonly loggerProviderConfig?: Omit<LoggerProviderConfig, "resource"> | undefined
|
|
30
|
+
readonly loggerMergeWithExisting?: boolean | undefined
|
|
29
31
|
readonly resource: {
|
|
30
32
|
readonly serviceName: string
|
|
31
33
|
readonly serviceVersion?: string
|
|
32
|
-
readonly attributes?:
|
|
34
|
+
readonly attributes?: Otel.Attributes
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
39
|
* @since 1.0.0
|
|
38
|
-
* @category
|
|
40
|
+
* @category Layers
|
|
39
41
|
*/
|
|
40
42
|
export const layerTracerProvider = (
|
|
41
43
|
processor: SpanProcessor | NonEmptyReadonlyArray<SpanProcessor>,
|
|
42
44
|
config?: Omit<TracerConfig, "resource">
|
|
43
45
|
): Layer.Layer<Tracer.OtelTracerProvider, never, Resource.Resource> =>
|
|
44
|
-
Layer.
|
|
46
|
+
Layer.effect(
|
|
45
47
|
Tracer.OtelTracerProvider,
|
|
46
|
-
Effect.
|
|
47
|
-
Resource.Resource
|
|
48
|
-
(
|
|
49
|
-
Effect.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
Effect.gen(function*() {
|
|
49
|
+
const resource = yield* Resource.Resource
|
|
50
|
+
return yield* Effect.acquireRelease(
|
|
51
|
+
Effect.sync(() => {
|
|
52
|
+
const provider = new WebTracerProvider({
|
|
53
|
+
...(config ?? undefined),
|
|
54
|
+
resource,
|
|
55
|
+
spanProcessors: Array.isArray(processor) ? (processor as any) : [processor]
|
|
56
|
+
})
|
|
57
|
+
return provider
|
|
58
|
+
}),
|
|
59
|
+
(provider) =>
|
|
60
|
+
Effect.ignore(
|
|
61
|
+
Effect.promise(() => provider.forceFlush().then(() => provider.shutdown()))
|
|
62
|
+
)
|
|
63
|
+
)
|
|
64
|
+
})
|
|
61
65
|
)
|
|
62
66
|
|
|
63
67
|
/**
|
|
64
68
|
* @since 1.0.0
|
|
65
|
-
* @category
|
|
69
|
+
* @category Layers
|
|
66
70
|
*/
|
|
67
71
|
export const layer: {
|
|
68
72
|
/**
|
|
69
73
|
* @since 1.0.0
|
|
70
|
-
* @category
|
|
74
|
+
* @category Layers
|
|
71
75
|
*/
|
|
72
76
|
(evaluate: LazyArg<Configuration>): Layer.Layer<Resource.Resource>
|
|
73
77
|
/**
|
|
74
78
|
* @since 1.0.0
|
|
75
|
-
* @category
|
|
79
|
+
* @category Layers
|
|
76
80
|
*/
|
|
77
81
|
<E, R>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>
|
|
78
82
|
} = (
|
|
79
83
|
evaluate: LazyArg<Configuration> | Effect.Effect<Configuration, any, any>
|
|
80
84
|
): Layer.Layer<Resource.Resource> =>
|
|
81
|
-
Layer.
|
|
82
|
-
Effect.
|
|
83
|
-
Effect.isEffect(evaluate)
|
|
85
|
+
Layer.unwrap(
|
|
86
|
+
Effect.gen(function*() {
|
|
87
|
+
const config = yield* Effect.isEffect(evaluate)
|
|
84
88
|
? evaluate as Effect.Effect<Configuration>
|
|
85
|
-
: Effect.sync(evaluate)
|
|
86
|
-
(config) => {
|
|
87
|
-
const ResourceLive = Resource.layer(config.resource)
|
|
89
|
+
: Effect.sync(evaluate)
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
? Layer.provide(Tracer.layer, layerTracerProvider(config.spanProcessor, config.tracerConfig))
|
|
91
|
-
: Layer.empty
|
|
92
|
-
|
|
93
|
-
const LoggerLive = isNonEmpty(config.logRecordProcessor)
|
|
94
|
-
? Layer.provide(
|
|
95
|
-
Logger.layerLoggerAdd,
|
|
96
|
-
Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)
|
|
97
|
-
)
|
|
98
|
-
: Layer.empty
|
|
91
|
+
const ResourceLive = Resource.layer(config.resource)
|
|
99
92
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
const TracerLive = isNonEmpty(config.spanProcessor)
|
|
94
|
+
? Layer.provide(
|
|
95
|
+
Tracer.layer,
|
|
96
|
+
layerTracerProvider(config.spanProcessor, config.tracerConfig)
|
|
97
|
+
)
|
|
98
|
+
: Layer.empty
|
|
103
99
|
|
|
104
|
-
|
|
105
|
-
|
|
100
|
+
const LoggerLive = isNonEmpty(config.logRecordProcessor)
|
|
101
|
+
? Layer.provide(
|
|
102
|
+
Logger.layer({ mergeWithExisting: config.loggerMergeWithExisting }),
|
|
103
|
+
Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)
|
|
106
104
|
)
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
: Layer.empty
|
|
106
|
+
|
|
107
|
+
const MetricsLive = isNonEmpty(config.metricReader)
|
|
108
|
+
? Metrics.layer(constant(config.metricReader), {
|
|
109
|
+
temporality: config.metricTemporality
|
|
110
|
+
})
|
|
111
|
+
: Layer.empty
|
|
112
|
+
|
|
113
|
+
return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(
|
|
114
|
+
Layer.provideMerge(ResourceLive)
|
|
115
|
+
)
|
|
116
|
+
})
|
|
109
117
|
)
|
package/src/index.ts
CHANGED
|
@@ -1,54 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
export * as Logger from "./Logger.js"
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
* @since 1.0.0
|
|
8
|
-
*/
|
|
9
|
-
export * as Metrics from "./Metrics.js"
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @since 1.0.0
|
|
13
|
-
*/
|
|
14
|
-
export * as NodeSdk from "./NodeSdk.js"
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @since 1.0.0
|
|
18
|
-
*/
|
|
19
|
-
export * as Otlp from "./Otlp.js"
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @since 1.0.0
|
|
23
|
-
*/
|
|
24
|
-
export * as OtlpLogger from "./OtlpLogger.js"
|
|
5
|
+
// @barrel: Auto-generated exports. Do not edit manually.
|
|
25
6
|
|
|
26
7
|
/**
|
|
27
8
|
* @since 1.0.0
|
|
28
9
|
*/
|
|
29
|
-
export * as
|
|
10
|
+
export * as Logger from "./Logger.ts"
|
|
30
11
|
|
|
31
12
|
/**
|
|
32
13
|
* @since 1.0.0
|
|
33
14
|
*/
|
|
34
|
-
export * as
|
|
15
|
+
export * as Metrics from "./Metrics.ts"
|
|
35
16
|
|
|
36
17
|
/**
|
|
37
18
|
* @since 1.0.0
|
|
38
19
|
*/
|
|
39
|
-
export * as
|
|
20
|
+
export * as NodeSdk from "./NodeSdk.ts"
|
|
40
21
|
|
|
41
22
|
/**
|
|
42
23
|
* @since 1.0.0
|
|
43
24
|
*/
|
|
44
|
-
export * as Resource from "./Resource.
|
|
25
|
+
export * as Resource from "./Resource.ts"
|
|
45
26
|
|
|
46
27
|
/**
|
|
47
28
|
* @since 1.0.0
|
|
48
29
|
*/
|
|
49
|
-
export * as Tracer from "./Tracer.
|
|
30
|
+
export * as Tracer from "./Tracer.ts"
|
|
50
31
|
|
|
51
32
|
/**
|
|
52
33
|
* @since 1.0.0
|
|
53
34
|
*/
|
|
54
|
-
export * as WebSdk from "./WebSdk.
|
|
35
|
+
export * as WebSdk from "./WebSdk.ts"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type * as Otel from "@opentelemetry/api"
|
|
2
|
+
import * as Inspectable from "effect/Inspectable"
|
|
3
|
+
|
|
4
|
+
/** @internal */
|
|
5
|
+
export const recordToAttributes = (record: Record<string, unknown>): Otel.Attributes => {
|
|
6
|
+
const attributes: Otel.Attributes = {}
|
|
7
|
+
for (const [key, value] of Object.entries(record)) {
|
|
8
|
+
attributes[key] = unknownToAttributeValue(value)
|
|
9
|
+
}
|
|
10
|
+
return attributes
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** @internal */
|
|
14
|
+
export const unknownToAttributeValue = (value: unknown): Otel.AttributeValue => {
|
|
15
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
16
|
+
return value
|
|
17
|
+
} else if (typeof value === "bigint") {
|
|
18
|
+
return value.toString()
|
|
19
|
+
}
|
|
20
|
+
return Inspectable.toStringUnknown(value)
|
|
21
|
+
}
|