@effect/opentelemetry 4.0.0-beta.6 → 4.0.0-beta.60
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/dist/Logger.d.ts +4 -4
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +15 -14
- package/dist/Logger.js.map +1 -1
- package/dist/Metrics.d.ts +3 -3
- package/dist/Metrics.d.ts.map +1 -1
- package/dist/Metrics.js +1 -1
- package/dist/Metrics.js.map +1 -1
- package/dist/NodeSdk.d.ts +3 -3
- package/dist/NodeSdk.d.ts.map +1 -1
- package/dist/Resource.d.ts +2 -2
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +3 -3
- package/dist/Resource.js.map +1 -1
- package/dist/Tracer.d.ts +5 -5
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +32 -32
- package/dist/Tracer.js.map +1 -1
- package/dist/internal/attributes.js +5 -0
- package/dist/internal/attributes.js.map +1 -1
- package/dist/internal/metrics.js +5 -5
- package/dist/internal/metrics.js.map +1 -1
- package/package.json +15 -15
- package/src/Logger.ts +17 -16
- package/src/Metrics.ts +4 -4
- package/src/NodeSdk.ts +3 -3
- package/src/Resource.ts +3 -3
- package/src/Tracer.ts +51 -52
- package/src/internal/attributes.ts +7 -0
- package/src/internal/metrics.ts +6 -6
package/dist/internal/metrics.js
CHANGED
|
@@ -6,7 +6,7 @@ const sdkName = "@effect/opentelemetry/Metrics";
|
|
|
6
6
|
/** @internal */
|
|
7
7
|
export class MetricProducerImpl {
|
|
8
8
|
resource;
|
|
9
|
-
|
|
9
|
+
context;
|
|
10
10
|
temporality;
|
|
11
11
|
startTimes;
|
|
12
12
|
startTimeNanos;
|
|
@@ -15,9 +15,9 @@ export class MetricProducerImpl {
|
|
|
15
15
|
previousHistogramState;
|
|
16
16
|
previousFrequencyState;
|
|
17
17
|
previousSummaryState;
|
|
18
|
-
constructor(resource,
|
|
18
|
+
constructor(resource, context, temporality = "cumulative") {
|
|
19
19
|
this.resource = resource;
|
|
20
|
-
this.
|
|
20
|
+
this.context = context;
|
|
21
21
|
this.temporality = temporality;
|
|
22
22
|
this.startTimes = new Map();
|
|
23
23
|
this.startTimeNanos = currentHrTime();
|
|
@@ -35,7 +35,7 @@ export class MetricProducerImpl {
|
|
|
35
35
|
return hrTime;
|
|
36
36
|
}
|
|
37
37
|
collect(_options) {
|
|
38
|
-
const snapshot = Metric.snapshotUnsafe(this.
|
|
38
|
+
const snapshot = Metric.snapshotUnsafe(this.context);
|
|
39
39
|
const hrTimeNow = currentHrTime();
|
|
40
40
|
const metricData = [];
|
|
41
41
|
const metricDataByName = new Map();
|
|
@@ -64,7 +64,7 @@ export class MetricProducerImpl {
|
|
|
64
64
|
if (typeof currentCount === "bigint" && typeof previousCount === "bigint") {
|
|
65
65
|
reportValue = currentCount - previousCount;
|
|
66
66
|
// Handle reset: if current < previous, report current value
|
|
67
|
-
if (reportValue <
|
|
67
|
+
if (reportValue < BigInt(0)) {
|
|
68
68
|
reportValue = currentCount;
|
|
69
69
|
}
|
|
70
70
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Arr","Metric","sdkName","MetricProducerImpl","resource","services","temporality","startTimes","startTimeNanos","previousExportTimeNanos","previousCounterState","previousHistogramState","previousFrequencyState","previousSummaryState","constructor","Map","currentHrTime","startTimeFor","name","hrTime","has","get","set","collect","_options","snapshot","snapshotUnsafe","hrTimeNow","metricData","metricDataByName","addMetricData","data","push","descriptor","isDelta","aggregationTemporality","DELTA","CUMULATIVE","intervalStartTime","i","len","length","state","attributes","reduce","Object","entries","acc","key","value","String","metricKey","makeMetricKey","id","type","currentCount","count","reportValue","previousCount","undefined","curr","Number","prev","descriptorFromState","startTime","dataPoint","endTime","dataPoints","dataPointType","SUM","isMonotonic","incremental","GAUGE","size","buckets","currentBuckets","boundaries","allocate","counts","idx","boundary","reportCount","reportSum","sum","reportBucketCounts","reportMin","min","reportMax","max","previousState","map","c","Math","bucketCounts","slice","HISTOGRAM","currentOccurrences","freqKey","occurrences","previousOccurrences","previousValue","quantile","quantiles","toString","countDataPoint","sumDataPoint","description","unit","COUNTER","valueType","INT","advice","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","metrics","errors","keys","sortedEntries","sort","a","b","localeCompare","JSON","stringify","now","Date","floor","time_unit","instrumentTypeFromSnapshot","determineValueType","OBSERVABLE_GAUGE","UP_DOWN_COUNTER"],"sources":["../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Arr","Metric","sdkName","MetricProducerImpl","resource","context","temporality","startTimes","startTimeNanos","previousExportTimeNanos","previousCounterState","previousHistogramState","previousFrequencyState","previousSummaryState","constructor","Map","currentHrTime","startTimeFor","name","hrTime","has","get","set","collect","_options","snapshot","snapshotUnsafe","hrTimeNow","metricData","metricDataByName","addMetricData","data","push","descriptor","isDelta","aggregationTemporality","DELTA","CUMULATIVE","intervalStartTime","i","len","length","state","attributes","reduce","Object","entries","acc","key","value","String","metricKey","makeMetricKey","id","type","currentCount","count","reportValue","previousCount","undefined","BigInt","curr","Number","prev","descriptorFromState","startTime","dataPoint","endTime","dataPoints","dataPointType","SUM","isMonotonic","incremental","GAUGE","size","buckets","currentBuckets","boundaries","allocate","counts","idx","boundary","reportCount","reportSum","sum","reportBucketCounts","reportMin","min","reportMax","max","previousState","map","c","Math","bucketCounts","slice","HISTOGRAM","currentOccurrences","freqKey","occurrences","previousOccurrences","previousValue","quantile","quantiles","toString","countDataPoint","sumDataPoint","description","unit","COUNTER","valueType","INT","advice","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","metrics","errors","keys","sortedEntries","sort","a","b","localeCompare","JSON","stringify","now","Date","floor","time_unit","instrumentTypeFromSnapshot","determineValueType","OBSERVABLE_GAUGE","UP_DOWN_COUNTER"],"sources":["../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/opentelemetry",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.60",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "OpenTelemetry integration for Effect",
|
|
7
7
|
"homepage": "https://effect.website",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
63
63
|
"@opentelemetry/sdk-trace-web": "^2.0.0",
|
|
64
64
|
"@opentelemetry/semantic-conventions": "^1.33.0",
|
|
65
|
-
"effect": "^4.0.0-beta.
|
|
65
|
+
"effect": "^4.0.0-beta.60"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|
|
68
68
|
"@opentelemetry/api": {
|
|
@@ -88,19 +88,19 @@
|
|
|
88
88
|
}
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
|
-
"@opentelemetry/api": "^1.9.
|
|
92
|
-
"@opentelemetry/context-async-hooks": "^2.
|
|
93
|
-
"@opentelemetry/exporter-metrics-otlp-http": "0.
|
|
94
|
-
"@opentelemetry/exporter-prometheus": "^0.
|
|
95
|
-
"@opentelemetry/exporter-trace-otlp-http": "^0.
|
|
96
|
-
"@opentelemetry/otlp-exporter-base": "^0.
|
|
97
|
-
"@opentelemetry/resources": "^2.
|
|
98
|
-
"@opentelemetry/sdk-logs": "^0.
|
|
99
|
-
"@opentelemetry/sdk-metrics": "^2.
|
|
100
|
-
"@opentelemetry/sdk-trace-base": "^2.
|
|
101
|
-
"@opentelemetry/sdk-trace-node": "^2.
|
|
102
|
-
"@opentelemetry/sdk-trace-web": "^2.
|
|
103
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
91
|
+
"@opentelemetry/api": "^1.9.1",
|
|
92
|
+
"@opentelemetry/context-async-hooks": "^2.6.1",
|
|
93
|
+
"@opentelemetry/exporter-metrics-otlp-http": "0.214.0",
|
|
94
|
+
"@opentelemetry/exporter-prometheus": "^0.214.0",
|
|
95
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.214.0",
|
|
96
|
+
"@opentelemetry/otlp-exporter-base": "^0.214.0",
|
|
97
|
+
"@opentelemetry/resources": "^2.6.1",
|
|
98
|
+
"@opentelemetry/sdk-logs": "^0.214.0",
|
|
99
|
+
"@opentelemetry/sdk-metrics": "^2.6.1",
|
|
100
|
+
"@opentelemetry/sdk-trace-base": "^2.6.1",
|
|
101
|
+
"@opentelemetry/sdk-trace-node": "^2.6.1",
|
|
102
|
+
"@opentelemetry/sdk-trace-web": "^2.6.1",
|
|
103
|
+
"@opentelemetry/semantic-conventions": "^1.40.0"
|
|
104
104
|
},
|
|
105
105
|
"scripts": {
|
|
106
106
|
"codegen": "effect-utils codegen",
|
package/src/Logger.ts
CHANGED
|
@@ -5,22 +5,23 @@ import * as Otel from "@opentelemetry/sdk-logs"
|
|
|
5
5
|
import type { NonEmptyReadonlyArray } from "effect/Array"
|
|
6
6
|
import * as Arr from "effect/Array"
|
|
7
7
|
import * as Clock from "effect/Clock"
|
|
8
|
-
import
|
|
8
|
+
import * as Context from "effect/Context"
|
|
9
|
+
import type * as Duration from "effect/Duration"
|
|
9
10
|
import * as Effect from "effect/Effect"
|
|
10
11
|
import * as Layer from "effect/Layer"
|
|
11
12
|
import * as Logger from "effect/Logger"
|
|
12
13
|
import * as LogLevel from "effect/LogLevel"
|
|
13
14
|
import * as Predicate from "effect/Predicate"
|
|
14
|
-
import * as
|
|
15
|
+
import * as References from "effect/References"
|
|
15
16
|
import * as Tracer from "effect/Tracer"
|
|
16
|
-
import { unknownToAttributeValue } from "./internal/attributes.ts"
|
|
17
|
+
import { nanosToHrTime, unknownToAttributeValue } from "./internal/attributes.ts"
|
|
17
18
|
import { Resource } from "./Resource.ts"
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* @since 1.0.0
|
|
21
22
|
* @category Services
|
|
22
23
|
*/
|
|
23
|
-
export class OtelLoggerProvider extends
|
|
24
|
+
export class OtelLoggerProvider extends Context.Service<
|
|
24
25
|
OtelLoggerProvider,
|
|
25
26
|
Otel.LoggerProvider
|
|
26
27
|
>()("@effect/opentelemetry/Logger/OtelLoggerProvider") {}
|
|
@@ -43,29 +44,29 @@ export const make: Effect.Effect<
|
|
|
43
44
|
fiberId: options.fiber.id
|
|
44
45
|
}
|
|
45
46
|
|
|
46
|
-
const span =
|
|
47
|
+
const span = Context.getOrUndefined(options.fiber.context, Tracer.ParentSpan)
|
|
47
48
|
|
|
48
49
|
if (Predicate.isNotUndefined(span)) {
|
|
49
50
|
attributes.spanId = span.spanId
|
|
50
51
|
attributes.traceId = span.traceId
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// }
|
|
54
|
+
for (const [key, value] of Object.entries(options.fiber.getRef(References.CurrentLogAnnotations))) {
|
|
55
|
+
attributes[key] = unknownToAttributeValue(value)
|
|
56
|
+
}
|
|
57
|
+
const now = options.date.getTime()
|
|
58
|
+
for (const [label, startTime] of options.fiber.getRef(References.CurrentLogSpans)) {
|
|
59
|
+
attributes[`logSpan.${label}`] = `${now - startTime}ms`
|
|
60
|
+
}
|
|
61
61
|
|
|
62
62
|
const message = Arr.ensure(options.message).map(unknownToAttributeValue)
|
|
63
|
+
const hrTime = nanosToHrTime(clock.currentTimeNanosUnsafe())
|
|
63
64
|
otelLogger.emit({
|
|
64
65
|
body: message.length === 1 ? message[0] : message,
|
|
65
66
|
severityText: options.logLevel,
|
|
66
67
|
severityNumber: LogLevel.getOrdinal(options.logLevel),
|
|
67
|
-
timestamp:
|
|
68
|
-
observedTimestamp:
|
|
68
|
+
timestamp: hrTime,
|
|
69
|
+
observedTimestamp: hrTime,
|
|
69
70
|
attributes
|
|
70
71
|
})
|
|
71
72
|
})
|
|
@@ -98,7 +99,7 @@ export const layer = (options: {
|
|
|
98
99
|
export const layerLoggerProvider = (
|
|
99
100
|
processor: Otel.LogRecordProcessor | NonEmptyReadonlyArray<Otel.LogRecordProcessor>,
|
|
100
101
|
config?: Omit<Otel.LoggerProviderConfig, "resource"> & {
|
|
101
|
-
readonly shutdownTimeout?:
|
|
102
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
102
103
|
}
|
|
103
104
|
): Layer.Layer<OtelLoggerProvider, never, Resource> =>
|
|
104
105
|
Layer.effect(
|
package/src/Metrics.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { MetricProducer, MetricReader } from "@opentelemetry/sdk-metrics"
|
|
5
5
|
import type * as Arr from "effect/Array"
|
|
6
|
-
import type
|
|
6
|
+
import type * as Duration from "effect/Duration"
|
|
7
7
|
import * as Effect from "effect/Effect"
|
|
8
8
|
import type { LazyArg } from "effect/Function"
|
|
9
9
|
import * as Layer from "effect/Layer"
|
|
@@ -35,7 +35,7 @@ export type TemporalityPreference = "cumulative" | "delta"
|
|
|
35
35
|
export const makeProducer = (temporality?: TemporalityPreference): Effect.Effect<MetricProducer, never, Resource> =>
|
|
36
36
|
Effect.gen(function*() {
|
|
37
37
|
const resource = yield* Resource
|
|
38
|
-
const services = yield* Effect.
|
|
38
|
+
const services = yield* Effect.context<never>()
|
|
39
39
|
return new MetricProducerImpl(resource, services, temporality)
|
|
40
40
|
})
|
|
41
41
|
|
|
@@ -49,7 +49,7 @@ export const registerProducer = (
|
|
|
49
49
|
self: MetricProducer,
|
|
50
50
|
metricReader: LazyArg<MetricReader | Arr.NonEmptyReadonlyArray<MetricReader>>,
|
|
51
51
|
options?: {
|
|
52
|
-
readonly shutdownTimeout?:
|
|
52
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
53
53
|
}
|
|
54
54
|
): Effect.Effect<Array<any>, never, Scope.Scope> =>
|
|
55
55
|
Effect.acquireRelease(
|
|
@@ -104,7 +104,7 @@ export const registerProducer = (
|
|
|
104
104
|
export const layer = (
|
|
105
105
|
evaluate: LazyArg<MetricReader | Arr.NonEmptyReadonlyArray<MetricReader>>,
|
|
106
106
|
options?: {
|
|
107
|
-
readonly shutdownTimeout?:
|
|
107
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
108
108
|
readonly temporality?: TemporalityPreference | undefined
|
|
109
109
|
}
|
|
110
110
|
): Layer.Layer<never, never, Resource> =>
|
package/src/NodeSdk.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { MetricReader } from "@opentelemetry/sdk-metrics"
|
|
|
7
7
|
import type { SpanProcessor, TracerConfig } from "@opentelemetry/sdk-trace-base"
|
|
8
8
|
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node"
|
|
9
9
|
import type { NonEmptyReadonlyArray } from "effect/Array"
|
|
10
|
-
import type
|
|
10
|
+
import type * as Duration from "effect/Duration"
|
|
11
11
|
import * as Effect from "effect/Effect"
|
|
12
12
|
import { constant, type LazyArg } from "effect/Function"
|
|
13
13
|
import * as Layer from "effect/Layer"
|
|
@@ -34,7 +34,7 @@ export interface Configuration {
|
|
|
34
34
|
readonly serviceVersion?: string
|
|
35
35
|
readonly attributes?: Otel.Attributes
|
|
36
36
|
} | undefined
|
|
37
|
-
readonly shutdownTimeout?:
|
|
37
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -44,7 +44,7 @@ export interface Configuration {
|
|
|
44
44
|
export const layerTracerProvider = (
|
|
45
45
|
processor: SpanProcessor | NonEmptyReadonlyArray<SpanProcessor>,
|
|
46
46
|
config?: Omit<TracerConfig, "resource"> & {
|
|
47
|
-
readonly shutdownTimeout?:
|
|
47
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
48
48
|
}
|
|
49
49
|
): Layer.Layer<Tracer.OtelTracerProvider, never, Resource.Resource> =>
|
|
50
50
|
Layer.effect(
|
package/src/Resource.ts
CHANGED
|
@@ -6,15 +6,15 @@ import * as Resources from "@opentelemetry/resources"
|
|
|
6
6
|
import * as OtelSemConv from "@opentelemetry/semantic-conventions"
|
|
7
7
|
import * as Arr from "effect/Array"
|
|
8
8
|
import * as Config from "effect/Config"
|
|
9
|
+
import * as Context from "effect/Context"
|
|
9
10
|
import * as Effect from "effect/Effect"
|
|
10
11
|
import * as Layer from "effect/Layer"
|
|
11
|
-
import * as ServiceMap from "effect/ServiceMap"
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @since 1.0.0
|
|
15
15
|
* @category Services
|
|
16
16
|
*/
|
|
17
|
-
export class Resource extends
|
|
17
|
+
export class Resource extends Context.Service<
|
|
18
18
|
Resource,
|
|
19
19
|
Resources.Resource
|
|
20
20
|
>()("@effect/opentelemetry/Resource") {}
|
|
@@ -70,7 +70,7 @@ export const layerFromEnv = (
|
|
|
70
70
|
Effect.gen(function*() {
|
|
71
71
|
const serviceName = yield* Config.option(Config.string("OTEL_SERVICE_NAME"))
|
|
72
72
|
const attributes = yield* Config.string("OTEL_RESOURCE_ATTRIBUTES").pipe(
|
|
73
|
-
Config.withDefault(
|
|
73
|
+
Config.withDefault(""),
|
|
74
74
|
Config.map((s) => {
|
|
75
75
|
const attrs = s.split(",")
|
|
76
76
|
return Arr.reduce(attrs, {} as OtelApi.Attributes, (acc, attr) => {
|
package/src/Tracer.ts
CHANGED
|
@@ -5,14 +5,15 @@ import * as Otel from "@opentelemetry/api"
|
|
|
5
5
|
import * as OtelSemConv from "@opentelemetry/semantic-conventions"
|
|
6
6
|
import * as Cause from "effect/Cause"
|
|
7
7
|
import type * as Clock from "effect/Clock"
|
|
8
|
+
import * as Context from "effect/Context"
|
|
8
9
|
import * as Effect from "effect/Effect"
|
|
9
10
|
import * as Exit from "effect/Exit"
|
|
10
11
|
import { constTrue, dual } from "effect/Function"
|
|
11
12
|
import * as Layer from "effect/Layer"
|
|
13
|
+
import * as Option from "effect/Option"
|
|
12
14
|
import * as Predicate from "effect/Predicate"
|
|
13
|
-
import * as ServiceMap from "effect/ServiceMap"
|
|
14
15
|
import * as Tracer from "effect/Tracer"
|
|
15
|
-
import { recordToAttributes, unknownToAttributeValue } from "./internal/attributes.ts"
|
|
16
|
+
import { nanosToHrTime, recordToAttributes, unknownToAttributeValue } from "./internal/attributes.ts"
|
|
16
17
|
import { Resource } from "./Resource.ts"
|
|
17
18
|
|
|
18
19
|
// =============================================================================
|
|
@@ -23,7 +24,7 @@ import { Resource } from "./Resource.ts"
|
|
|
23
24
|
* @since 1.0.0
|
|
24
25
|
* @category Services
|
|
25
26
|
*/
|
|
26
|
-
export class OtelTracer extends
|
|
27
|
+
export class OtelTracer extends Context.Service<
|
|
27
28
|
OtelTracer,
|
|
28
29
|
Otel.Tracer
|
|
29
30
|
>()("@effect/opentelemetry/Tracer") {}
|
|
@@ -32,7 +33,7 @@ export class OtelTracer extends ServiceMap.Service<
|
|
|
32
33
|
* @since 1.0.0
|
|
33
34
|
* @category Services
|
|
34
35
|
*/
|
|
35
|
-
export class OtelTracerProvider extends
|
|
36
|
+
export class OtelTracerProvider extends Context.Service<
|
|
36
37
|
OtelTracerProvider,
|
|
37
38
|
Otel.TracerProvider
|
|
38
39
|
>()("@effect/opentelemetry/Tracer/OtelTracerProvider") {}
|
|
@@ -41,7 +42,7 @@ export class OtelTracerProvider extends ServiceMap.Service<
|
|
|
41
42
|
* @since 1.0.0
|
|
42
43
|
* @category Services
|
|
43
44
|
*/
|
|
44
|
-
export class OtelTraceFlags extends
|
|
45
|
+
export class OtelTraceFlags extends Context.Service<
|
|
45
46
|
OtelTraceFlags,
|
|
46
47
|
Otel.TraceFlags
|
|
47
48
|
>()("@effect/opentelemetry/Tracer/OtelTraceFlags") {}
|
|
@@ -50,7 +51,7 @@ export class OtelTraceFlags extends ServiceMap.Service<
|
|
|
50
51
|
* @since 1.0.0
|
|
51
52
|
* @category Services
|
|
52
53
|
*/
|
|
53
|
-
export class OtelTraceState extends
|
|
54
|
+
export class OtelTraceState extends Context.Service<
|
|
54
55
|
OtelTraceState,
|
|
55
56
|
Otel.TraceState
|
|
56
57
|
>()("@effect/opentelemetry/Tracer/OtelTraceState") {}
|
|
@@ -100,22 +101,24 @@ export const makeExternalSpan = (options: {
|
|
|
100
101
|
readonly traceFlags?: number | undefined
|
|
101
102
|
readonly traceState?: string | Otel.TraceState | undefined
|
|
102
103
|
}): Tracer.ExternalSpan => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
const annotations = Context.mutate(Context.empty(), (annotations) => {
|
|
105
|
+
let next = annotations
|
|
106
|
+
if (options.traceFlags !== undefined) {
|
|
107
|
+
next = Context.add(next, OtelTraceFlags, options.traceFlags)
|
|
108
|
+
}
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
if (typeof options.traceState === "string") {
|
|
111
|
+
try {
|
|
112
|
+
next = Context.add(next, OtelTraceState, Otel.createTraceState(options.traceState))
|
|
113
|
+
} catch {
|
|
114
|
+
//
|
|
115
|
+
}
|
|
116
|
+
} else if (options.traceState) {
|
|
117
|
+
next = Context.add(next, OtelTraceState, options.traceState)
|
|
115
118
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
+
|
|
120
|
+
return next
|
|
121
|
+
})
|
|
119
122
|
|
|
120
123
|
return {
|
|
121
124
|
_tag: "ExternalSpan",
|
|
@@ -356,14 +359,14 @@ export class OtelSpan implements Tracer.Span {
|
|
|
356
359
|
|
|
357
360
|
readonly name: string
|
|
358
361
|
readonly kind: Tracer.SpanKind
|
|
359
|
-
readonly annotations:
|
|
362
|
+
readonly annotations: Context.Context<never>
|
|
360
363
|
readonly links: Array<Tracer.SpanLink>
|
|
361
364
|
readonly span: Otel.Span
|
|
362
365
|
readonly spanId: string
|
|
363
366
|
readonly traceId: string
|
|
364
367
|
readonly attributes = new Map<string, unknown>()
|
|
365
368
|
readonly sampled: boolean
|
|
366
|
-
readonly parent: Tracer.AnySpan
|
|
369
|
+
readonly parent: Option.Option<Tracer.AnySpan>
|
|
367
370
|
status: Tracer.SpanStatus
|
|
368
371
|
|
|
369
372
|
constructor(
|
|
@@ -378,9 +381,9 @@ export class OtelSpan implements Tracer.Span {
|
|
|
378
381
|
this.links = options.links
|
|
379
382
|
this.kind = options.kind
|
|
380
383
|
const active = contextApi.active()
|
|
381
|
-
this.parent = options.
|
|
382
|
-
getOtelParent(traceApi, active, options.annotations)
|
|
383
|
-
|
|
384
|
+
this.parent = options.root !== true
|
|
385
|
+
? Option.orElse(options.parent, () => getOtelParent(traceApi, active, options.annotations))
|
|
386
|
+
: options.parent
|
|
384
387
|
this.span = tracer.startSpan(
|
|
385
388
|
options.name,
|
|
386
389
|
{
|
|
@@ -393,7 +396,9 @@ export class OtelSpan implements Tracer.Span {
|
|
|
393
396
|
: undefined as any,
|
|
394
397
|
kind: kindMap[this.kind]
|
|
395
398
|
},
|
|
396
|
-
|
|
399
|
+
Option.isSome(this.parent) ?
|
|
400
|
+
populateContext(active, this.parent.value, options.annotations) :
|
|
401
|
+
Otel.trace.deleteSpan(active)
|
|
397
402
|
)
|
|
398
403
|
const spanContext = this.span.spanContext()
|
|
399
404
|
this.spanId = spanContext.spanId
|
|
@@ -469,30 +474,24 @@ export class OtelSpan implements Tracer.Span {
|
|
|
469
474
|
const isSampled = (traceFlags: Otel.TraceFlags): boolean =>
|
|
470
475
|
(traceFlags & Otel.TraceFlags.SAMPLED) === Otel.TraceFlags.SAMPLED
|
|
471
476
|
|
|
472
|
-
const nanosToHrTime = (timestamp: bigint): Otel.HrTime => {
|
|
473
|
-
return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)]
|
|
474
|
-
}
|
|
475
|
-
|
|
476
477
|
const getOtelParent = (
|
|
477
478
|
tracer: Otel.TraceAPI,
|
|
478
479
|
context: Otel.Context,
|
|
479
|
-
annotations:
|
|
480
|
-
): Tracer.AnySpan
|
|
481
|
-
const
|
|
482
|
-
|
|
483
|
-
return
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
})
|
|
490
|
-
: undefined
|
|
480
|
+
annotations: Context.Context<never>
|
|
481
|
+
): Option.Option<Tracer.AnySpan> => {
|
|
482
|
+
const otelParent = tracer.getSpan(context)?.spanContext()
|
|
483
|
+
if (!otelParent) return Option.none()
|
|
484
|
+
return Option.some(Tracer.externalSpan({
|
|
485
|
+
spanId: otelParent.spanId,
|
|
486
|
+
traceId: otelParent.traceId,
|
|
487
|
+
sampled: (otelParent.traceFlags & 1) === 1,
|
|
488
|
+
annotations
|
|
489
|
+
}))
|
|
491
490
|
}
|
|
492
491
|
|
|
493
492
|
const makeSpanContext = (
|
|
494
493
|
span: Tracer.AnySpan,
|
|
495
|
-
annotations?:
|
|
494
|
+
annotations?: Context.Context<never>
|
|
496
495
|
): Otel.SpanContext => {
|
|
497
496
|
const traceFlags = makeTraceFlags(span, annotations)
|
|
498
497
|
const traceState = makeTraceState(span, annotations)!
|
|
@@ -507,13 +506,13 @@ const makeSpanContext = (
|
|
|
507
506
|
|
|
508
507
|
const makeTraceFlags = (
|
|
509
508
|
span: Tracer.AnySpan,
|
|
510
|
-
annotations:
|
|
509
|
+
annotations: Context.Context<never> | undefined
|
|
511
510
|
): Otel.TraceFlags => {
|
|
512
511
|
let traceFlags: Otel.TraceFlags | undefined
|
|
513
512
|
if (Predicate.isNotUndefined(annotations)) {
|
|
514
513
|
traceFlags = extractTraceService(span, annotations, OtelTraceFlags)
|
|
515
514
|
if (Predicate.isUndefined(traceFlags)) {
|
|
516
|
-
traceFlags =
|
|
515
|
+
traceFlags = Context.getOrUndefined(span.annotations, OtelTraceFlags)
|
|
517
516
|
}
|
|
518
517
|
}
|
|
519
518
|
return traceFlags ?? Otel.TraceFlags.SAMPLED
|
|
@@ -521,13 +520,13 @@ const makeTraceFlags = (
|
|
|
521
520
|
|
|
522
521
|
const makeTraceState = (
|
|
523
522
|
span: Tracer.AnySpan,
|
|
524
|
-
annotations:
|
|
523
|
+
annotations: Context.Context<never> | undefined
|
|
525
524
|
): Otel.TraceState | undefined => {
|
|
526
525
|
let traceState: Otel.TraceState | undefined
|
|
527
526
|
if (Predicate.isNotUndefined(annotations)) {
|
|
528
527
|
traceState = extractTraceService(span, annotations, OtelTraceState)
|
|
529
528
|
if (Predicate.isUndefined(traceState)) {
|
|
530
|
-
traceState =
|
|
529
|
+
traceState = Context.getOrUndefined(span.annotations, OtelTraceState)
|
|
531
530
|
}
|
|
532
531
|
}
|
|
533
532
|
return traceState
|
|
@@ -535,20 +534,20 @@ const makeTraceState = (
|
|
|
535
534
|
|
|
536
535
|
const extractTraceService = <I, S>(
|
|
537
536
|
parent: Tracer.AnySpan,
|
|
538
|
-
annotations:
|
|
539
|
-
service:
|
|
537
|
+
annotations: Context.Context<never>,
|
|
538
|
+
service: Context.Service<I, S>
|
|
540
539
|
) => {
|
|
541
|
-
const instance =
|
|
540
|
+
const instance = Context.getOrUndefined(annotations, service)
|
|
542
541
|
if (Predicate.isNotUndefined(instance)) {
|
|
543
542
|
return instance
|
|
544
543
|
}
|
|
545
|
-
return
|
|
544
|
+
return Context.getOrUndefined(parent.annotations, service)
|
|
546
545
|
}
|
|
547
546
|
|
|
548
547
|
const populateContext = (
|
|
549
548
|
context: Otel.Context,
|
|
550
549
|
span: Tracer.AnySpan,
|
|
551
|
-
annotations?:
|
|
550
|
+
annotations?: Context.Context<never> | undefined
|
|
552
551
|
): Otel.Context =>
|
|
553
552
|
span instanceof OtelSpan ?
|
|
554
553
|
Otel.trace.setSpan(context, span.span) :
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type * as Otel from "@opentelemetry/api"
|
|
2
2
|
import * as Inspectable from "effect/Inspectable"
|
|
3
3
|
|
|
4
|
+
const bigint1e9 = BigInt(1_000_000_000)
|
|
5
|
+
|
|
6
|
+
/** @internal */
|
|
7
|
+
export const nanosToHrTime = (timestamp: bigint): Otel.HrTime => {
|
|
8
|
+
return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)]
|
|
9
|
+
}
|
|
10
|
+
|
|
4
11
|
/** @internal */
|
|
5
12
|
export const recordToAttributes = (record: Record<string, unknown>): Otel.Attributes => {
|
|
6
13
|
const attributes: Otel.Attributes = {}
|
package/src/internal/metrics.ts
CHANGED
|
@@ -11,8 +11,8 @@ import type {
|
|
|
11
11
|
import { AggregationTemporality, DataPointType, InstrumentType } from "@opentelemetry/sdk-metrics"
|
|
12
12
|
import type { InstrumentDescriptor } from "@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.js"
|
|
13
13
|
import * as Arr from "effect/Array"
|
|
14
|
+
import type * as Context from "effect/Context"
|
|
14
15
|
import * as Metric from "effect/Metric"
|
|
15
|
-
import type * as ServiceMap from "effect/ServiceMap"
|
|
16
16
|
import type * as Metrics from "../Metrics.ts"
|
|
17
17
|
|
|
18
18
|
const sdkName = "@effect/opentelemetry/Metrics"
|
|
@@ -37,7 +37,7 @@ interface PreviousSummaryState {
|
|
|
37
37
|
/** @internal */
|
|
38
38
|
export class MetricProducerImpl implements MetricProducer {
|
|
39
39
|
resource: Resources.Resource
|
|
40
|
-
|
|
40
|
+
context: Context.Context<never>
|
|
41
41
|
temporality: Metrics.TemporalityPreference
|
|
42
42
|
startTimes: Map<string, HrTime>
|
|
43
43
|
startTimeNanos: HrTime
|
|
@@ -49,11 +49,11 @@ export class MetricProducerImpl implements MetricProducer {
|
|
|
49
49
|
|
|
50
50
|
constructor(
|
|
51
51
|
resource: Resources.Resource,
|
|
52
|
-
|
|
52
|
+
context: Context.Context<never>,
|
|
53
53
|
temporality: Metrics.TemporalityPreference = "cumulative"
|
|
54
54
|
) {
|
|
55
55
|
this.resource = resource
|
|
56
|
-
this.
|
|
56
|
+
this.context = context
|
|
57
57
|
this.temporality = temporality
|
|
58
58
|
this.startTimes = new Map()
|
|
59
59
|
this.startTimeNanos = currentHrTime()
|
|
@@ -73,7 +73,7 @@ export class MetricProducerImpl implements MetricProducer {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
collect(_options?: MetricCollectOptions): Promise<CollectionResult> {
|
|
76
|
-
const snapshot = Metric.snapshotUnsafe(this.
|
|
76
|
+
const snapshot = Metric.snapshotUnsafe(this.context)
|
|
77
77
|
const hrTimeNow = currentHrTime()
|
|
78
78
|
const metricData: Array<MetricData> = []
|
|
79
79
|
const metricDataByName = new Map<string, MetricData>()
|
|
@@ -111,7 +111,7 @@ export class MetricProducerImpl implements MetricProducer {
|
|
|
111
111
|
if (typeof currentCount === "bigint" && typeof previousCount === "bigint") {
|
|
112
112
|
reportValue = currentCount - previousCount
|
|
113
113
|
// Handle reset: if current < previous, report current value
|
|
114
|
-
if (reportValue <
|
|
114
|
+
if (reportValue < BigInt(0)) {
|
|
115
115
|
reportValue = currentCount
|
|
116
116
|
}
|
|
117
117
|
} else {
|