@effect/opentelemetry 0.9.0 → 0.10.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/Metrics.d.ts +26 -0
- package/Metrics.d.ts.map +1 -0
- package/Metrics.js +28 -0
- package/Metrics.js.map +1 -0
- package/Resource.js.map +1 -1
- package/Tracer.d.ts +0 -9
- package/Tracer.d.ts.map +1 -1
- package/Tracer.js +1 -7
- package/Tracer.js.map +1 -1
- package/internal/metrics.d.ts +2 -0
- package/internal/metrics.d.ts.map +1 -0
- package/internal/metrics.js +243 -0
- package/internal/metrics.js.map +1 -0
- package/internal/tracer.js +9 -20
- package/internal/tracer.js.map +1 -1
- package/mjs/Metrics.mjs +17 -0
- package/mjs/Metrics.mjs.map +1 -0
- package/mjs/Resource.mjs.map +1 -1
- package/mjs/Tracer.mjs +0 -9
- package/mjs/Tracer.mjs.map +1 -1
- package/mjs/internal/metrics.mjs +231 -0
- package/mjs/internal/metrics.mjs.map +1 -0
- package/mjs/internal/tracer.mjs +8 -17
- package/mjs/internal/tracer.mjs.map +1 -1
- package/package.json +7 -6
- package/src/Metrics.ts +32 -0
- package/src/Resource.ts +3 -3
- package/src/Tracer.ts +0 -11
- package/src/internal/metrics.ts +261 -0
- package/src/internal/tracer.ts +28 -49
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import * as HashSet from "@effect/data/HashSet";
|
|
2
|
+
import * as Option from "@effect/data/Option";
|
|
3
|
+
import * as Effect from "@effect/io/Effect";
|
|
4
|
+
import * as Layer from "@effect/io/Layer";
|
|
5
|
+
import * as Metric from "@effect/io/Metric";
|
|
6
|
+
import * as MetricKeyType from "@effect/io/MetricKeyType";
|
|
7
|
+
import * as MetricState from "@effect/io/MetricState";
|
|
8
|
+
import * as Resource from "@effect/opentelemetry/Resource";
|
|
9
|
+
import { ValueType } from "@opentelemetry/api";
|
|
10
|
+
import { AggregationTemporality, DataPointType, InstrumentType } from "@opentelemetry/sdk-metrics";
|
|
11
|
+
const sdkName = "@effect/opentelemetry/Metrics";
|
|
12
|
+
/** @internal */
|
|
13
|
+
export class MetricProducerImpl {
|
|
14
|
+
constructor(resource) {
|
|
15
|
+
this.resource = resource;
|
|
16
|
+
}
|
|
17
|
+
collect(_options) {
|
|
18
|
+
const snapshot = Metric.unsafeSnapshot();
|
|
19
|
+
const hrTimeNow = currentHrTime();
|
|
20
|
+
const metricData = [];
|
|
21
|
+
for (const {
|
|
22
|
+
metricKey,
|
|
23
|
+
metricState
|
|
24
|
+
} of snapshot) {
|
|
25
|
+
const attributes = HashSet.reduce(metricKey.tags, {}, (acc, label) => {
|
|
26
|
+
acc[label.key] = label.value;
|
|
27
|
+
return acc;
|
|
28
|
+
});
|
|
29
|
+
const descriptor = descriptorFromKey(metricKey, attributes);
|
|
30
|
+
if (MetricState.isCounterState(metricState)) {
|
|
31
|
+
metricData.push({
|
|
32
|
+
dataPointType: DataPointType.SUM,
|
|
33
|
+
descriptor,
|
|
34
|
+
isMonotonic: descriptor.type === InstrumentType.COUNTER,
|
|
35
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
36
|
+
dataPoints: [{
|
|
37
|
+
startTime: hrTimeNow,
|
|
38
|
+
endTime: hrTimeNow,
|
|
39
|
+
attributes,
|
|
40
|
+
value: metricState.count
|
|
41
|
+
}]
|
|
42
|
+
});
|
|
43
|
+
} else if (MetricState.isGaugeState(metricState)) {
|
|
44
|
+
metricData.push({
|
|
45
|
+
dataPointType: DataPointType.GAUGE,
|
|
46
|
+
descriptor,
|
|
47
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
48
|
+
dataPoints: [{
|
|
49
|
+
startTime: hrTimeNow,
|
|
50
|
+
endTime: hrTimeNow,
|
|
51
|
+
attributes,
|
|
52
|
+
value: metricState.value
|
|
53
|
+
}]
|
|
54
|
+
});
|
|
55
|
+
} else if (MetricState.isHistogramState(metricState)) {
|
|
56
|
+
const size = metricState.buckets.length;
|
|
57
|
+
const buckets = {
|
|
58
|
+
boundaries: Array(size - 1),
|
|
59
|
+
counts: Array(size)
|
|
60
|
+
};
|
|
61
|
+
let i = 0;
|
|
62
|
+
let prev = 0;
|
|
63
|
+
for (const [boundary, value] of metricState.buckets) {
|
|
64
|
+
if (i < size - 1) {
|
|
65
|
+
buckets.boundaries[i] = boundary;
|
|
66
|
+
}
|
|
67
|
+
buckets.counts[i] = value - prev;
|
|
68
|
+
prev = value;
|
|
69
|
+
i++;
|
|
70
|
+
}
|
|
71
|
+
metricData.push({
|
|
72
|
+
dataPointType: DataPointType.HISTOGRAM,
|
|
73
|
+
descriptor,
|
|
74
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
75
|
+
dataPoints: [{
|
|
76
|
+
startTime: hrTimeNow,
|
|
77
|
+
endTime: hrTimeNow,
|
|
78
|
+
attributes,
|
|
79
|
+
value: {
|
|
80
|
+
buckets,
|
|
81
|
+
count: metricState.count,
|
|
82
|
+
min: metricState.min,
|
|
83
|
+
max: metricState.max,
|
|
84
|
+
sum: metricState.sum
|
|
85
|
+
}
|
|
86
|
+
}]
|
|
87
|
+
});
|
|
88
|
+
} else if (MetricState.isFrequencyState(metricState)) {
|
|
89
|
+
const dataPoints = [];
|
|
90
|
+
for (const [freqKey, value] of metricState.occurrences) {
|
|
91
|
+
dataPoints.push({
|
|
92
|
+
startTime: hrTimeNow,
|
|
93
|
+
endTime: hrTimeNow,
|
|
94
|
+
attributes: {
|
|
95
|
+
...attributes,
|
|
96
|
+
key: freqKey
|
|
97
|
+
},
|
|
98
|
+
value
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
metricData.push({
|
|
102
|
+
dataPointType: DataPointType.SUM,
|
|
103
|
+
descriptor: descriptorFromKey(metricKey, attributes),
|
|
104
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
105
|
+
isMonotonic: true,
|
|
106
|
+
dataPoints
|
|
107
|
+
});
|
|
108
|
+
} else if (MetricState.isSummaryState(metricState)) {
|
|
109
|
+
const dataPoints = [{
|
|
110
|
+
startTime: hrTimeNow,
|
|
111
|
+
endTime: hrTimeNow,
|
|
112
|
+
attributes: {
|
|
113
|
+
...attributes,
|
|
114
|
+
quantile: "min"
|
|
115
|
+
},
|
|
116
|
+
value: metricState.min
|
|
117
|
+
}];
|
|
118
|
+
for (const [quantile, value] of metricState.quantiles) {
|
|
119
|
+
dataPoints.push({
|
|
120
|
+
startTime: hrTimeNow,
|
|
121
|
+
endTime: hrTimeNow,
|
|
122
|
+
attributes: {
|
|
123
|
+
...attributes,
|
|
124
|
+
quantile: quantile.toString()
|
|
125
|
+
},
|
|
126
|
+
value: value._tag === "Some" ? value.value : 0
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
dataPoints.push({
|
|
130
|
+
startTime: hrTimeNow,
|
|
131
|
+
endTime: hrTimeNow,
|
|
132
|
+
attributes: {
|
|
133
|
+
...attributes,
|
|
134
|
+
quantile: "max"
|
|
135
|
+
},
|
|
136
|
+
value: metricState.max
|
|
137
|
+
});
|
|
138
|
+
metricData.push({
|
|
139
|
+
dataPointType: DataPointType.SUM,
|
|
140
|
+
descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
|
|
141
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
142
|
+
isMonotonic: false,
|
|
143
|
+
dataPoints
|
|
144
|
+
});
|
|
145
|
+
metricData.push({
|
|
146
|
+
dataPointType: DataPointType.SUM,
|
|
147
|
+
descriptor: {
|
|
148
|
+
...descriptorMeta(metricKey, "count"),
|
|
149
|
+
unit: "1",
|
|
150
|
+
type: InstrumentType.COUNTER,
|
|
151
|
+
valueType: ValueType.INT
|
|
152
|
+
},
|
|
153
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
154
|
+
isMonotonic: true,
|
|
155
|
+
dataPoints: [{
|
|
156
|
+
startTime: hrTimeNow,
|
|
157
|
+
endTime: hrTimeNow,
|
|
158
|
+
attributes,
|
|
159
|
+
value: metricState.count
|
|
160
|
+
}]
|
|
161
|
+
});
|
|
162
|
+
metricData.push({
|
|
163
|
+
dataPointType: DataPointType.SUM,
|
|
164
|
+
descriptor: {
|
|
165
|
+
...descriptorMeta(metricKey, "sum"),
|
|
166
|
+
unit: "1",
|
|
167
|
+
type: InstrumentType.COUNTER,
|
|
168
|
+
valueType: ValueType.DOUBLE
|
|
169
|
+
},
|
|
170
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
171
|
+
isMonotonic: true,
|
|
172
|
+
dataPoints: [{
|
|
173
|
+
startTime: hrTimeNow,
|
|
174
|
+
endTime: hrTimeNow,
|
|
175
|
+
attributes,
|
|
176
|
+
value: metricState.sum
|
|
177
|
+
}]
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return Promise.resolve({
|
|
182
|
+
resourceMetrics: {
|
|
183
|
+
resource: this.resource,
|
|
184
|
+
scopeMetrics: [{
|
|
185
|
+
scope: {
|
|
186
|
+
name: sdkName
|
|
187
|
+
},
|
|
188
|
+
metrics: metricData
|
|
189
|
+
}]
|
|
190
|
+
},
|
|
191
|
+
errors: []
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const descriptorMeta = (metricKey, suffix) => ({
|
|
196
|
+
name: suffix ? `${metricKey.name}_${suffix}` : metricKey.name,
|
|
197
|
+
description: Option.getOrElse(metricKey.description, () => "")
|
|
198
|
+
});
|
|
199
|
+
const descriptorFromKey = (metricKey, tags, suffix) => ({
|
|
200
|
+
...descriptorMeta(metricKey, suffix),
|
|
201
|
+
unit: tags.unit ?? tags.time_unit ?? "1",
|
|
202
|
+
type: instrumentTypeFromKey(metricKey),
|
|
203
|
+
valueType: ValueType.DOUBLE
|
|
204
|
+
});
|
|
205
|
+
const instrumentTypeFromKey = key => {
|
|
206
|
+
if (MetricKeyType.isHistogramKey(key.keyType)) {
|
|
207
|
+
return InstrumentType.HISTOGRAM;
|
|
208
|
+
} else if (MetricKeyType.isGaugeKey(key.keyType)) {
|
|
209
|
+
return InstrumentType.OBSERVABLE_GAUGE;
|
|
210
|
+
} else if (MetricKeyType.isSummaryKey(key.keyType)) {
|
|
211
|
+
return InstrumentType.UP_DOWN_COUNTER;
|
|
212
|
+
} else if (MetricKeyType.isFrequencyKey(key.keyType)) {
|
|
213
|
+
return InstrumentType.COUNTER;
|
|
214
|
+
}
|
|
215
|
+
return InstrumentType.UP_DOWN_COUNTER;
|
|
216
|
+
};
|
|
217
|
+
const currentHrTime = () => {
|
|
218
|
+
const now = Date.now();
|
|
219
|
+
return [Math.floor(now / 1000), now % 1000 * 1000000];
|
|
220
|
+
};
|
|
221
|
+
/** @internal */
|
|
222
|
+
export const makeProducer = /*#__PURE__*/Effect.map(Resource.Resource, resource => new MetricProducerImpl(resource));
|
|
223
|
+
/** @internal */
|
|
224
|
+
export const registerProducer = (self, metricReader) => Effect.acquireRelease(Effect.sync(() => {
|
|
225
|
+
const reader = metricReader();
|
|
226
|
+
reader.setMetricProducer(self);
|
|
227
|
+
return reader;
|
|
228
|
+
}), reader => Effect.promise(() => reader.shutdown()));
|
|
229
|
+
/** @internal */
|
|
230
|
+
export const layer = evaluate => Layer.scopedDiscard(Effect.flatMap(makeProducer, producer => registerProducer(producer, evaluate)));
|
|
231
|
+
//# sourceMappingURL=metrics.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.mjs","names":["HashSet","Option","Effect","Layer","Metric","MetricKeyType","MetricState","Resource","ValueType","AggregationTemporality","DataPointType","InstrumentType","sdkName","MetricProducerImpl","constructor","resource","collect","_options","snapshot","unsafeSnapshot","hrTimeNow","currentHrTime","metricData","metricKey","metricState","attributes","reduce","tags","acc","label","key","value","descriptor","descriptorFromKey","isCounterState","push","dataPointType","SUM","isMonotonic","type","COUNTER","aggregationTemporality","CUMULATIVE","dataPoints","startTime","endTime","count","isGaugeState","GAUGE","isHistogramState","size","buckets","length","boundaries","Array","counts","i","prev","boundary","HISTOGRAM","min","max","sum","isFrequencyState","freqKey","occurrences","isSummaryState","quantile","quantiles","toString","_tag","descriptorMeta","unit","valueType","INT","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","name","metrics","errors","suffix","description","getOrElse","time_unit","instrumentTypeFromKey","isHistogramKey","keyType","isGaugeKey","OBSERVABLE_GAUGE","isSummaryKey","UP_DOWN_COUNTER","isFrequencyKey","now","Date","Math","floor","makeProducer","map","registerProducer","self","metricReader","acquireRelease","sync","reader","setMetricProducer","promise","shutdown","layer","evaluate","scopedDiscard","flatMap","producer"],"sources":["../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/mjs/internal/tracer.mjs
CHANGED
|
@@ -6,7 +6,6 @@ import * as Effect from "@effect/io/Effect";
|
|
|
6
6
|
import * as FiberRef from "@effect/io/FiberRef";
|
|
7
7
|
import * as FiberRefs from "@effect/io/FiberRefs";
|
|
8
8
|
import * as Layer from "@effect/io/Layer";
|
|
9
|
-
import * as Supervisor from "@effect/io/Supervisor";
|
|
10
9
|
import * as Tracer from "@effect/io/Tracer";
|
|
11
10
|
import { Resource } from "@effect/opentelemetry/Resource";
|
|
12
11
|
import * as OtelApi from "@opentelemetry/api";
|
|
@@ -75,6 +74,13 @@ export class OtelSpan {
|
|
|
75
74
|
export const make = /*#__PURE__*/Effect.map(tracer => Tracer.make({
|
|
76
75
|
span(name, parent, context, links, startTime) {
|
|
77
76
|
return new OtelSpan(OtelApi.context, tracer, name, parent, context, links, startTime);
|
|
77
|
+
},
|
|
78
|
+
context(execution, fiber) {
|
|
79
|
+
const currentSpan = Option.flatMap(FiberRefs.get(fiber.unsafeGetFiberRefs(), FiberRef.currentTracerSpan), List.head);
|
|
80
|
+
if (currentSpan._tag === "None") {
|
|
81
|
+
return execution();
|
|
82
|
+
}
|
|
83
|
+
return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan.value), execution);
|
|
78
84
|
}
|
|
79
85
|
}))( /*#__PURE__*/Effect.flatMap(resource => Effect.sync(() => OtelApi.trace.getTracer(resource.attributes["service.name"], resource.attributes["service.version"])))(Resource));
|
|
80
86
|
/** @internal */
|
|
@@ -101,22 +107,7 @@ export const makeExternalSpan = options => {
|
|
|
101
107
|
};
|
|
102
108
|
};
|
|
103
109
|
/** @internal */
|
|
104
|
-
export
|
|
105
|
-
value() {
|
|
106
|
-
return Effect.unit;
|
|
107
|
-
}
|
|
108
|
-
onRun(execution, fiber) {
|
|
109
|
-
const currentSpan = Option.flatMap(FiberRefs.get(fiber.unsafeGetFiberRefs(), FiberRef.currentTracerSpan), List.head);
|
|
110
|
-
if (currentSpan._tag === "None") {
|
|
111
|
-
return execution();
|
|
112
|
-
}
|
|
113
|
-
return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan.value), execution);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/** @internal */
|
|
117
|
-
export const supervisor = /*#__PURE__*/new OtelSupervisor();
|
|
118
|
-
/** @internal */
|
|
119
|
-
export const layer = /*#__PURE__*/Layer.merge( /*#__PURE__*/Layer.unwrapEffect( /*#__PURE__*/Effect.map(make, Effect.setTracer)), /*#__PURE__*/Supervisor.addSupervisor(supervisor));
|
|
110
|
+
export const layer = /*#__PURE__*/Layer.unwrapEffect( /*#__PURE__*/Effect.map(make, Effect.setTracer));
|
|
120
111
|
// -------------------------------------------------------------------------------------
|
|
121
112
|
// utils
|
|
122
113
|
// -------------------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.mjs","names":["Context","List","Option","Cause","Effect","FiberRef","FiberRefs","Layer","
|
|
1
|
+
{"version":3,"file":"tracer.mjs","names":["Context","List","Option","Cause","Effect","FiberRef","FiberRefs","Layer","Tracer","Resource","OtelApi","OtelSpan","constructor","contextApi","tracer","name","parent","context","links","startTime","_tag","attributes","Map","active","span","startSpan","nanosToHrTime","length","map","link","makeSpanContext","undefined","populateContext","value","spanContext","spanId","traceId","status","attribute","key","setAttribute","set","end","endTime","exit","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","message","pretty","ERROR","event","addEvent","make","execution","fiber","currentSpan","flatMap","get","unsafeGetFiberRefs","currentTracerSpan","head","with","resource","sync","trace","getTracer","traceFlagsTag","Tag","traceStateTag","makeExternalSpan","options","empty","traceFlags","add","traceState","match","createTraceState","onNone","onSome","layer","unwrapEffect","setTracer","bigint1e9","timestamp","Number","liftThrowable","otelContext","setSpan","setSpanContext","isRemote","getOrElse","extractTraceTag","getOption","TraceFlags","SAMPLED","getOrUndefined","tag","orElse"],"sources":["../../src/internal/tracer.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/opentelemetry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Functional programming in TypeScript",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -25,13 +25,14 @@
|
|
|
25
25
|
"sideEffects": [],
|
|
26
26
|
"author": "Michael Arnaldi <ma@matechs.com>",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@opentelemetry/resources": "^1.15.
|
|
29
|
-
"@opentelemetry/sdk-
|
|
30
|
-
"@opentelemetry/
|
|
28
|
+
"@opentelemetry/resources": "^1.15.2",
|
|
29
|
+
"@opentelemetry/sdk-metrics": "^1.15.2",
|
|
30
|
+
"@opentelemetry/sdk-node": "^0.41.2",
|
|
31
|
+
"@opentelemetry/semantic-conventions": "^1.15.2"
|
|
31
32
|
},
|
|
32
33
|
"peerDependencies": {
|
|
33
|
-
"@effect/data": "^0.
|
|
34
|
-
"@effect/io": "^0.
|
|
34
|
+
"@effect/data": "^0.18.3",
|
|
35
|
+
"@effect/io": "^0.39.0",
|
|
35
36
|
"@opentelemetry/api": "^1.4.1"
|
|
36
37
|
}
|
|
37
38
|
}
|
package/src/Metrics.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type { LazyArg } from "@effect/data/Function"
|
|
5
|
+
import type * as Effect from "@effect/io/Effect"
|
|
6
|
+
import type { Layer } from "@effect/io/Layer"
|
|
7
|
+
import type * as Scope from "@effect/io/Scope"
|
|
8
|
+
import * as internal from "@effect/opentelemetry/internal/metrics"
|
|
9
|
+
import type { Resource } from "@effect/opentelemetry/Resource"
|
|
10
|
+
import type { MetricReader } from "@opentelemetry/sdk-metrics"
|
|
11
|
+
import type { MetricProducer } from "@opentelemetry/sdk-metrics/build/src/export/MetricProducer"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category producer
|
|
16
|
+
*/
|
|
17
|
+
export const makeProducer: Effect.Effect<Resource, never, MetricProducer> = internal.makeProducer
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category producer
|
|
22
|
+
*/
|
|
23
|
+
export const registerProducer: (
|
|
24
|
+
self: MetricProducer,
|
|
25
|
+
metricReader: LazyArg<MetricReader>
|
|
26
|
+
) => Effect.Effect<Scope.Scope, never, MetricReader> = internal.registerProducer
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category layers
|
|
31
|
+
*/
|
|
32
|
+
export const layer: (evaluate: LazyArg<MetricReader>) => Layer<Resource, never, never> = internal.layer
|
package/src/Resource.ts
CHANGED
|
@@ -33,9 +33,9 @@ export const layer = (config: {
|
|
|
33
33
|
...(config.attributes ?? {}),
|
|
34
34
|
[SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
|
|
35
35
|
[SemanticResourceAttributes.TELEMETRY_SDK_NAME]: "@effect/opentelemetry",
|
|
36
|
-
[SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]: typeof (globalThis as any).document === "undefined"
|
|
37
|
-
TelemetrySdkLanguageValues.NODEJS
|
|
38
|
-
TelemetrySdkLanguageValues.WEBJS
|
|
36
|
+
[SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]: typeof (globalThis as any).document === "undefined"
|
|
37
|
+
? TelemetrySdkLanguageValues.NODEJS
|
|
38
|
+
: TelemetrySdkLanguageValues.WEBJS
|
|
39
39
|
}
|
|
40
40
|
if (config.serviceVersion) {
|
|
41
41
|
attributes[SemanticResourceAttributes.SERVICE_VERSION] = config.serviceVersion
|
package/src/Tracer.ts
CHANGED
|
@@ -6,7 +6,6 @@ import type { Effect } from "@effect/io/Effect"
|
|
|
6
6
|
import type { Layer } from "@effect/io/Layer"
|
|
7
7
|
import type { ExternalSpan, Tracer } from "@effect/io/Tracer"
|
|
8
8
|
import * as internal from "@effect/opentelemetry/internal/tracer"
|
|
9
|
-
import { OtelSupervisor } from "@effect/opentelemetry/internal/tracer"
|
|
10
9
|
import type { Resource } from "@effect/opentelemetry/Resource"
|
|
11
10
|
import type * as Otel from "@opentelemetry/api"
|
|
12
11
|
|
|
@@ -16,16 +15,6 @@ import type * as Otel from "@opentelemetry/api"
|
|
|
16
15
|
*/
|
|
17
16
|
export const make: Effect<Resource, never, Tracer> = internal.make
|
|
18
17
|
|
|
19
|
-
export {
|
|
20
|
-
/**
|
|
21
|
-
* An effect supervisor that sets up the OpenTelemetry context for the fiber executions.
|
|
22
|
-
*
|
|
23
|
-
* @since 1.0.0
|
|
24
|
-
* @category supervisor
|
|
25
|
-
*/
|
|
26
|
-
OtelSupervisor
|
|
27
|
-
}
|
|
28
|
-
|
|
29
18
|
/**
|
|
30
19
|
* @since 1.0.0
|
|
31
20
|
* @category constructors
|