@effect/opentelemetry 0.31.19 → 0.31.20

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.
@@ -46,10 +46,23 @@ class MetricProducerImpl {
46
46
  constructor(resource) {
47
47
  this.resource = resource;
48
48
  }
49
+ startTimes = new Map();
50
+ startTimeFor(name, hrTime) {
51
+ if (this.startTimes.has(name)) {
52
+ return this.startTimes.get(name);
53
+ }
54
+ this.startTimes.set(name, hrTime);
55
+ return hrTime;
56
+ }
49
57
  collect(_options) {
50
58
  const snapshot = Metric.unsafeSnapshot();
51
59
  const hrTimeNow = currentHrTime();
52
60
  const metricData = [];
61
+ const metricDataByName = new Map();
62
+ const addMetricData = data => {
63
+ metricData.push(data);
64
+ metricDataByName.set(data.descriptor.name, data);
65
+ };
53
66
  for (let i = 0, len = snapshot.length; i < len; i++) {
54
67
  const {
55
68
  metricKey,
@@ -60,31 +73,42 @@ class MetricProducerImpl {
60
73
  return acc;
61
74
  });
62
75
  const descriptor = descriptorFromKey(metricKey, attributes);
76
+ const startTime = this.startTimeFor(descriptor.name, hrTimeNow);
63
77
  if (MetricState.isCounterState(metricState)) {
64
- metricData.push({
65
- dataPointType: _sdkMetrics.DataPointType.SUM,
66
- descriptor,
67
- isMonotonic: descriptor.type === _sdkMetrics.InstrumentType.COUNTER,
68
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
69
- dataPoints: [{
70
- startTime: hrTimeNow,
71
- endTime: hrTimeNow,
72
- attributes,
73
- value: Number(metricState.count)
74
- }]
75
- });
78
+ const dataPoint = {
79
+ startTime,
80
+ endTime: hrTimeNow,
81
+ attributes,
82
+ value: Number(metricState.count)
83
+ };
84
+ if (metricDataByName.has(descriptor.name)) {
85
+ metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
86
+ } else {
87
+ addMetricData({
88
+ dataPointType: _sdkMetrics.DataPointType.SUM,
89
+ descriptor,
90
+ isMonotonic: descriptor.type === _sdkMetrics.InstrumentType.COUNTER,
91
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
92
+ dataPoints: [dataPoint]
93
+ });
94
+ }
76
95
  } else if (MetricState.isGaugeState(metricState)) {
77
- metricData.push({
78
- dataPointType: _sdkMetrics.DataPointType.GAUGE,
79
- descriptor,
80
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
81
- dataPoints: [{
82
- startTime: hrTimeNow,
83
- endTime: hrTimeNow,
84
- attributes,
85
- value: Number(metricState.value)
86
- }]
87
- });
96
+ const dataPoint = {
97
+ startTime,
98
+ endTime: hrTimeNow,
99
+ attributes,
100
+ value: Number(metricState.value)
101
+ };
102
+ if (metricDataByName.has(descriptor.name)) {
103
+ metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
104
+ } else {
105
+ addMetricData({
106
+ dataPointType: _sdkMetrics.DataPointType.GAUGE,
107
+ descriptor,
108
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
109
+ dataPoints: [dataPoint]
110
+ });
111
+ }
88
112
  } else if (MetricState.isHistogramState(metricState)) {
89
113
  const size = metricState.buckets.length;
90
114
  const buckets = {
@@ -101,28 +125,33 @@ class MetricProducerImpl {
101
125
  prev = value;
102
126
  i++;
103
127
  }
104
- metricData.push({
105
- dataPointType: _sdkMetrics.DataPointType.HISTOGRAM,
106
- descriptor,
107
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
108
- dataPoints: [{
109
- startTime: hrTimeNow,
110
- endTime: hrTimeNow,
111
- attributes,
112
- value: {
113
- buckets,
114
- count: metricState.count,
115
- min: metricState.min,
116
- max: metricState.max,
117
- sum: metricState.sum
118
- }
119
- }]
120
- });
128
+ const dataPoint = {
129
+ startTime,
130
+ endTime: hrTimeNow,
131
+ attributes,
132
+ value: {
133
+ buckets,
134
+ count: metricState.count,
135
+ min: metricState.min,
136
+ max: metricState.max,
137
+ sum: metricState.sum
138
+ }
139
+ };
140
+ if (metricDataByName.has(descriptor.name)) {
141
+ metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
142
+ } else {
143
+ addMetricData({
144
+ dataPointType: _sdkMetrics.DataPointType.HISTOGRAM,
145
+ descriptor,
146
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
147
+ dataPoints: [dataPoint]
148
+ });
149
+ }
121
150
  } else if (MetricState.isFrequencyState(metricState)) {
122
151
  const dataPoints = [];
123
152
  for (const [freqKey, value] of metricState.occurrences) {
124
153
  dataPoints.push({
125
- startTime: hrTimeNow,
154
+ startTime,
126
155
  endTime: hrTimeNow,
127
156
  attributes: {
128
157
  ...attributes,
@@ -131,16 +160,21 @@ class MetricProducerImpl {
131
160
  value
132
161
  });
133
162
  }
134
- metricData.push({
135
- dataPointType: _sdkMetrics.DataPointType.SUM,
136
- descriptor: descriptorFromKey(metricKey, attributes),
137
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
138
- isMonotonic: true,
139
- dataPoints
140
- });
163
+ if (metricDataByName.has(descriptor.name)) {
164
+ // eslint-disable-next-line no-restricted-syntax
165
+ metricDataByName.get(descriptor.name).dataPoints.push(...dataPoints);
166
+ } else {
167
+ addMetricData({
168
+ dataPointType: _sdkMetrics.DataPointType.SUM,
169
+ descriptor: descriptorFromKey(metricKey, attributes),
170
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
171
+ isMonotonic: true,
172
+ dataPoints
173
+ });
174
+ }
141
175
  } else if (MetricState.isSummaryState(metricState)) {
142
176
  const dataPoints = [{
143
- startTime: hrTimeNow,
177
+ startTime,
144
178
  endTime: hrTimeNow,
145
179
  attributes: {
146
180
  ...attributes,
@@ -150,7 +184,7 @@ class MetricProducerImpl {
150
184
  }];
151
185
  for (const [quantile, value] of metricState.quantiles) {
152
186
  dataPoints.push({
153
- startTime: hrTimeNow,
187
+ startTime,
154
188
  endTime: hrTimeNow,
155
189
  attributes: {
156
190
  ...attributes,
@@ -160,7 +194,7 @@ class MetricProducerImpl {
160
194
  });
161
195
  }
162
196
  dataPoints.push({
163
- startTime: hrTimeNow,
197
+ startTime,
164
198
  endTime: hrTimeNow,
165
199
  attributes: {
166
200
  ...attributes,
@@ -168,47 +202,56 @@ class MetricProducerImpl {
168
202
  },
169
203
  value: metricState.max
170
204
  });
171
- metricData.push({
172
- dataPointType: _sdkMetrics.DataPointType.SUM,
173
- descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
174
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
175
- isMonotonic: false,
176
- dataPoints
177
- });
178
- metricData.push({
179
- dataPointType: _sdkMetrics.DataPointType.SUM,
180
- descriptor: {
181
- ...descriptorMeta(metricKey, "count"),
182
- unit: "1",
183
- type: _sdkMetrics.InstrumentType.COUNTER,
184
- valueType: _api.ValueType.INT
185
- },
186
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
187
- isMonotonic: true,
188
- dataPoints: [{
189
- startTime: hrTimeNow,
190
- endTime: hrTimeNow,
191
- attributes,
192
- value: metricState.count
193
- }]
194
- });
195
- metricData.push({
196
- dataPointType: _sdkMetrics.DataPointType.SUM,
197
- descriptor: {
198
- ...descriptorMeta(metricKey, "sum"),
199
- unit: "1",
200
- type: _sdkMetrics.InstrumentType.COUNTER,
201
- valueType: _api.ValueType.DOUBLE
202
- },
203
- aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
204
- isMonotonic: true,
205
- dataPoints: [{
206
- startTime: hrTimeNow,
207
- endTime: hrTimeNow,
208
- attributes,
209
- value: metricState.sum
210
- }]
211
- });
205
+ const countDataPoint = {
206
+ startTime,
207
+ endTime: hrTimeNow,
208
+ attributes,
209
+ value: metricState.count
210
+ };
211
+ const sumDataPoint = {
212
+ startTime,
213
+ endTime: hrTimeNow,
214
+ attributes,
215
+ value: metricState.sum
216
+ };
217
+ if (metricDataByName.has(`${descriptor.name}_quantiles`)) {
218
+ // eslint-disable-next-line no-restricted-syntax
219
+ metricDataByName.get(`${descriptor.name}_quantiles`).dataPoints.push(...dataPoints);
220
+ metricDataByName.get(`${descriptor.name}_count`).dataPoints.push(countDataPoint);
221
+ metricDataByName.get(`${descriptor.name}_sum`).dataPoints.push(sumDataPoint);
222
+ } else {
223
+ addMetricData({
224
+ dataPointType: _sdkMetrics.DataPointType.SUM,
225
+ descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
226
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
227
+ isMonotonic: false,
228
+ dataPoints
229
+ });
230
+ addMetricData({
231
+ dataPointType: _sdkMetrics.DataPointType.SUM,
232
+ descriptor: {
233
+ ...descriptorMeta(metricKey, "count"),
234
+ unit: "1",
235
+ type: _sdkMetrics.InstrumentType.COUNTER,
236
+ valueType: _api.ValueType.INT
237
+ },
238
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
239
+ isMonotonic: true,
240
+ dataPoints: [countDataPoint]
241
+ });
242
+ addMetricData({
243
+ dataPointType: _sdkMetrics.DataPointType.SUM,
244
+ descriptor: {
245
+ ...descriptorMeta(metricKey, "sum"),
246
+ unit: "1",
247
+ type: _sdkMetrics.InstrumentType.COUNTER,
248
+ valueType: _api.ValueType.DOUBLE
249
+ },
250
+ aggregationTemporality: _sdkMetrics.AggregationTemporality.CUMULATIVE,
251
+ isMonotonic: true,
252
+ dataPoints: [sumDataPoint]
253
+ });
254
+ }
212
255
  }
213
256
  }
214
257
  return Promise.resolve({
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","names":["_api","require","_sdkMetrics","Effect","_interopRequireWildcard","Layer","Metric","MetricKeyType","MetricState","Option","ReadonlyArray","Resource","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","sdkName","MetricProducerImpl","resource","constructor","collect","_options","snapshot","unsafeSnapshot","hrTimeNow","currentHrTime","metricData","len","length","metricKey","metricState","attributes","reduce","tags","acc","label","key","value","descriptor","descriptorFromKey","isCounterState","push","dataPointType","DataPointType","SUM","isMonotonic","type","InstrumentType","COUNTER","aggregationTemporality","AggregationTemporality","CUMULATIVE","dataPoints","startTime","endTime","Number","count","isGaugeState","GAUGE","isHistogramState","size","buckets","boundaries","Array","counts","prev","boundary","HISTOGRAM","min","max","sum","isFrequencyState","freqKey","occurrences","isSummaryState","quantile","quantiles","toString","_tag","descriptorMeta","unit","valueType","ValueType","INT","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","name","metrics","errors","exports","suffix","description","getOrElse","time_unit","instrumentTypeFromKey","keyType","bigint","isHistogramKey","isGaugeKey","OBSERVABLE_GAUGE","isFrequencyKey","isCounterKey","incremental","UP_DOWN_COUNTER","now","Date","Math","floor","makeProducer","map","registerProducer","self","metricReader","acquireRelease","sync","reader","setMetricProducer","ignoreLogged","promise","shutdown","layer","evaluate","scopedDiscard","flatMap","producer"],"sources":["../../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","names":["_api","require","_sdkMetrics","Effect","_interopRequireWildcard","Layer","Metric","MetricKeyType","MetricState","Option","ReadonlyArray","Resource","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","sdkName","MetricProducerImpl","resource","constructor","startTimes","Map","startTimeFor","name","hrTime","collect","_options","snapshot","unsafeSnapshot","hrTimeNow","currentHrTime","metricData","metricDataByName","addMetricData","data","push","descriptor","len","length","metricKey","metricState","attributes","reduce","tags","acc","label","key","value","descriptorFromKey","startTime","isCounterState","dataPoint","endTime","Number","count","dataPoints","dataPointType","DataPointType","SUM","isMonotonic","type","InstrumentType","COUNTER","aggregationTemporality","AggregationTemporality","CUMULATIVE","isGaugeState","GAUGE","isHistogramState","size","buckets","boundaries","Array","counts","prev","boundary","min","max","sum","HISTOGRAM","isFrequencyState","freqKey","occurrences","isSummaryState","quantile","quantiles","toString","_tag","countDataPoint","sumDataPoint","descriptorMeta","unit","valueType","ValueType","INT","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","metrics","errors","exports","suffix","description","getOrElse","time_unit","instrumentTypeFromKey","keyType","bigint","isHistogramKey","isGaugeKey","OBSERVABLE_GAUGE","isFrequencyKey","isCounterKey","incremental","UP_DOWN_COUNTER","now","Date","Math","floor","makeProducer","map","registerProducer","self","metricReader","acquireRelease","sync","reader","setMetricProducer","ignoreLogged","promise","shutdown","layer","evaluate","scopedDiscard","flatMap","producer"],"sources":["../../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -15,10 +15,23 @@ export class MetricProducerImpl {
15
15
  constructor(resource) {
16
16
  this.resource = resource;
17
17
  }
18
+ startTimes = 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
+ }
18
26
  collect(_options) {
19
27
  const snapshot = Metric.unsafeSnapshot();
20
28
  const hrTimeNow = currentHrTime();
21
29
  const metricData = [];
30
+ const metricDataByName = new Map();
31
+ const addMetricData = data => {
32
+ metricData.push(data);
33
+ metricDataByName.set(data.descriptor.name, data);
34
+ };
22
35
  for (let i = 0, len = snapshot.length; i < len; i++) {
23
36
  const {
24
37
  metricKey,
@@ -29,31 +42,42 @@ export class MetricProducerImpl {
29
42
  return acc;
30
43
  });
31
44
  const descriptor = descriptorFromKey(metricKey, attributes);
45
+ const startTime = this.startTimeFor(descriptor.name, hrTimeNow);
32
46
  if (MetricState.isCounterState(metricState)) {
33
- metricData.push({
34
- dataPointType: DataPointType.SUM,
35
- descriptor,
36
- isMonotonic: descriptor.type === InstrumentType.COUNTER,
37
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
38
- dataPoints: [{
39
- startTime: hrTimeNow,
40
- endTime: hrTimeNow,
41
- attributes,
42
- value: Number(metricState.count)
43
- }]
44
- });
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
+ }
45
64
  } else if (MetricState.isGaugeState(metricState)) {
46
- metricData.push({
47
- dataPointType: DataPointType.GAUGE,
48
- descriptor,
49
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
50
- dataPoints: [{
51
- startTime: hrTimeNow,
52
- endTime: hrTimeNow,
53
- attributes,
54
- value: Number(metricState.value)
55
- }]
56
- });
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
+ }
57
81
  } else if (MetricState.isHistogramState(metricState)) {
58
82
  const size = metricState.buckets.length;
59
83
  const buckets = {
@@ -70,28 +94,33 @@ export class MetricProducerImpl {
70
94
  prev = value;
71
95
  i++;
72
96
  }
73
- metricData.push({
74
- dataPointType: DataPointType.HISTOGRAM,
75
- descriptor,
76
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
77
- dataPoints: [{
78
- startTime: hrTimeNow,
79
- endTime: hrTimeNow,
80
- attributes,
81
- value: {
82
- buckets,
83
- count: metricState.count,
84
- min: metricState.min,
85
- max: metricState.max,
86
- sum: metricState.sum
87
- }
88
- }]
89
- });
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
+ }
90
119
  } else if (MetricState.isFrequencyState(metricState)) {
91
120
  const dataPoints = [];
92
121
  for (const [freqKey, value] of metricState.occurrences) {
93
122
  dataPoints.push({
94
- startTime: hrTimeNow,
123
+ startTime,
95
124
  endTime: hrTimeNow,
96
125
  attributes: {
97
126
  ...attributes,
@@ -100,16 +129,21 @@ export class MetricProducerImpl {
100
129
  value
101
130
  });
102
131
  }
103
- metricData.push({
104
- dataPointType: DataPointType.SUM,
105
- descriptor: descriptorFromKey(metricKey, attributes),
106
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
107
- isMonotonic: true,
108
- dataPoints
109
- });
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
+ }
110
144
  } else if (MetricState.isSummaryState(metricState)) {
111
145
  const dataPoints = [{
112
- startTime: hrTimeNow,
146
+ startTime,
113
147
  endTime: hrTimeNow,
114
148
  attributes: {
115
149
  ...attributes,
@@ -119,7 +153,7 @@ export class MetricProducerImpl {
119
153
  }];
120
154
  for (const [quantile, value] of metricState.quantiles) {
121
155
  dataPoints.push({
122
- startTime: hrTimeNow,
156
+ startTime,
123
157
  endTime: hrTimeNow,
124
158
  attributes: {
125
159
  ...attributes,
@@ -129,7 +163,7 @@ export class MetricProducerImpl {
129
163
  });
130
164
  }
131
165
  dataPoints.push({
132
- startTime: hrTimeNow,
166
+ startTime,
133
167
  endTime: hrTimeNow,
134
168
  attributes: {
135
169
  ...attributes,
@@ -137,47 +171,56 @@ export class MetricProducerImpl {
137
171
  },
138
172
  value: metricState.max
139
173
  });
140
- metricData.push({
141
- dataPointType: DataPointType.SUM,
142
- descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
143
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
144
- isMonotonic: false,
145
- dataPoints
146
- });
147
- metricData.push({
148
- dataPointType: DataPointType.SUM,
149
- descriptor: {
150
- ...descriptorMeta(metricKey, "count"),
151
- unit: "1",
152
- type: InstrumentType.COUNTER,
153
- valueType: ValueType.INT
154
- },
155
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
156
- isMonotonic: true,
157
- dataPoints: [{
158
- startTime: hrTimeNow,
159
- endTime: hrTimeNow,
160
- attributes,
161
- value: metricState.count
162
- }]
163
- });
164
- metricData.push({
165
- dataPointType: DataPointType.SUM,
166
- descriptor: {
167
- ...descriptorMeta(metricKey, "sum"),
168
- unit: "1",
169
- type: InstrumentType.COUNTER,
170
- valueType: ValueType.DOUBLE
171
- },
172
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
173
- isMonotonic: true,
174
- dataPoints: [{
175
- startTime: hrTimeNow,
176
- endTime: hrTimeNow,
177
- attributes,
178
- value: metricState.sum
179
- }]
180
- });
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
+ }
181
224
  }
182
225
  }
183
226
  return Promise.resolve({
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Effect","Layer","Metric","MetricKeyType","MetricState","Option","ReadonlyArray","Resource","sdkName","MetricProducerImpl","resource","constructor","collect","_options","snapshot","unsafeSnapshot","hrTimeNow","currentHrTime","metricData","i","len","length","metricKey","metricState","attributes","reduce","tags","acc","label","key","value","descriptor","descriptorFromKey","isCounterState","push","dataPointType","SUM","isMonotonic","type","COUNTER","aggregationTemporality","CUMULATIVE","dataPoints","startTime","endTime","Number","count","isGaugeState","GAUGE","isHistogramState","size","buckets","boundaries","Array","counts","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","keyType","bigint","isHistogramKey","isGaugeKey","OBSERVABLE_GAUGE","isFrequencyKey","isCounterKey","incremental","UP_DOWN_COUNTER","now","Date","Math","floor","makeProducer","map","registerProducer","self","metricReader","acquireRelease","sync","reader","setMetricProducer","ignoreLogged","promise","shutdown","layer","evaluate","scopedDiscard","flatMap","producer"],"sources":["../../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Effect","Layer","Metric","MetricKeyType","MetricState","Option","ReadonlyArray","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","Array","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","time_unit","instrumentTypeFromKey","keyType","bigint","isHistogramKey","isGaugeKey","OBSERVABLE_GAUGE","isFrequencyKey","isCounterKey","incremental","UP_DOWN_COUNTER","now","Date","Math","floor","makeProducer","map","registerProducer","self","metricReader","acquireRelease","sync","reader","setMetricProducer","ignoreLogged","promise","shutdown","layer","evaluate","scopedDiscard","flatMap","producer"],"sources":["../../../src/internal/metrics.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.31.19",
3
+ "version": "0.31.20",
4
4
  "description": "Functional programming in TypeScript",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -17,7 +17,7 @@
17
17
  "@opentelemetry/sdk-trace-node": "^1.17",
18
18
  "@opentelemetry/sdk-trace-web": "^1.17",
19
19
  "@opentelemetry/semantic-conventions": "^1.17",
20
- "effect": "^2.4.9"
20
+ "effect": "^2.4.10"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "@opentelemetry/sdk-metrics": {
@@ -4,6 +4,7 @@ import type * as Resources from "@opentelemetry/resources"
4
4
  import type {
5
5
  CollectionResult,
6
6
  DataPoint,
7
+ Histogram,
7
8
  MetricCollectOptions,
8
9
  MetricData,
9
10
  MetricDescriptor,
@@ -26,13 +27,27 @@ const sdkName = "@effect/opentelemetry/Metrics"
26
27
 
27
28
  /** @internal */
28
29
  export class MetricProducerImpl implements MetricProducer {
29
- constructor(readonly resource: Resources.Resource) {
30
+ constructor(readonly resource: Resources.Resource) {}
31
+
32
+ startTimes = new Map<string, HrTime>()
33
+
34
+ startTimeFor(name: string, hrTime: HrTime) {
35
+ if (this.startTimes.has(name)) {
36
+ return this.startTimes.get(name)!
37
+ }
38
+ this.startTimes.set(name, hrTime)
39
+ return hrTime
30
40
  }
31
41
 
32
42
  collect(_options?: MetricCollectOptions): Promise<CollectionResult> {
33
43
  const snapshot = Metric.unsafeSnapshot()
34
44
  const hrTimeNow = currentHrTime()
35
45
  const metricData: Array<MetricData> = []
46
+ const metricDataByName = new Map<string, MetricData>()
47
+ const addMetricData = (data: MetricData) => {
48
+ metricData.push(data)
49
+ metricDataByName.set(data.descriptor.name, data)
50
+ }
36
51
 
37
52
  for (let i = 0, len = snapshot.length; i < len; i++) {
38
53
  const { metricKey, metricState } = snapshot[i]
@@ -41,32 +56,43 @@ export class MetricProducerImpl implements MetricProducer {
41
56
  return acc
42
57
  })
43
58
  const descriptor = descriptorFromKey(metricKey, attributes)
59
+ const startTime = this.startTimeFor(descriptor.name, hrTimeNow)
44
60
 
45
61
  if (MetricState.isCounterState(metricState)) {
46
- metricData.push({
47
- dataPointType: DataPointType.SUM,
48
- descriptor,
49
- isMonotonic: descriptor.type === InstrumentType.COUNTER,
50
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
51
- dataPoints: [{
52
- startTime: hrTimeNow,
53
- endTime: hrTimeNow,
54
- attributes,
55
- value: Number(metricState.count)
56
- }]
57
- })
62
+ const dataPoint: DataPoint<number> = {
63
+ startTime,
64
+ endTime: hrTimeNow,
65
+ attributes,
66
+ value: Number(metricState.count)
67
+ }
68
+ if (metricDataByName.has(descriptor.name)) {
69
+ metricDataByName.get(descriptor.name)!.dataPoints.push(dataPoint as any)
70
+ } else {
71
+ addMetricData({
72
+ dataPointType: DataPointType.SUM,
73
+ descriptor,
74
+ isMonotonic: descriptor.type === InstrumentType.COUNTER,
75
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
76
+ dataPoints: [dataPoint]
77
+ })
78
+ }
58
79
  } else if (MetricState.isGaugeState(metricState)) {
59
- metricData.push({
60
- dataPointType: DataPointType.GAUGE,
61
- descriptor,
62
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
63
- dataPoints: [{
64
- startTime: hrTimeNow,
65
- endTime: hrTimeNow,
66
- attributes,
67
- value: Number(metricState.value)
68
- }]
69
- })
80
+ const dataPoint: DataPoint<number> = {
81
+ startTime,
82
+ endTime: hrTimeNow,
83
+ attributes,
84
+ value: Number(metricState.value)
85
+ }
86
+ if (metricDataByName.has(descriptor.name)) {
87
+ metricDataByName.get(descriptor.name)!.dataPoints.push(dataPoint as any)
88
+ } else {
89
+ addMetricData({
90
+ dataPointType: DataPointType.GAUGE,
91
+ descriptor,
92
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
93
+ dataPoints: [dataPoint]
94
+ })
95
+ }
70
96
  } else if (MetricState.isHistogramState(metricState)) {
71
97
  const size = metricState.buckets.length
72
98
  const buckets = {
@@ -83,29 +109,34 @@ export class MetricProducerImpl implements MetricProducer {
83
109
  prev = value
84
110
  i++
85
111
  }
112
+ const dataPoint: DataPoint<Histogram> = {
113
+ startTime,
114
+ endTime: hrTimeNow,
115
+ attributes,
116
+ value: {
117
+ buckets,
118
+ count: metricState.count,
119
+ min: metricState.min,
120
+ max: metricState.max,
121
+ sum: metricState.sum
122
+ }
123
+ }
86
124
 
87
- metricData.push({
88
- dataPointType: DataPointType.HISTOGRAM,
89
- descriptor,
90
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
91
- dataPoints: [{
92
- startTime: hrTimeNow,
93
- endTime: hrTimeNow,
94
- attributes,
95
- value: {
96
- buckets,
97
- count: metricState.count,
98
- min: metricState.min,
99
- max: metricState.max,
100
- sum: metricState.sum
101
- }
102
- }]
103
- })
125
+ if (metricDataByName.has(descriptor.name)) {
126
+ metricDataByName.get(descriptor.name)!.dataPoints.push(dataPoint as any)
127
+ } else {
128
+ addMetricData({
129
+ dataPointType: DataPointType.HISTOGRAM,
130
+ descriptor,
131
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
132
+ dataPoints: [dataPoint]
133
+ })
134
+ }
104
135
  } else if (MetricState.isFrequencyState(metricState)) {
105
136
  const dataPoints: Array<DataPoint<number>> = []
106
137
  for (const [freqKey, value] of metricState.occurrences) {
107
138
  dataPoints.push({
108
- startTime: hrTimeNow,
139
+ startTime,
109
140
  endTime: hrTimeNow,
110
141
  attributes: {
111
142
  ...attributes,
@@ -114,76 +145,90 @@ export class MetricProducerImpl implements MetricProducer {
114
145
  value
115
146
  })
116
147
  }
117
- metricData.push({
118
- dataPointType: DataPointType.SUM,
119
- descriptor: descriptorFromKey(metricKey, attributes),
120
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
121
- isMonotonic: true,
122
- dataPoints
123
- })
148
+ if (metricDataByName.has(descriptor.name)) {
149
+ // eslint-disable-next-line no-restricted-syntax
150
+ metricDataByName.get(descriptor.name)!.dataPoints.push(...dataPoints as any)
151
+ } else {
152
+ addMetricData({
153
+ dataPointType: DataPointType.SUM,
154
+ descriptor: descriptorFromKey(metricKey, attributes),
155
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
156
+ isMonotonic: true,
157
+ dataPoints
158
+ })
159
+ }
124
160
  } else if (MetricState.isSummaryState(metricState)) {
125
161
  const dataPoints: Array<DataPoint<number>> = [{
126
- startTime: hrTimeNow,
162
+ startTime,
127
163
  endTime: hrTimeNow,
128
164
  attributes: { ...attributes, quantile: "min" },
129
165
  value: metricState.min
130
166
  }]
131
167
  for (const [quantile, value] of metricState.quantiles) {
132
168
  dataPoints.push({
133
- startTime: hrTimeNow,
169
+ startTime,
134
170
  endTime: hrTimeNow,
135
171
  attributes: { ...attributes, quantile: quantile.toString() },
136
172
  value: value._tag === "Some" ? value.value : 0
137
173
  })
138
174
  }
139
175
  dataPoints.push({
140
- startTime: hrTimeNow,
176
+ startTime,
141
177
  endTime: hrTimeNow,
142
178
  attributes: { ...attributes, quantile: "max" },
143
179
  value: metricState.max
144
180
  })
181
+ const countDataPoint: DataPoint<number> = {
182
+ startTime,
183
+ endTime: hrTimeNow,
184
+ attributes,
185
+ value: metricState.count
186
+ }
187
+ const sumDataPoint: DataPoint<number> = {
188
+ startTime,
189
+ endTime: hrTimeNow,
190
+ attributes,
191
+ value: metricState.sum
192
+ }
145
193
 
146
- metricData.push({
147
- dataPointType: DataPointType.SUM,
148
- descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
149
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
150
- isMonotonic: false,
151
- dataPoints
152
- })
153
- metricData.push({
154
- dataPointType: DataPointType.SUM,
155
- descriptor: {
156
- ...descriptorMeta(metricKey, "count"),
157
- unit: "1",
158
- type: InstrumentType.COUNTER,
159
- valueType: ValueType.INT
160
- },
161
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
162
- isMonotonic: true,
163
- dataPoints: [{
164
- startTime: hrTimeNow,
165
- endTime: hrTimeNow,
166
- attributes,
167
- value: metricState.count
168
- }]
169
- })
170
- metricData.push({
171
- dataPointType: DataPointType.SUM,
172
- descriptor: {
173
- ...descriptorMeta(metricKey, "sum"),
174
- unit: "1",
175
- type: InstrumentType.COUNTER,
176
- valueType: ValueType.DOUBLE
177
- },
178
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
179
- isMonotonic: true,
180
- dataPoints: [{
181
- startTime: hrTimeNow,
182
- endTime: hrTimeNow,
183
- attributes,
184
- value: metricState.sum
185
- }]
186
- })
194
+ if (metricDataByName.has(`${descriptor.name}_quantiles`)) {
195
+ // eslint-disable-next-line no-restricted-syntax
196
+ metricDataByName.get(`${descriptor.name}_quantiles`)!.dataPoints.push(...dataPoints as any)
197
+ metricDataByName.get(`${descriptor.name}_count`)!.dataPoints.push(countDataPoint as any)
198
+ metricDataByName.get(`${descriptor.name}_sum`)!.dataPoints.push(sumDataPoint as any)
199
+ } else {
200
+ addMetricData({
201
+ dataPointType: DataPointType.SUM,
202
+ descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
203
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
204
+ isMonotonic: false,
205
+ dataPoints
206
+ })
207
+ addMetricData({
208
+ dataPointType: DataPointType.SUM,
209
+ descriptor: {
210
+ ...descriptorMeta(metricKey, "count"),
211
+ unit: "1",
212
+ type: InstrumentType.COUNTER,
213
+ valueType: ValueType.INT
214
+ },
215
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
216
+ isMonotonic: true,
217
+ dataPoints: [countDataPoint]
218
+ })
219
+ addMetricData({
220
+ dataPointType: DataPointType.SUM,
221
+ descriptor: {
222
+ ...descriptorMeta(metricKey, "sum"),
223
+ unit: "1",
224
+ type: InstrumentType.COUNTER,
225
+ valueType: ValueType.DOUBLE
226
+ },
227
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
228
+ isMonotonic: true,
229
+ dataPoints: [sumDataPoint]
230
+ })
231
+ }
187
232
  }
188
233
  }
189
234