@effect/opentelemetry 0.60.0 → 4.0.0-beta.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.
Files changed (160) hide show
  1. package/LICENSE +1 -1
  2. package/dist/{dts/Logger.d.ts → Logger.d.ts} +19 -13
  3. package/dist/Logger.d.ts.map +1 -0
  4. package/dist/Logger.js +76 -0
  5. package/dist/Logger.js.map +1 -0
  6. package/dist/Metrics.d.ts +76 -0
  7. package/dist/Metrics.d.ts.map +1 -0
  8. package/dist/Metrics.js +59 -0
  9. package/dist/Metrics.js.map +1 -0
  10. package/dist/{dts/NodeSdk.d.ts → NodeSdk.d.ts} +12 -9
  11. package/dist/NodeSdk.d.ts.map +1 -0
  12. package/dist/{esm/NodeSdk.js → NodeSdk.js} +23 -14
  13. package/dist/NodeSdk.js.map +1 -0
  14. package/dist/{dts/Resource.d.ts → Resource.d.ts} +10 -13
  15. package/dist/Resource.d.ts.map +1 -0
  16. package/dist/{esm/Resource.js → Resource.js} +12 -13
  17. package/dist/Resource.js.map +1 -0
  18. package/dist/Tracer.d.ts +129 -0
  19. package/dist/Tracer.d.ts.map +1 -0
  20. package/dist/Tracer.js +391 -0
  21. package/dist/Tracer.js.map +1 -0
  22. package/dist/{dts/WebSdk.d.ts → WebSdk.d.ts} +12 -9
  23. package/dist/WebSdk.d.ts.map +1 -0
  24. package/dist/WebSdk.js +41 -0
  25. package/dist/WebSdk.js.map +1 -0
  26. package/dist/index.d.ts +28 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/{esm/index.js → index.js} +4 -20
  29. package/dist/index.js.map +1 -0
  30. package/dist/internal/attributes.d.ts +2 -0
  31. package/dist/internal/attributes.d.ts.map +1 -0
  32. package/dist/internal/attributes.js +19 -0
  33. package/dist/internal/attributes.js.map +1 -0
  34. package/dist/{dts/internal → internal}/metrics.d.ts.map +1 -1
  35. package/dist/internal/metrics.js +406 -0
  36. package/dist/internal/metrics.js.map +1 -0
  37. package/dist/internal/utilities.d.ts +2 -0
  38. package/dist/internal/utilities.d.ts.map +1 -0
  39. package/dist/internal/utilities.js +3 -0
  40. package/dist/internal/utilities.js.map +1 -0
  41. package/package.json +70 -118
  42. package/src/Logger.ts +52 -55
  43. package/src/Metrics.ts +92 -18
  44. package/src/NodeSdk.ts +67 -64
  45. package/src/Resource.ts +16 -24
  46. package/src/Tracer.ts +469 -78
  47. package/src/WebSdk.ts +59 -51
  48. package/src/index.ts +7 -26
  49. package/src/internal/attributes.ts +21 -0
  50. package/src/internal/metrics.ts +381 -250
  51. package/src/internal/utilities.ts +5 -0
  52. package/Logger/package.json +0 -6
  53. package/Metrics/package.json +0 -6
  54. package/NodeSdk/package.json +0 -6
  55. package/Otlp/package.json +0 -6
  56. package/OtlpLogger/package.json +0 -6
  57. package/OtlpMetrics/package.json +0 -6
  58. package/OtlpResource/package.json +0 -6
  59. package/OtlpTracer/package.json +0 -6
  60. package/Resource/package.json +0 -6
  61. package/Tracer/package.json +0 -6
  62. package/WebSdk/package.json +0 -6
  63. package/dist/cjs/Logger.js +0 -85
  64. package/dist/cjs/Logger.js.map +0 -1
  65. package/dist/cjs/Metrics.js +0 -24
  66. package/dist/cjs/Metrics.js.map +0 -1
  67. package/dist/cjs/NodeSdk.js +0 -53
  68. package/dist/cjs/NodeSdk.js.map +0 -1
  69. package/dist/cjs/Otlp.js +0 -46
  70. package/dist/cjs/Otlp.js.map +0 -1
  71. package/dist/cjs/OtlpLogger.js +0 -158
  72. package/dist/cjs/OtlpLogger.js.map +0 -1
  73. package/dist/cjs/OtlpMetrics.js +0 -354
  74. package/dist/cjs/OtlpMetrics.js.map +0 -1
  75. package/dist/cjs/OtlpResource.js +0 -136
  76. package/dist/cjs/OtlpResource.js.map +0 -1
  77. package/dist/cjs/OtlpTracer.js +0 -229
  78. package/dist/cjs/OtlpTracer.js.map +0 -1
  79. package/dist/cjs/Resource.js +0 -75
  80. package/dist/cjs/Resource.js.map +0 -1
  81. package/dist/cjs/Tracer.js +0 -87
  82. package/dist/cjs/Tracer.js.map +0 -1
  83. package/dist/cjs/WebSdk.js +0 -42
  84. package/dist/cjs/WebSdk.js.map +0 -1
  85. package/dist/cjs/index.js +0 -30
  86. package/dist/cjs/index.js.map +0 -1
  87. package/dist/cjs/internal/metrics.js +0 -288
  88. package/dist/cjs/internal/metrics.js.map +0 -1
  89. package/dist/cjs/internal/otlpExporter.js +0 -81
  90. package/dist/cjs/internal/otlpExporter.js.map +0 -1
  91. package/dist/cjs/internal/tracer.js +0 -299
  92. package/dist/cjs/internal/tracer.js.map +0 -1
  93. package/dist/cjs/internal/utils.js +0 -34
  94. package/dist/cjs/internal/utils.js.map +0 -1
  95. package/dist/dts/Logger.d.ts.map +0 -1
  96. package/dist/dts/Metrics.d.ts +0 -29
  97. package/dist/dts/Metrics.d.ts.map +0 -1
  98. package/dist/dts/NodeSdk.d.ts.map +0 -1
  99. package/dist/dts/Otlp.d.ts +0 -31
  100. package/dist/dts/Otlp.d.ts.map +0 -1
  101. package/dist/dts/OtlpLogger.d.ts +0 -46
  102. package/dist/dts/OtlpLogger.d.ts.map +0 -1
  103. package/dist/dts/OtlpMetrics.d.ts +0 -40
  104. package/dist/dts/OtlpMetrics.d.ts.map +0 -1
  105. package/dist/dts/OtlpResource.d.ts +0 -104
  106. package/dist/dts/OtlpResource.d.ts.map +0 -1
  107. package/dist/dts/OtlpTracer.d.ts +0 -49
  108. package/dist/dts/OtlpTracer.d.ts.map +0 -1
  109. package/dist/dts/Resource.d.ts.map +0 -1
  110. package/dist/dts/Tracer.d.ts +0 -143
  111. package/dist/dts/Tracer.d.ts.map +0 -1
  112. package/dist/dts/WebSdk.d.ts.map +0 -1
  113. package/dist/dts/index.d.ts +0 -45
  114. package/dist/dts/index.d.ts.map +0 -1
  115. package/dist/dts/internal/otlpExporter.d.ts +0 -2
  116. package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
  117. package/dist/dts/internal/tracer.d.ts +0 -2
  118. package/dist/dts/internal/tracer.d.ts.map +0 -1
  119. package/dist/dts/internal/utils.d.ts +0 -2
  120. package/dist/dts/internal/utils.d.ts.map +0 -1
  121. package/dist/esm/Logger.js +0 -75
  122. package/dist/esm/Logger.js.map +0 -1
  123. package/dist/esm/Metrics.js +0 -17
  124. package/dist/esm/Metrics.js.map +0 -1
  125. package/dist/esm/NodeSdk.js.map +0 -1
  126. package/dist/esm/Otlp.js +0 -38
  127. package/dist/esm/Otlp.js.map +0 -1
  128. package/dist/esm/OtlpLogger.js +0 -150
  129. package/dist/esm/OtlpLogger.js.map +0 -1
  130. package/dist/esm/OtlpMetrics.js +0 -346
  131. package/dist/esm/OtlpMetrics.js.map +0 -1
  132. package/dist/esm/OtlpResource.js +0 -124
  133. package/dist/esm/OtlpResource.js.map +0 -1
  134. package/dist/esm/OtlpTracer.js +0 -221
  135. package/dist/esm/OtlpTracer.js.map +0 -1
  136. package/dist/esm/Resource.js.map +0 -1
  137. package/dist/esm/Tracer.js +0 -80
  138. package/dist/esm/Tracer.js.map +0 -1
  139. package/dist/esm/WebSdk.js +0 -33
  140. package/dist/esm/WebSdk.js.map +0 -1
  141. package/dist/esm/index.js.map +0 -1
  142. package/dist/esm/internal/metrics.js +0 -278
  143. package/dist/esm/internal/metrics.js.map +0 -1
  144. package/dist/esm/internal/otlpExporter.js +0 -74
  145. package/dist/esm/internal/otlpExporter.js.map +0 -1
  146. package/dist/esm/internal/tracer.js +0 -290
  147. package/dist/esm/internal/tracer.js.map +0 -1
  148. package/dist/esm/internal/utils.js +0 -23
  149. package/dist/esm/internal/utils.js.map +0 -1
  150. package/dist/esm/package.json +0 -4
  151. package/index/package.json +0 -6
  152. package/src/Otlp.ts +0 -66
  153. package/src/OtlpLogger.ts +0 -258
  154. package/src/OtlpMetrics.ts +0 -571
  155. package/src/OtlpResource.ts +0 -232
  156. package/src/OtlpTracer.ts +0 -349
  157. package/src/internal/otlpExporter.ts +0 -124
  158. package/src/internal/tracer.ts +0 -437
  159. package/src/internal/utils.ts +0 -31
  160. /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","effect","OtelTracerProvider","gen","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","ignore","promise","forceFlush","then","shutdown","layer","evaluate","unwrap","isEffect","ResourceLive","TracerLive","spanProcessor","provide","tracerConfig","empty","LoggerLive","logRecordProcessor","mergeWithExisting","loggerMergeWithExisting","layerLoggerProvider","loggerProviderConfig","MetricsLive","metricReader","temporality","metricTemporality","mergeAll","pipe","provideMerge"],"sources":["../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ export * as Logger from "./Logger.ts";
8
+ /**
9
+ * @since 1.0.0
10
+ */
11
+ export * as Metrics from "./Metrics.ts";
12
+ /**
13
+ * @since 1.0.0
14
+ */
15
+ export * as NodeSdk from "./NodeSdk.ts";
16
+ /**
17
+ * @since 1.0.0
18
+ */
19
+ export * as Resource from "./Resource.ts";
20
+ /**
21
+ * @since 1.0.0
22
+ */
23
+ export * as Tracer from "./Tracer.ts";
24
+ /**
25
+ * @since 1.0.0
26
+ */
27
+ export * as WebSdk from "./WebSdk.ts";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -1,35 +1,19 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- export * as Logger from "./Logger.js";
5
- /**
6
- * @since 1.0.0
7
- */
8
- export * as Metrics from "./Metrics.js";
9
- /**
10
- * @since 1.0.0
11
- */
12
- export * as NodeSdk from "./NodeSdk.js";
4
+ // @barrel: Auto-generated exports. Do not edit manually.
13
5
  /**
14
6
  * @since 1.0.0
15
7
  */
16
- export * as Otlp from "./Otlp.js";
17
- /**
18
- * @since 1.0.0
19
- */
20
- export * as OtlpLogger from "./OtlpLogger.js";
21
- /**
22
- * @since 1.0.0
23
- */
24
- export * as OtlpMetrics from "./OtlpMetrics.js";
8
+ export * as Logger from "./Logger.js";
25
9
  /**
26
10
  * @since 1.0.0
27
11
  */
28
- export * as OtlpResource from "./OtlpResource.js";
12
+ export * as Metrics from "./Metrics.js";
29
13
  /**
30
14
  * @since 1.0.0
31
15
  */
32
- export * as OtlpTracer from "./OtlpTracer.js";
16
+ export * as NodeSdk from "./NodeSdk.js";
33
17
  /**
34
18
  * @since 1.0.0
35
19
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","Resource","Tracer","WebSdk"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/internal/attributes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import * as Inspectable from "effect/Inspectable";
2
+ /** @internal */
3
+ export const recordToAttributes = record => {
4
+ const attributes = {};
5
+ for (const [key, value] of Object.entries(record)) {
6
+ attributes[key] = unknownToAttributeValue(value);
7
+ }
8
+ return attributes;
9
+ };
10
+ /** @internal */
11
+ export const unknownToAttributeValue = value => {
12
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
13
+ return value;
14
+ } else if (typeof value === "bigint") {
15
+ return value.toString();
16
+ }
17
+ return Inspectable.toStringUnknown(value);
18
+ };
19
+ //# sourceMappingURL=attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.js","names":["Inspectable","recordToAttributes","record","attributes","key","value","Object","entries","unknownToAttributeValue","toString","toStringUnknown"],"sources":["../../src/internal/attributes.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD;AACA,OAAO,MAAMC,kBAAkB,GAAIC,MAA+B,IAAqB;EACrF,MAAMC,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,CAAC,EAAE;IACjDC,UAAU,CAACC,GAAG,CAAC,GAAGI,uBAAuB,CAACH,KAAK,CAAC;EAClD;EACA,OAAOF,UAAU;AACnB,CAAC;AAED;AACA,OAAO,MAAMK,uBAAuB,GAAIH,KAAc,IAAyB;EAC7E,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOA,KAAK,CAACI,QAAQ,EAAE;EACzB;EACA,OAAOT,WAAW,CAACU,eAAe,CAACL,KAAK,CAAC;AAC3C,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/internal/metrics.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/internal/metrics.ts"],"names":[],"mappings":""}
@@ -0,0 +1,406 @@
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 Metric from "effect/Metric";
5
+ const sdkName = "@effect/opentelemetry/Metrics";
6
+ /** @internal */
7
+ export class MetricProducerImpl {
8
+ resource;
9
+ services;
10
+ temporality;
11
+ startTimes;
12
+ startTimeNanos;
13
+ previousExportTimeNanos;
14
+ previousCounterState;
15
+ previousHistogramState;
16
+ previousFrequencyState;
17
+ previousSummaryState;
18
+ constructor(resource, services, temporality = "cumulative") {
19
+ this.resource = resource;
20
+ this.services = services;
21
+ this.temporality = temporality;
22
+ this.startTimes = new Map();
23
+ this.startTimeNanos = currentHrTime();
24
+ this.previousExportTimeNanos = this.startTimeNanos;
25
+ this.previousCounterState = new Map();
26
+ this.previousHistogramState = new Map();
27
+ this.previousFrequencyState = new Map();
28
+ this.previousSummaryState = new Map();
29
+ }
30
+ startTimeFor(name, hrTime) {
31
+ if (this.startTimes.has(name)) {
32
+ return this.startTimes.get(name);
33
+ }
34
+ this.startTimes.set(name, hrTime);
35
+ return hrTime;
36
+ }
37
+ collect(_options) {
38
+ const snapshot = Metric.snapshotUnsafe(this.services);
39
+ const hrTimeNow = currentHrTime();
40
+ const metricData = [];
41
+ const metricDataByName = new Map();
42
+ const addMetricData = data => {
43
+ metricData.push(data);
44
+ metricDataByName.set(data.descriptor.name, data);
45
+ };
46
+ const isDelta = this.temporality === "delta";
47
+ const aggregationTemporality = isDelta ? AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE;
48
+ const intervalStartTime = isDelta ? this.previousExportTimeNanos : this.startTimeNanos;
49
+ for (let i = 0, len = snapshot.length; i < len; i++) {
50
+ const state = snapshot[i];
51
+ const attributes = state.attributes ? Arr.reduce(Object.entries(state.attributes), {}, (acc, [key, value]) => {
52
+ acc[key] = String(value);
53
+ return acc;
54
+ }) : {};
55
+ const metricKey = makeMetricKey(state.id, state.attributes);
56
+ switch (state.type) {
57
+ case "Counter":
58
+ {
59
+ const currentCount = state.state.count;
60
+ let reportValue = currentCount;
61
+ if (isDelta) {
62
+ const previousCount = this.previousCounterState.get(metricKey);
63
+ if (previousCount !== undefined) {
64
+ if (typeof currentCount === "bigint" && typeof previousCount === "bigint") {
65
+ reportValue = currentCount - previousCount;
66
+ // Handle reset: if current < previous, report current value
67
+ if (reportValue < 0n) {
68
+ reportValue = currentCount;
69
+ }
70
+ } else {
71
+ const curr = Number(currentCount);
72
+ const prev = Number(previousCount);
73
+ reportValue = curr - prev;
74
+ // Handle reset
75
+ if (reportValue < 0) {
76
+ reportValue = curr;
77
+ }
78
+ }
79
+ }
80
+ this.previousCounterState.set(metricKey, currentCount);
81
+ }
82
+ const descriptor = descriptorFromState(state, attributes);
83
+ const startTime = this.startTimeFor(descriptor.name, intervalStartTime);
84
+ const dataPoint = {
85
+ startTime,
86
+ endTime: hrTimeNow,
87
+ attributes,
88
+ value: Number(reportValue)
89
+ };
90
+ if (metricDataByName.has(state.id)) {
91
+ metricDataByName.get(state.id).dataPoints.push(dataPoint);
92
+ } else {
93
+ addMetricData({
94
+ dataPointType: DataPointType.SUM,
95
+ descriptor,
96
+ isMonotonic: state.state.incremental,
97
+ aggregationTemporality,
98
+ dataPoints: [dataPoint]
99
+ });
100
+ }
101
+ break;
102
+ }
103
+ case "Gauge":
104
+ {
105
+ // Gauges don't have temporality - they always report current value
106
+ const descriptor = descriptorFromState(state, attributes);
107
+ const startTime = this.startTimeFor(descriptor.name, this.startTimeNanos);
108
+ const dataPoint = {
109
+ startTime,
110
+ endTime: hrTimeNow,
111
+ attributes,
112
+ value: Number(state.state.value)
113
+ };
114
+ if (metricDataByName.has(state.id)) {
115
+ metricDataByName.get(state.id).dataPoints.push(dataPoint);
116
+ } else {
117
+ addMetricData({
118
+ dataPointType: DataPointType.GAUGE,
119
+ descriptor,
120
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
121
+ dataPoints: [dataPoint]
122
+ });
123
+ }
124
+ break;
125
+ }
126
+ case "Histogram":
127
+ {
128
+ const size = state.state.buckets.length;
129
+ const currentBuckets = {
130
+ boundaries: Arr.allocate(size - 1),
131
+ counts: Arr.allocate(size)
132
+ };
133
+ let idx = 0;
134
+ let prev = 0;
135
+ for (const [boundary, value] of state.state.buckets) {
136
+ if (idx < size - 1) {
137
+ currentBuckets.boundaries[idx] = boundary;
138
+ }
139
+ currentBuckets.counts[idx] = value - prev;
140
+ prev = value;
141
+ idx++;
142
+ }
143
+ let reportCount = state.state.count;
144
+ let reportSum = state.state.sum;
145
+ let reportBucketCounts = currentBuckets.counts;
146
+ const reportMin = state.state.min;
147
+ const reportMax = state.state.max;
148
+ if (isDelta) {
149
+ const previousState = this.previousHistogramState.get(metricKey);
150
+ if (previousState !== undefined) {
151
+ reportCount = state.state.count - previousState.count;
152
+ reportSum = state.state.sum - previousState.sum;
153
+ reportBucketCounts = currentBuckets.counts.map((c, i) => Math.max(0, c - (previousState.bucketCounts[i] ?? 0)));
154
+ }
155
+ this.previousHistogramState.set(metricKey, {
156
+ count: state.state.count,
157
+ sum: state.state.sum,
158
+ bucketCounts: currentBuckets.counts.slice(),
159
+ min: state.state.min,
160
+ max: state.state.max
161
+ });
162
+ }
163
+ const descriptor = descriptorFromState(state, attributes);
164
+ const startTime = this.startTimeFor(descriptor.name, intervalStartTime);
165
+ const dataPoint = {
166
+ startTime,
167
+ endTime: hrTimeNow,
168
+ attributes,
169
+ value: {
170
+ buckets: {
171
+ boundaries: currentBuckets.boundaries,
172
+ counts: reportBucketCounts
173
+ },
174
+ count: reportCount,
175
+ min: reportMin,
176
+ max: reportMax,
177
+ sum: reportSum
178
+ }
179
+ };
180
+ if (metricDataByName.has(state.id)) {
181
+ metricDataByName.get(state.id).dataPoints.push(dataPoint);
182
+ } else {
183
+ addMetricData({
184
+ dataPointType: DataPointType.HISTOGRAM,
185
+ descriptor,
186
+ aggregationTemporality,
187
+ dataPoints: [dataPoint]
188
+ });
189
+ }
190
+ break;
191
+ }
192
+ case "Frequency":
193
+ {
194
+ const dataPoints = [];
195
+ const currentOccurrences = new Map();
196
+ for (const [freqKey, value] of state.state.occurrences) {
197
+ currentOccurrences.set(freqKey, value);
198
+ let reportValue = value;
199
+ if (isDelta) {
200
+ const previousOccurrences = this.previousFrequencyState.get(metricKey);
201
+ if (previousOccurrences !== undefined) {
202
+ const previousValue = previousOccurrences.get(freqKey) ?? 0;
203
+ reportValue = Math.max(0, value - previousValue);
204
+ }
205
+ }
206
+ const descriptor = descriptorFromState(state, attributes);
207
+ const startTime = this.startTimeFor(descriptor.name, intervalStartTime);
208
+ dataPoints.push({
209
+ startTime,
210
+ endTime: hrTimeNow,
211
+ attributes: {
212
+ ...attributes,
213
+ key: freqKey
214
+ },
215
+ value: reportValue
216
+ });
217
+ }
218
+ if (isDelta) {
219
+ this.previousFrequencyState.set(metricKey, currentOccurrences);
220
+ }
221
+ if (metricDataByName.has(state.id)) {
222
+ // oxlint-disable-next-line no-restricted-syntax
223
+ metricDataByName.get(state.id).dataPoints.push(...dataPoints);
224
+ } else {
225
+ const descriptor = descriptorFromState(state, attributes);
226
+ addMetricData({
227
+ dataPointType: DataPointType.SUM,
228
+ descriptor,
229
+ aggregationTemporality,
230
+ isMonotonic: true,
231
+ dataPoints
232
+ });
233
+ }
234
+ break;
235
+ }
236
+ case "Summary":
237
+ {
238
+ // Quantiles are always computed fresh from the sliding window
239
+ const dataPoints = [{
240
+ startTime: intervalStartTime,
241
+ endTime: hrTimeNow,
242
+ attributes: {
243
+ ...attributes,
244
+ quantile: "min"
245
+ },
246
+ value: state.state.min
247
+ }];
248
+ for (const [quantile, value] of state.state.quantiles) {
249
+ dataPoints.push({
250
+ startTime: intervalStartTime,
251
+ endTime: hrTimeNow,
252
+ attributes: {
253
+ ...attributes,
254
+ quantile: quantile.toString()
255
+ },
256
+ value: value ?? 0
257
+ });
258
+ }
259
+ dataPoints.push({
260
+ startTime: intervalStartTime,
261
+ endTime: hrTimeNow,
262
+ attributes: {
263
+ ...attributes,
264
+ quantile: "max"
265
+ },
266
+ value: state.state.max
267
+ });
268
+ let reportCount = state.state.count;
269
+ let reportSum = state.state.sum;
270
+ if (isDelta) {
271
+ const previousState = this.previousSummaryState.get(metricKey);
272
+ if (previousState !== undefined) {
273
+ reportCount = state.state.count - previousState.count;
274
+ reportSum = state.state.sum - previousState.sum;
275
+ }
276
+ this.previousSummaryState.set(metricKey, {
277
+ count: state.state.count,
278
+ sum: state.state.sum
279
+ });
280
+ }
281
+ const countDataPoint = {
282
+ startTime: intervalStartTime,
283
+ endTime: hrTimeNow,
284
+ attributes,
285
+ value: reportCount
286
+ };
287
+ const sumDataPoint = {
288
+ startTime: intervalStartTime,
289
+ endTime: hrTimeNow,
290
+ attributes,
291
+ value: reportSum
292
+ };
293
+ if (metricDataByName.has(`${state.id}_quantiles`)) {
294
+ // oxlint-disable-next-line no-restricted-syntax
295
+ metricDataByName.get(`${state.id}_quantiles`).dataPoints.push(...dataPoints);
296
+ metricDataByName.get(`${state.id}_count`).dataPoints.push(countDataPoint);
297
+ metricDataByName.get(`${state.id}_sum`).dataPoints.push(sumDataPoint);
298
+ } else {
299
+ const descriptor = descriptorFromState(state, attributes);
300
+ addMetricData({
301
+ dataPointType: DataPointType.SUM,
302
+ descriptor: {
303
+ ...descriptor,
304
+ name: `${descriptor.name}_quantiles`
305
+ },
306
+ aggregationTemporality,
307
+ isMonotonic: false,
308
+ dataPoints
309
+ });
310
+ addMetricData({
311
+ dataPointType: DataPointType.SUM,
312
+ descriptor: {
313
+ name: `${state.id}_count`,
314
+ description: state.description ?? "",
315
+ unit: "1",
316
+ type: InstrumentType.COUNTER,
317
+ valueType: ValueType.INT,
318
+ advice: {}
319
+ },
320
+ aggregationTemporality,
321
+ isMonotonic: true,
322
+ dataPoints: [countDataPoint]
323
+ });
324
+ addMetricData({
325
+ dataPointType: DataPointType.SUM,
326
+ descriptor: {
327
+ name: `${state.id}_sum`,
328
+ description: state.description ?? "",
329
+ unit: "1",
330
+ type: InstrumentType.COUNTER,
331
+ valueType: ValueType.DOUBLE,
332
+ advice: {}
333
+ },
334
+ aggregationTemporality,
335
+ isMonotonic: true,
336
+ dataPoints: [sumDataPoint]
337
+ });
338
+ }
339
+ break;
340
+ }
341
+ }
342
+ }
343
+ // Update the previous export time for delta calculations
344
+ if (isDelta) {
345
+ this.previousExportTimeNanos = hrTimeNow;
346
+ }
347
+ return Promise.resolve({
348
+ resourceMetrics: {
349
+ resource: this.resource,
350
+ scopeMetrics: [{
351
+ scope: {
352
+ name: sdkName
353
+ },
354
+ metrics: metricData
355
+ }]
356
+ },
357
+ errors: []
358
+ });
359
+ }
360
+ }
361
+ /** Creates a unique key for a metric including its attributes */
362
+ const makeMetricKey = (id, attributes) => {
363
+ if (attributes === undefined || Object.keys(attributes).length === 0) {
364
+ return id;
365
+ }
366
+ const sortedEntries = Object.entries(attributes).sort((a, b) => a[0].localeCompare(b[0]));
367
+ return `${id}:${JSON.stringify(sortedEntries)}`;
368
+ };
369
+ const currentHrTime = () => {
370
+ const now = Date.now();
371
+ return [Math.floor(now / 1000), now % 1000 * 1000000];
372
+ };
373
+ const descriptorFromState = (state, attributes) => {
374
+ const unit = attributes.unit ?? attributes.time_unit ?? "1";
375
+ return {
376
+ name: state.id,
377
+ description: state.description ?? "",
378
+ unit,
379
+ type: instrumentTypeFromSnapshot(state),
380
+ valueType: determineValueType(state),
381
+ advice: {}
382
+ };
383
+ };
384
+ const instrumentTypeFromSnapshot = state => {
385
+ switch (state.type) {
386
+ case "Histogram":
387
+ return InstrumentType.HISTOGRAM;
388
+ case "Gauge":
389
+ return InstrumentType.OBSERVABLE_GAUGE;
390
+ case "Frequency":
391
+ return InstrumentType.COUNTER;
392
+ case "Counter":
393
+ return state.state.incremental ? InstrumentType.COUNTER : InstrumentType.UP_DOWN_COUNTER;
394
+ case "Summary":
395
+ return InstrumentType.COUNTER;
396
+ }
397
+ };
398
+ const determineValueType = state => {
399
+ if (state.type === "Counter") {
400
+ return typeof state.state.count === "bigint" ? ValueType.INT : ValueType.DOUBLE;
401
+ } else if (state.type === "Gauge") {
402
+ return typeof state.state.value === "bigint" ? ValueType.INT : ValueType.DOUBLE;
403
+ }
404
+ return ValueType.DOUBLE;
405
+ };
406
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Arr","Metric","sdkName","MetricProducerImpl","resource","services","temporality","startTimes","startTimeNanos","previousExportTimeNanos","previousCounterState","previousHistogramState","previousFrequencyState","previousSummaryState","constructor","Map","currentHrTime","startTimeFor","name","hrTime","has","get","set","collect","_options","snapshot","snapshotUnsafe","hrTimeNow","metricData","metricDataByName","addMetricData","data","push","descriptor","isDelta","aggregationTemporality","DELTA","CUMULATIVE","intervalStartTime","i","len","length","state","attributes","reduce","Object","entries","acc","key","value","String","metricKey","makeMetricKey","id","type","currentCount","count","reportValue","previousCount","undefined","curr","Number","prev","descriptorFromState","startTime","dataPoint","endTime","dataPoints","dataPointType","SUM","isMonotonic","incremental","GAUGE","size","buckets","currentBuckets","boundaries","allocate","counts","idx","boundary","reportCount","reportSum","sum","reportBucketCounts","reportMin","min","reportMax","max","previousState","map","c","Math","bucketCounts","slice","HISTOGRAM","currentOccurrences","freqKey","occurrences","previousOccurrences","previousValue","quantile","quantiles","toString","countDataPoint","sumDataPoint","description","unit","COUNTER","valueType","INT","advice","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","metrics","errors","keys","sortedEntries","sort","a","b","localeCompare","JSON","stringify","now","Date","floor","time_unit","instrumentTypeFromSnapshot","determineValueType","OBSERVABLE_GAUGE","UP_DOWN_COUNTER"],"sources":["../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/internal/utilities.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ /** @internal */
2
+ export const isNonEmpty = a => a !== undefined && !(Array.isArray(a) && a.length === 0);
3
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","names":["isNonEmpty","a","undefined","Array","isArray","length"],"sources":["../../src/internal/utilities.ts"],"sourcesContent":[null],"mappings":"AAEA;AACA,OAAO,MAAMA,UAAU,GAAOC,CAAmC,IAC/DA,CAAC,KAAKC,SAAS,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAIA,CAAC,CAACI,MAAM,KAAK,CAAC,CAAC","ignoreList":[]}