@effect/opentelemetry 0.61.0 → 4.0.0-beta.1
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/index.js +29 -0
- 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 +86 -119
- 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 -36
- 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/OtlpSerialization/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 -64
- package/dist/cjs/Otlp.js.map +0 -1
- package/dist/cjs/OtlpLogger.js +0 -163
- package/dist/cjs/OtlpLogger.js.map +0 -1
- package/dist/cjs/OtlpMetrics.js +0 -357
- 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/OtlpSerialization.js +0 -55
- package/dist/cjs/OtlpSerialization.js.map +0 -1
- package/dist/cjs/OtlpTracer.js +0 -231
- 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 -32
- 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 -83
- package/dist/cjs/internal/otlpExporter.js.map +0 -1
- package/dist/cjs/internal/otlpProtobuf.js +0 -430
- package/dist/cjs/internal/otlpProtobuf.js.map +0 -1
- package/dist/cjs/internal/protobuf.js +0 -183
- package/dist/cjs/internal/protobuf.js.map +0 -1
- package/dist/cjs/internal/tracer.js +0 -306
- 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 -80
- package/dist/dts/Otlp.d.ts.map +0 -1
- package/dist/dts/OtlpLogger.d.ts +0 -47
- package/dist/dts/OtlpLogger.d.ts.map +0 -1
- package/dist/dts/OtlpMetrics.d.ts +0 -41
- 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/OtlpSerialization.d.ts +0 -53
- package/dist/dts/OtlpSerialization.d.ts.map +0 -1
- package/dist/dts/OtlpTracer.d.ts +0 -50
- 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 -54
- 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/otlpProtobuf.d.ts +0 -501
- package/dist/dts/internal/otlpProtobuf.d.ts.map +0 -1
- package/dist/dts/internal/protobuf.d.ts +0 -100
- package/dist/dts/internal/protobuf.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 -56
- package/dist/esm/Otlp.js.map +0 -1
- package/dist/esm/OtlpLogger.js +0 -155
- package/dist/esm/OtlpLogger.js.map +0 -1
- package/dist/esm/OtlpMetrics.js +0 -349
- 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/OtlpSerialization.js +0 -46
- package/dist/esm/OtlpSerialization.js.map +0 -1
- package/dist/esm/OtlpTracer.js +0 -223
- 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 +0 -54
- 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 -76
- package/dist/esm/internal/otlpExporter.js.map +0 -1
- package/dist/esm/internal/otlpProtobuf.js +0 -396
- package/dist/esm/internal/otlpProtobuf.js.map +0 -1
- package/dist/esm/internal/protobuf.js +0 -155
- package/dist/esm/internal/protobuf.js.map +0 -1
- package/dist/esm/internal/tracer.js +0 -297
- 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 -118
- package/src/OtlpLogger.ts +0 -263
- package/src/OtlpMetrics.ts +0 -575
- package/src/OtlpResource.ts +0 -232
- package/src/OtlpSerialization.ts +0 -64
- package/src/OtlpTracer.ts +0 -352
- package/src/internal/otlpExporter.ts +0 -126
- package/src/internal/otlpProtobuf.ts +0 -729
- package/src/internal/protobuf.ts +0 -219
- package/src/internal/tracer.ts +0 -448
- package/src/internal/utils.ts +0 -31
- /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { ValueType } from "@opentelemetry/api";
|
|
2
|
-
import { AggregationTemporality, DataPointType, InstrumentType } from "@opentelemetry/sdk-metrics";
|
|
3
|
-
import * as Arr from "effect/Array";
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import * as Layer from "effect/Layer";
|
|
6
|
-
import * as Metric from "effect/Metric";
|
|
7
|
-
import * as MetricKeyType from "effect/MetricKeyType";
|
|
8
|
-
import * as MetricState from "effect/MetricState";
|
|
9
|
-
import * as Option from "effect/Option";
|
|
10
|
-
import * as Resource from "../Resource.js";
|
|
11
|
-
const sdkName = "@effect/opentelemetry/Metrics";
|
|
12
|
-
/** @internal */
|
|
13
|
-
export class MetricProducerImpl {
|
|
14
|
-
resource;
|
|
15
|
-
constructor(resource) {
|
|
16
|
-
this.resource = resource;
|
|
17
|
-
}
|
|
18
|
-
startTimes = /*#__PURE__*/new Map();
|
|
19
|
-
startTimeFor(name, hrTime) {
|
|
20
|
-
if (this.startTimes.has(name)) {
|
|
21
|
-
return this.startTimes.get(name);
|
|
22
|
-
}
|
|
23
|
-
this.startTimes.set(name, hrTime);
|
|
24
|
-
return hrTime;
|
|
25
|
-
}
|
|
26
|
-
collect(_options) {
|
|
27
|
-
const snapshot = Metric.unsafeSnapshot();
|
|
28
|
-
const hrTimeNow = currentHrTime();
|
|
29
|
-
const metricData = [];
|
|
30
|
-
const metricDataByName = new Map();
|
|
31
|
-
const addMetricData = data => {
|
|
32
|
-
metricData.push(data);
|
|
33
|
-
metricDataByName.set(data.descriptor.name, data);
|
|
34
|
-
};
|
|
35
|
-
for (let i = 0, len = snapshot.length; i < len; i++) {
|
|
36
|
-
const {
|
|
37
|
-
metricKey,
|
|
38
|
-
metricState
|
|
39
|
-
} = snapshot[i];
|
|
40
|
-
const attributes = Arr.reduce(metricKey.tags, {}, (acc, label) => {
|
|
41
|
-
acc[label.key] = label.value;
|
|
42
|
-
return acc;
|
|
43
|
-
});
|
|
44
|
-
const descriptor = descriptorFromKey(metricKey, attributes);
|
|
45
|
-
const startTime = this.startTimeFor(descriptor.name, hrTimeNow);
|
|
46
|
-
if (MetricState.isCounterState(metricState)) {
|
|
47
|
-
const dataPoint = {
|
|
48
|
-
startTime,
|
|
49
|
-
endTime: hrTimeNow,
|
|
50
|
-
attributes,
|
|
51
|
-
value: Number(metricState.count)
|
|
52
|
-
};
|
|
53
|
-
if (metricDataByName.has(descriptor.name)) {
|
|
54
|
-
metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
|
|
55
|
-
} else {
|
|
56
|
-
addMetricData({
|
|
57
|
-
dataPointType: DataPointType.SUM,
|
|
58
|
-
descriptor,
|
|
59
|
-
isMonotonic: descriptor.type === InstrumentType.COUNTER,
|
|
60
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
61
|
-
dataPoints: [dataPoint]
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
} else if (MetricState.isGaugeState(metricState)) {
|
|
65
|
-
const dataPoint = {
|
|
66
|
-
startTime,
|
|
67
|
-
endTime: hrTimeNow,
|
|
68
|
-
attributes,
|
|
69
|
-
value: Number(metricState.value)
|
|
70
|
-
};
|
|
71
|
-
if (metricDataByName.has(descriptor.name)) {
|
|
72
|
-
metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
|
|
73
|
-
} else {
|
|
74
|
-
addMetricData({
|
|
75
|
-
dataPointType: DataPointType.GAUGE,
|
|
76
|
-
descriptor,
|
|
77
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
78
|
-
dataPoints: [dataPoint]
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
} else if (MetricState.isHistogramState(metricState)) {
|
|
82
|
-
const size = metricState.buckets.length;
|
|
83
|
-
const buckets = {
|
|
84
|
-
boundaries: Arr.allocate(size - 1),
|
|
85
|
-
counts: Arr.allocate(size)
|
|
86
|
-
};
|
|
87
|
-
let i = 0;
|
|
88
|
-
let prev = 0;
|
|
89
|
-
for (const [boundary, value] of metricState.buckets) {
|
|
90
|
-
if (i < size - 1) {
|
|
91
|
-
buckets.boundaries[i] = boundary;
|
|
92
|
-
}
|
|
93
|
-
buckets.counts[i] = value - prev;
|
|
94
|
-
prev = value;
|
|
95
|
-
i++;
|
|
96
|
-
}
|
|
97
|
-
const dataPoint = {
|
|
98
|
-
startTime,
|
|
99
|
-
endTime: hrTimeNow,
|
|
100
|
-
attributes,
|
|
101
|
-
value: {
|
|
102
|
-
buckets,
|
|
103
|
-
count: metricState.count,
|
|
104
|
-
min: metricState.min,
|
|
105
|
-
max: metricState.max,
|
|
106
|
-
sum: metricState.sum
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
if (metricDataByName.has(descriptor.name)) {
|
|
110
|
-
metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
|
|
111
|
-
} else {
|
|
112
|
-
addMetricData({
|
|
113
|
-
dataPointType: DataPointType.HISTOGRAM,
|
|
114
|
-
descriptor,
|
|
115
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
116
|
-
dataPoints: [dataPoint]
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
} else if (MetricState.isFrequencyState(metricState)) {
|
|
120
|
-
const dataPoints = [];
|
|
121
|
-
for (const [freqKey, value] of metricState.occurrences) {
|
|
122
|
-
dataPoints.push({
|
|
123
|
-
startTime,
|
|
124
|
-
endTime: hrTimeNow,
|
|
125
|
-
attributes: {
|
|
126
|
-
...attributes,
|
|
127
|
-
key: freqKey
|
|
128
|
-
},
|
|
129
|
-
value
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
if (metricDataByName.has(descriptor.name)) {
|
|
133
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
134
|
-
metricDataByName.get(descriptor.name).dataPoints.push(...dataPoints);
|
|
135
|
-
} else {
|
|
136
|
-
addMetricData({
|
|
137
|
-
dataPointType: DataPointType.SUM,
|
|
138
|
-
descriptor: descriptorFromKey(metricKey, attributes),
|
|
139
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
140
|
-
isMonotonic: true,
|
|
141
|
-
dataPoints
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
} else if (MetricState.isSummaryState(metricState)) {
|
|
145
|
-
const dataPoints = [{
|
|
146
|
-
startTime,
|
|
147
|
-
endTime: hrTimeNow,
|
|
148
|
-
attributes: {
|
|
149
|
-
...attributes,
|
|
150
|
-
quantile: "min"
|
|
151
|
-
},
|
|
152
|
-
value: metricState.min
|
|
153
|
-
}];
|
|
154
|
-
for (const [quantile, value] of metricState.quantiles) {
|
|
155
|
-
dataPoints.push({
|
|
156
|
-
startTime,
|
|
157
|
-
endTime: hrTimeNow,
|
|
158
|
-
attributes: {
|
|
159
|
-
...attributes,
|
|
160
|
-
quantile: quantile.toString()
|
|
161
|
-
},
|
|
162
|
-
value: value._tag === "Some" ? value.value : 0
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
dataPoints.push({
|
|
166
|
-
startTime,
|
|
167
|
-
endTime: hrTimeNow,
|
|
168
|
-
attributes: {
|
|
169
|
-
...attributes,
|
|
170
|
-
quantile: "max"
|
|
171
|
-
},
|
|
172
|
-
value: metricState.max
|
|
173
|
-
});
|
|
174
|
-
const countDataPoint = {
|
|
175
|
-
startTime,
|
|
176
|
-
endTime: hrTimeNow,
|
|
177
|
-
attributes,
|
|
178
|
-
value: metricState.count
|
|
179
|
-
};
|
|
180
|
-
const sumDataPoint = {
|
|
181
|
-
startTime,
|
|
182
|
-
endTime: hrTimeNow,
|
|
183
|
-
attributes,
|
|
184
|
-
value: metricState.sum
|
|
185
|
-
};
|
|
186
|
-
if (metricDataByName.has(`${descriptor.name}_quantiles`)) {
|
|
187
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
188
|
-
metricDataByName.get(`${descriptor.name}_quantiles`).dataPoints.push(...dataPoints);
|
|
189
|
-
metricDataByName.get(`${descriptor.name}_count`).dataPoints.push(countDataPoint);
|
|
190
|
-
metricDataByName.get(`${descriptor.name}_sum`).dataPoints.push(sumDataPoint);
|
|
191
|
-
} else {
|
|
192
|
-
addMetricData({
|
|
193
|
-
dataPointType: DataPointType.SUM,
|
|
194
|
-
descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
|
|
195
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
196
|
-
isMonotonic: false,
|
|
197
|
-
dataPoints
|
|
198
|
-
});
|
|
199
|
-
addMetricData({
|
|
200
|
-
dataPointType: DataPointType.SUM,
|
|
201
|
-
descriptor: {
|
|
202
|
-
...descriptorMeta(metricKey, "count"),
|
|
203
|
-
unit: "1",
|
|
204
|
-
type: InstrumentType.COUNTER,
|
|
205
|
-
valueType: ValueType.INT
|
|
206
|
-
},
|
|
207
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
208
|
-
isMonotonic: true,
|
|
209
|
-
dataPoints: [countDataPoint]
|
|
210
|
-
});
|
|
211
|
-
addMetricData({
|
|
212
|
-
dataPointType: DataPointType.SUM,
|
|
213
|
-
descriptor: {
|
|
214
|
-
...descriptorMeta(metricKey, "sum"),
|
|
215
|
-
unit: "1",
|
|
216
|
-
type: InstrumentType.COUNTER,
|
|
217
|
-
valueType: ValueType.DOUBLE
|
|
218
|
-
},
|
|
219
|
-
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
220
|
-
isMonotonic: true,
|
|
221
|
-
dataPoints: [sumDataPoint]
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
return Promise.resolve({
|
|
227
|
-
resourceMetrics: {
|
|
228
|
-
resource: this.resource,
|
|
229
|
-
scopeMetrics: [{
|
|
230
|
-
scope: {
|
|
231
|
-
name: sdkName
|
|
232
|
-
},
|
|
233
|
-
metrics: metricData
|
|
234
|
-
}]
|
|
235
|
-
},
|
|
236
|
-
errors: []
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
const descriptorMeta = (metricKey, suffix) => ({
|
|
241
|
-
name: suffix ? `${metricKey.name}_${suffix}` : metricKey.name,
|
|
242
|
-
description: Option.getOrElse(metricKey.description, () => ""),
|
|
243
|
-
advice: {}
|
|
244
|
-
});
|
|
245
|
-
const descriptorFromKey = (metricKey, tags, suffix) => ({
|
|
246
|
-
...descriptorMeta(metricKey, suffix),
|
|
247
|
-
unit: tags.unit ?? tags.time_unit ?? "1",
|
|
248
|
-
type: instrumentTypeFromKey(metricKey),
|
|
249
|
-
valueType: "bigint" in metricKey.keyType && metricKey.keyType.bigint === true ? ValueType.INT : ValueType.DOUBLE
|
|
250
|
-
});
|
|
251
|
-
const instrumentTypeFromKey = key => {
|
|
252
|
-
if (MetricKeyType.isHistogramKey(key.keyType)) {
|
|
253
|
-
return InstrumentType.HISTOGRAM;
|
|
254
|
-
} else if (MetricKeyType.isGaugeKey(key.keyType)) {
|
|
255
|
-
return InstrumentType.OBSERVABLE_GAUGE;
|
|
256
|
-
} else if (MetricKeyType.isFrequencyKey(key.keyType)) {
|
|
257
|
-
return InstrumentType.COUNTER;
|
|
258
|
-
} else if (MetricKeyType.isCounterKey(key.keyType) && key.keyType.incremental) {
|
|
259
|
-
return InstrumentType.COUNTER;
|
|
260
|
-
}
|
|
261
|
-
return InstrumentType.UP_DOWN_COUNTER;
|
|
262
|
-
};
|
|
263
|
-
const currentHrTime = () => {
|
|
264
|
-
const now = Date.now();
|
|
265
|
-
return [Math.floor(now / 1000), now % 1000 * 1000000];
|
|
266
|
-
};
|
|
267
|
-
/** @internal */
|
|
268
|
-
export const makeProducer = /*#__PURE__*/Effect.map(Resource.Resource, resource => new MetricProducerImpl(resource));
|
|
269
|
-
/** @internal */
|
|
270
|
-
export const registerProducer = (self, metricReader, options) => Effect.acquireRelease(Effect.sync(() => {
|
|
271
|
-
const reader = metricReader();
|
|
272
|
-
const readers = Array.isArray(reader) ? reader : [reader];
|
|
273
|
-
readers.forEach(reader => reader.setMetricProducer(self));
|
|
274
|
-
return readers;
|
|
275
|
-
}), readers => Effect.promise(() => Promise.all(readers.map(reader => reader.shutdown()))).pipe(Effect.ignoreLogged, Effect.interruptible, Effect.timeoutOption(options?.shutdownTimeout ?? 3000)));
|
|
276
|
-
/** @internal */
|
|
277
|
-
export const layer = (evaluate, options) => Layer.scopedDiscard(Effect.flatMap(makeProducer, producer => registerProducer(producer, evaluate, options)));
|
|
278
|
-
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Arr","Effect","Layer","Metric","MetricKeyType","MetricState","Option","Resource","sdkName","MetricProducerImpl","resource","constructor","startTimes","Map","startTimeFor","name","hrTime","has","get","set","collect","_options","snapshot","unsafeSnapshot","hrTimeNow","currentHrTime","metricData","metricDataByName","addMetricData","data","push","descriptor","i","len","length","metricKey","metricState","attributes","reduce","tags","acc","label","key","value","descriptorFromKey","startTime","isCounterState","dataPoint","endTime","Number","count","dataPoints","dataPointType","SUM","isMonotonic","type","COUNTER","aggregationTemporality","CUMULATIVE","isGaugeState","GAUGE","isHistogramState","size","buckets","boundaries","allocate","counts","prev","boundary","min","max","sum","HISTOGRAM","isFrequencyState","freqKey","occurrences","isSummaryState","quantile","quantiles","toString","_tag","countDataPoint","sumDataPoint","descriptorMeta","unit","valueType","INT","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","metrics","errors","suffix","description","getOrElse","advice","time_unit","instrumentTypeFromKey","keyType","bigint","isHistogramKey","isGaugeKey","OBSERVABLE_GAUGE","isFrequencyKey","isCounterKey","incremental","UP_DOWN_COUNTER","now","Date","Math","floor","makeProducer","map","registerProducer","self","metricReader","options","acquireRelease","sync","reader","readers","Array","isArray","forEach","setMetricProducer","promise","all","shutdown","pipe","ignoreLogged","interruptible","timeoutOption","shutdownTimeout","layer","evaluate","scopedDiscard","flatMap","producer"],"sources":["../../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import * as Headers from "@effect/platform/Headers";
|
|
2
|
-
import * as HttpClient from "@effect/platform/HttpClient";
|
|
3
|
-
import * as HttpClientError from "@effect/platform/HttpClientError";
|
|
4
|
-
import * as HttpClientRequest from "@effect/platform/HttpClientRequest";
|
|
5
|
-
import * as Duration from "effect/Duration";
|
|
6
|
-
import * as Effect from "effect/Effect";
|
|
7
|
-
import * as FiberSet from "effect/FiberSet";
|
|
8
|
-
import * as Num from "effect/Number";
|
|
9
|
-
import * as Option from "effect/Option";
|
|
10
|
-
import * as Schedule from "effect/Schedule";
|
|
11
|
-
import * as Scope from "effect/Scope";
|
|
12
|
-
const policy = /*#__PURE__*/Schedule.forever.pipe(Schedule.passthrough, /*#__PURE__*/Schedule.addDelay(error => {
|
|
13
|
-
if (HttpClientError.isHttpClientError(error) && error._tag === "ResponseError" && error.response.status === 429) {
|
|
14
|
-
const retryAfter = Option.fromNullable(error.response.headers["retry-after"]).pipe(Option.flatMap(Num.parse), Option.getOrElse(() => 5));
|
|
15
|
-
return Duration.seconds(retryAfter);
|
|
16
|
-
}
|
|
17
|
-
return Duration.seconds(1);
|
|
18
|
-
}));
|
|
19
|
-
/** @internal */
|
|
20
|
-
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
21
|
-
const clock = yield* Effect.clock;
|
|
22
|
-
const scope = yield* Effect.scope;
|
|
23
|
-
const exportInterval = Duration.decode(options.exportInterval);
|
|
24
|
-
let disabledUntil = undefined;
|
|
25
|
-
const client = HttpClient.filterStatusOk(yield* HttpClient.HttpClient).pipe(HttpClient.retryTransient({
|
|
26
|
-
schedule: policy,
|
|
27
|
-
times: 3
|
|
28
|
-
}));
|
|
29
|
-
let headers = Headers.unsafeFromRecord({
|
|
30
|
-
"user-agent": `effect-opentelemetry-${options.label}/0.0.0`
|
|
31
|
-
});
|
|
32
|
-
if (options.headers) {
|
|
33
|
-
headers = Headers.merge(Headers.fromInput(options.headers), headers);
|
|
34
|
-
}
|
|
35
|
-
const request = HttpClientRequest.post(options.url, {
|
|
36
|
-
headers
|
|
37
|
-
});
|
|
38
|
-
let buffer = [];
|
|
39
|
-
const runExport = Effect.suspend(() => {
|
|
40
|
-
if (disabledUntil !== undefined && clock.unsafeCurrentTimeMillis() < disabledUntil) {
|
|
41
|
-
return Effect.void;
|
|
42
|
-
} else if (disabledUntil !== undefined) {
|
|
43
|
-
disabledUntil = undefined;
|
|
44
|
-
}
|
|
45
|
-
const items = buffer;
|
|
46
|
-
if (options.maxBatchSize !== "disabled") {
|
|
47
|
-
if (buffer.length === 0) {
|
|
48
|
-
return Effect.void;
|
|
49
|
-
}
|
|
50
|
-
buffer = [];
|
|
51
|
-
}
|
|
52
|
-
const body = options.body(items);
|
|
53
|
-
const requestWithBody = HttpClientRequest.setBody(request, body);
|
|
54
|
-
return client.execute(requestWithBody).pipe(Effect.asVoid, Effect.withTracerEnabled(false));
|
|
55
|
-
}).pipe(Effect.catchAllCause(cause => {
|
|
56
|
-
if (disabledUntil !== undefined) return Effect.void;
|
|
57
|
-
disabledUntil = clock.unsafeCurrentTimeMillis() + Duration.toMillis("1 minute");
|
|
58
|
-
return Effect.logDebug(`Disabling ${options.label} for 60 seconds`, cause);
|
|
59
|
-
}));
|
|
60
|
-
yield* Scope.addFinalizer(scope, runExport.pipe(Effect.ignore, Effect.interruptible, Effect.timeoutOption(options.shutdownTimeout)));
|
|
61
|
-
yield* Effect.sleep(exportInterval).pipe(Effect.zipRight(runExport), Effect.forever, Effect.annotateLogs({
|
|
62
|
-
package: "@effect/opentelemetry",
|
|
63
|
-
module: options.label
|
|
64
|
-
}), Effect.forkIn(scope), Effect.interruptible);
|
|
65
|
-
const runFork = yield* FiberSet.makeRuntime().pipe(Effect.interruptible);
|
|
66
|
-
return {
|
|
67
|
-
push(data) {
|
|
68
|
-
if (disabledUntil !== undefined) return;
|
|
69
|
-
buffer.push(data);
|
|
70
|
-
if (options.maxBatchSize !== "disabled" && buffer.length >= options.maxBatchSize) {
|
|
71
|
-
runFork(runExport);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
});
|
|
76
|
-
//# sourceMappingURL=otlpExporter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"otlpExporter.js","names":["Headers","HttpClient","HttpClientError","HttpClientRequest","Duration","Effect","FiberSet","Num","Option","Schedule","Scope","policy","forever","pipe","passthrough","addDelay","error","isHttpClientError","_tag","response","status","retryAfter","fromNullable","headers","flatMap","parse","getOrElse","seconds","make","fnUntraced","options","clock","scope","exportInterval","decode","disabledUntil","undefined","client","filterStatusOk","retryTransient","schedule","times","unsafeFromRecord","label","merge","fromInput","request","post","url","buffer","runExport","suspend","unsafeCurrentTimeMillis","void","items","maxBatchSize","length","body","requestWithBody","setBody","execute","asVoid","withTracerEnabled","catchAllCause","cause","toMillis","logDebug","addFinalizer","ignore","interruptible","timeoutOption","shutdownTimeout","sleep","zipRight","annotateLogs","package","module","forkIn","runFork","makeRuntime","push","data"],"sources":["../../../src/internal/otlpExporter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|