@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.
@@ -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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"}
@@ -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 class OtelSupervisor extends Supervisor.AbstractSupervisor {
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","Supervisor","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","flatMap","resource","sync","trace","getTracer","traceFlagsTag","Tag","traceStateTag","makeExternalSpan","options","empty","traceFlags","add","traceState","match","createTraceState","onNone","onSome","OtelSupervisor","AbstractSupervisor","unit","onRun","execution","fiber","currentSpan","get","unsafeGetFiberRefs","currentTracerSpan","head","with","supervisor","layer","merge","unwrapEffect","setTracer","addSupervisor","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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"}
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":"AAAA,OAAO,KAAKA,OAAO,MAAM,sBAAsB;AAE/C,OAAO,KAAKC,IAAI,MAAM,mBAAmB;AACzC,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAE3C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AACjD,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,OAAO,KAAKC,OAAO,MAAM,oBAAoB;AAE7C;AACA,OAAM,MAAOC,QAAQ;EASnBC,YACEC,UAA8B,EAC9BC,MAAsB,EACbC,IAAY,EACZC,MAAwC,EACxCC,OAA+B,EAC/BC,KAAqC,EAC9CC,SAAiB;IAJR,KAAAJ,IAAI,GAAJA,IAAI;IACJ,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,OAAO,GAAPA,OAAO;IACP,KAAAC,KAAK,GAALA,KAAK;IAdP,KAAAE,IAAI,GAAG,MAAM;IAKb,KAAAC,UAAU,GAAG,IAAIC,GAAG,EAAiC;IAY5D,MAAMC,MAAM,GAAGV,UAAU,CAACU,MAAM,EAAE;IAClC,IAAI,CAACC,IAAI,GAAGV,MAAM,CAACW,SAAS,CAACV,IAAI,EAAE;MACjCI,SAAS,EAAEO,aAAa,CAACP,SAAS,CAAC;MACnCD,KAAK,EAAEA,KAAK,CAACS,MAAM,GAAG,CAAC,GACnBT,KAAK,CAACU,GAAG,CAAEC,IAAI,KAAM;QACrBZ,OAAO,EAAEa,eAAe,CAACD,IAAI,CAACL,IAAI,CAAC;QACnCH,UAAU,EAAEQ,IAAI,CAACR;OAClB,CAAC,CAAC,GACDU;KACL,EAAEf,MAAM,CAACI,IAAI,KAAK,MAAM,GAAGY,eAAe,CAACT,MAAM,EAAEP,MAAM,CAACiB,KAAK,EAAEhB,OAAO,CAAC,GAAGM,MAAM,CAAC;IACpF,MAAMW,WAAW,GAAG,IAAI,CAACV,IAAI,CAACU,WAAW,EAAE;IAC3C,IAAI,CAACC,MAAM,GAAGD,WAAW,CAACC,MAAM;IAChC,IAAI,CAACC,OAAO,GAAGF,WAAW,CAACE,OAAO;IAClC,IAAI,CAACC,MAAM,GAAG;MACZjB,IAAI,EAAE,SAAS;MACfD;KACD;EACH;EAEAmB,SAASA,CAACC,GAAW,EAAEN,KAA4B;IACjD,IAAI,CAACT,IAAI,CAACgB,YAAY,CAACD,GAAG,EAAEN,KAAK,CAAC;IAClC,IAAI,CAACZ,UAAU,CAACoB,GAAG,CAACF,GAAG,EAAEN,KAAK,CAAC;EACjC;EAEAS,GAAGA,CAACC,OAAe,EAAEC,IAA4B;IAC/C,IAAI,CAACP,MAAM,GAAG;MACZjB,IAAI,EAAE,OAAO;MACbuB,OAAO;MACPC,IAAI;MACJzB,SAAS,EAAE,IAAI,CAACkB,MAAM,CAAClB;KACxB;IAED,IAAIyB,IAAI,CAACxB,IAAI,KAAK,SAAS,EAAE;MAC3B,IAAI,CAACI,IAAI,CAACqB,SAAS,CAAC;QAClBC,IAAI,EAAEpC,OAAO,CAACqC,cAAc,CAACC;OAC9B,CAAC;KACH,MAAM;MACL,IAAI7C,KAAK,CAAC8C,iBAAiB,CAACL,IAAI,CAACM,KAAK,CAAC,EAAE;QACvC,IAAI,CAAC1B,IAAI,CAACqB,SAAS,CAAC;UAClBC,IAAI,EAAEpC,OAAO,CAACqC,cAAc,CAACC,EAAE;UAC/BG,OAAO,EAAEhD,KAAK,CAACiD,MAAM,CAACR,IAAI,CAACM,KAAK;SACjC,CAAC;QACF,IAAI,CAAC1B,IAAI,CAACgB,YAAY,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACtD,IAAI,CAAChB,IAAI,CAACgB,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC;OACnD,MAAM;QACL,IAAI,CAAChB,IAAI,CAACqB,SAAS,CAAC;UAClBC,IAAI,EAAEpC,OAAO,CAACqC,cAAc,CAACM,KAAK;UAClCF,OAAO,EAAEhD,KAAK,CAACiD,MAAM,CAACR,IAAI,CAACM,KAAK;SACjC,CAAC;;;IAGN,IAAI,CAAC1B,IAAI,CAACkB,GAAG,CAAChB,aAAa,CAACiB,OAAO,CAAC,CAAC;EACvC;EAEAW,KAAKA,CAACvC,IAAY,EAAEI,SAAiB,EAAEE,UAAkD;IACvF,IAAI,CAACG,IAAI,CAAC+B,QAAQ,CAACxC,IAAI,EAAEM,UAAU,EAAEK,aAAa,CAACP,SAAS,CAAC,CAAC;EAChE;;AAGF;AACA,OAAO,MAAMqC,IAAI,gBAUfpD,MAAM,CAACwB,GAAG,CAAEd,MAAM,IAChBN,MAAM,CAACgD,IAAI,CAAC;EACVhC,IAAIA,CAACT,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAEC,SAAS;IAC1C,OAAO,IAAIR,QAAQ,CACjBD,OAAO,CAACO,OAAO,EACfH,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,OAAO,EACPC,KAAK,EACLC,SAAS,CACV;EACH,CAAC;EACDF,OAAOA,CAACwC,SAAS,EAAEC,KAAK;IACtB,MAAMC,WAAW,GAAGzD,MAAM,CAAC0D,OAAO,CAChCtD,SAAS,CAACuD,GAAG,CACXH,KAAK,CAACI,kBAAkB,EAAE,EAC1BzD,QAAQ,CAAC0D,iBAAiB,CAC3B,EACD9D,IAAI,CAAC+D,IAAI,CACV;IAED,IAAIL,WAAW,CAACvC,IAAI,KAAK,MAAM,EAAE;MAC/B,OAAOqC,SAAS,EAAE;;IAGpB,OAAO/C,OAAO,CAACO,OAAO,CAACgD,IAAI,CACzBjC,eAAe,CAACtB,OAAO,CAACO,OAAO,CAACM,MAAM,EAAE,EAAEoC,WAAW,CAAC1B,KAAK,CAAC,EAC5DwB,SAAS,CACV;EACH;CACD,CAAC,CACH,eAxCDrD,MAAM,CAACwD,OAAO,CAAEM,QAAQ,IACtB9D,MAAM,CAAC+D,IAAI,CAAC,MACVzD,OAAO,CAAC0D,KAAK,CAACC,SAAS,CACrBH,QAAQ,CAAC7C,UAAU,CAAC,cAAc,CAAW,EAC7C6C,QAAQ,CAAC7C,UAAU,CAAC,iBAAiB,CAAW,CACjD,CACF,CACF,CARDZ,QAAQ,EA0CT;AAED;AACA,OAAO,MAAM6D,aAAa,gBAAGtE,OAAO,CAACuE,GAAG,CAAqB,kCAAkC,CAAC;AAEhG;AACA,OAAO,MAAMC,aAAa,gBAAGxE,OAAO,CAACuE,GAAG,CAAqB,kCAAkC,CAAC;AAEhG;AACA,OAAO,MAAME,gBAAgB,GAAIC,OAKhC,IAAyB;EACxB,IAAIzD,OAAO,GAAGjB,OAAO,CAAC2E,KAAK,EAAE;EAE7B,IAAID,OAAO,CAACE,UAAU,EAAE;IACtB3D,OAAO,GAAGjB,OAAO,CAAC6E,GAAG,CAAC5D,OAAO,EAAEqD,aAAa,EAAEI,OAAO,CAACE,UAAU,CAAC;;EAGnE,IAAIF,OAAO,CAACI,UAAU,EAAE;IACtB7D,OAAO,GAAGf,MAAM,CAAC6E,KAAK,CAACC,gBAAgB,CAACN,OAAO,CAACI,UAAU,CAAC,EAAE;MAC3DG,MAAM,EAAEA,CAAA,KAAMhE,OAAO;MACrBiE,MAAM,EAAGJ,UAAU,IAAK9E,OAAO,CAAC6E,GAAG,CAAC5D,OAAO,EAAEuD,aAAa,EAAEM,UAAU;KACvE,CAAC;;EAGJ,OAAO;IACL1D,IAAI,EAAE,cAAc;IACpBgB,OAAO,EAAEsC,OAAO,CAACtC,OAAO;IACxBD,MAAM,EAAEuC,OAAO,CAACvC,MAAM;IACtBlB;GACD;AACH,CAAC;AAED;AACA,OAAO,MAAMkE,KAAK,gBAAG5E,KAAK,CAAC6E,YAAY,eAAChF,MAAM,CAACwB,GAAG,CAAC4B,IAAI,EAAEpD,MAAM,CAACiF,SAAS,CAAC,CAAC;AAE3E;AACA;AACA;AAEA,MAAMC,SAAS,GAAG,WAAc;AAChC,MAAM5D,aAAa,GAAI6D,SAAiB,IAAoB;EAC1D,OAAO,CAACC,MAAM,CAACD,SAAS,GAAGD,SAAS,CAAC,EAAEE,MAAM,CAACD,SAAS,GAAGD,SAAS,CAAC,CAAC;AACvE,CAAC;AAED,MAAMN,gBAAgB,gBAAG9E,MAAM,CAACuF,aAAa,CAAC/E,OAAO,CAACsE,gBAAgB,CAAC;AAEvE,MAAMhD,eAAe,GAAGA,CACtB0D,WAA4B,EAC5BlE,IAAuB,EACvBP,OAAgC,KAEhCO,IAAI,YAAYb,QAAQ,GACtBD,OAAO,CAAC0D,KAAK,CAACuB,OAAO,CAACD,WAAW,EAAElE,IAAI,CAACA,IAAI,CAAC,GAC7Cd,OAAO,CAAC0D,KAAK,CAACwB,cAAc,CAACF,WAAW,EAAE5D,eAAe,CAACN,IAAI,EAAEP,OAAO,CAAC,CAAC;AAE7E,MAAMa,eAAe,GAAGA,CAACN,IAAuB,EAAEP,OAAgC,MAA2B;EAC3GkB,MAAM,EAAEX,IAAI,CAACW,MAAM;EACnBC,OAAO,EAAEZ,IAAI,CAACY,OAAO;EACrByD,QAAQ,EAAErE,IAAI,CAACJ,IAAI,KAAK,cAAc;EACtCwD,UAAU,EAAE1E,MAAM,CAAC4F,SAAS,CAC1B7E,OAAO,GACL8E,eAAe,CAACvE,IAAI,EAAEP,OAAO,EAAEqD,aAAa,CAAC,GAC7CtE,OAAO,CAACgG,SAAS,CAACxE,IAAI,CAACP,OAAO,EAAEqD,aAAa,CAAC,EAChD,MAAM5D,OAAO,CAACuF,UAAU,CAACC,OAAO,CACjC;EACDpB,UAAU,EAAE5E,MAAM,CAACiG,cAAc,CAC/BlF,OAAO,GACL8E,eAAe,CAACvE,IAAI,EAAEP,OAAO,EAAEuD,aAAa,CAAC,GAC7CxE,OAAO,CAACgG,SAAS,CAACxE,IAAI,CAACP,OAAO,EAAEuD,aAAa,CAAC;CAEnD,CAAC;AAEF,MAAMuB,eAAe,GAAGA,CACtB/E,MAAyB,EACzBC,OAA+B,EAC/BmF,GAAsB,KAEtBlG,MAAM,CAACmG,MAAM,CACXrG,OAAO,CAACgG,SAAS,CAAC/E,OAAO,EAAEmF,GAAG,CAAC,EAC/B,MAAMpG,OAAO,CAACgG,SAAS,CAAChF,MAAM,CAACC,OAAO,EAAEmF,GAAG,CAAC,CAC7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/opentelemetry",
3
- "version": "0.9.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.1",
29
- "@opentelemetry/sdk-node": "^0.41.1",
30
- "@opentelemetry/semantic-conventions": "^1.15.1"
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.17.1",
34
- "@effect/io": "^0.38.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