@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
@@ -1,150 +0,0 @@
1
- import * as Arr from "effect/Array";
2
- import * as Cause from "effect/Cause";
3
- import * as Context from "effect/Context";
4
- import * as Duration from "effect/Duration";
5
- import * as Effect from "effect/Effect";
6
- import * as FiberId from "effect/FiberId";
7
- import * as FiberRef from "effect/FiberRef";
8
- import * as FiberRefs from "effect/FiberRefs";
9
- import * as Logger from "effect/Logger";
10
- import * as Option from "effect/Option";
11
- import * as Tracer from "effect/Tracer";
12
- import * as Exporter from "./internal/otlpExporter.js";
13
- import * as OtlpResource from "./OtlpResource.js";
14
- /**
15
- * @since 1.0.0
16
- * @category Constructors
17
- */
18
- export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
19
- const otelResource = yield* OtlpResource.fromConfig(options.resource);
20
- const scope = {
21
- name: OtlpResource.unsafeServiceName(otelResource)
22
- };
23
- const exporter = yield* Exporter.make({
24
- label: "OtlpLogger",
25
- url: options.url,
26
- headers: options.headers,
27
- maxBatchSize: options.maxBatchSize ?? 1000,
28
- exportInterval: options.exportInterval ?? Duration.seconds(1),
29
- body: data => ({
30
- resourceLogs: [{
31
- resource: otelResource,
32
- scopeLogs: [{
33
- scope,
34
- logRecords: data
35
- }]
36
- }]
37
- }),
38
- shutdownTimeout: options.shutdownTimeout ?? Duration.seconds(3)
39
- });
40
- const opts = {
41
- excludeLogSpans: options.excludeLogSpans ?? false
42
- };
43
- return Logger.make(options => {
44
- exporter.push(makeLogRecord(options, opts));
45
- });
46
- });
47
- /**
48
- * @since 1.0.0
49
- * @category Layers
50
- */
51
- export const layer = options => options.replaceLogger ? Logger.replaceScoped(options.replaceLogger, make(options)) : Logger.addScoped(make(options));
52
- // internal
53
- const makeLogRecord = (options, opts) => {
54
- const now = options.date.getTime();
55
- const nanosString = `${now}000000`;
56
- const attributes = OtlpResource.entriesToAttributes(options.annotations);
57
- attributes.push({
58
- key: "fiberId",
59
- value: {
60
- stringValue: FiberId.threadName(options.fiberId)
61
- }
62
- });
63
- if (!opts.excludeLogSpans) {
64
- for (const span of options.spans) {
65
- attributes.push({
66
- key: `logSpan.${span.label}`,
67
- value: {
68
- stringValue: `${now - span.startTime}ms`
69
- }
70
- });
71
- }
72
- }
73
- if (!Cause.isEmpty(options.cause)) {
74
- attributes.push({
75
- key: "log.error",
76
- value: {
77
- stringValue: Cause.pretty(options.cause, {
78
- renderErrorCause: true
79
- })
80
- }
81
- });
82
- }
83
- const message = Arr.ensure(options.message);
84
- const maybeSpan = Context.getOption(FiberRefs.getOrDefault(options.context, FiberRef.currentContext), Tracer.ParentSpan);
85
- const logRecord = {
86
- severityNumber: logLevelToSeverityNumber(options.logLevel),
87
- severityText: options.logLevel.label,
88
- timeUnixNano: nanosString,
89
- observedTimeUnixNano: nanosString,
90
- attributes,
91
- body: OtlpResource.unknownToAttributeValue(message.length === 1 ? message[0] : message),
92
- droppedAttributesCount: 0
93
- };
94
- if (Option.isSome(maybeSpan)) {
95
- logRecord.traceId = maybeSpan.value.traceId;
96
- logRecord.spanId = maybeSpan.value.spanId;
97
- }
98
- return logRecord;
99
- };
100
- const logLevelToSeverityNumber = logLevel => {
101
- switch (logLevel._tag) {
102
- case "Trace":
103
- return ESeverityNumber.SEVERITY_NUMBER_TRACE;
104
- case "Debug":
105
- return ESeverityNumber.SEVERITY_NUMBER_DEBUG;
106
- case "Info":
107
- return ESeverityNumber.SEVERITY_NUMBER_INFO;
108
- case "Warning":
109
- return ESeverityNumber.SEVERITY_NUMBER_WARN;
110
- case "Error":
111
- return ESeverityNumber.SEVERITY_NUMBER_ERROR;
112
- case "Fatal":
113
- return ESeverityNumber.SEVERITY_NUMBER_FATAL;
114
- default:
115
- return ESeverityNumber.SEVERITY_NUMBER_UNSPECIFIED;
116
- }
117
- };
118
- /**
119
- * Numerical value of the severity, normalized to values described in Log Data Model.
120
- */
121
- var ESeverityNumber;
122
- (function (ESeverityNumber) {
123
- /** Unspecified. Do NOT use as default */
124
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_UNSPECIFIED"] = 0] = "SEVERITY_NUMBER_UNSPECIFIED";
125
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_TRACE"] = 1] = "SEVERITY_NUMBER_TRACE";
126
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_TRACE2"] = 2] = "SEVERITY_NUMBER_TRACE2";
127
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_TRACE3"] = 3] = "SEVERITY_NUMBER_TRACE3";
128
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_TRACE4"] = 4] = "SEVERITY_NUMBER_TRACE4";
129
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_DEBUG"] = 5] = "SEVERITY_NUMBER_DEBUG";
130
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_DEBUG2"] = 6] = "SEVERITY_NUMBER_DEBUG2";
131
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_DEBUG3"] = 7] = "SEVERITY_NUMBER_DEBUG3";
132
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_DEBUG4"] = 8] = "SEVERITY_NUMBER_DEBUG4";
133
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_INFO"] = 9] = "SEVERITY_NUMBER_INFO";
134
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_INFO2"] = 10] = "SEVERITY_NUMBER_INFO2";
135
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_INFO3"] = 11] = "SEVERITY_NUMBER_INFO3";
136
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_INFO4"] = 12] = "SEVERITY_NUMBER_INFO4";
137
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_WARN"] = 13] = "SEVERITY_NUMBER_WARN";
138
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_WARN2"] = 14] = "SEVERITY_NUMBER_WARN2";
139
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_WARN3"] = 15] = "SEVERITY_NUMBER_WARN3";
140
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_WARN4"] = 16] = "SEVERITY_NUMBER_WARN4";
141
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_ERROR"] = 17] = "SEVERITY_NUMBER_ERROR";
142
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_ERROR2"] = 18] = "SEVERITY_NUMBER_ERROR2";
143
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_ERROR3"] = 19] = "SEVERITY_NUMBER_ERROR3";
144
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_ERROR4"] = 20] = "SEVERITY_NUMBER_ERROR4";
145
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_FATAL"] = 21] = "SEVERITY_NUMBER_FATAL";
146
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_FATAL2"] = 22] = "SEVERITY_NUMBER_FATAL2";
147
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_FATAL3"] = 23] = "SEVERITY_NUMBER_FATAL3";
148
- ESeverityNumber[ESeverityNumber["SEVERITY_NUMBER_FATAL4"] = 24] = "SEVERITY_NUMBER_FATAL4";
149
- })(ESeverityNumber || (ESeverityNumber = {}));
150
- //# sourceMappingURL=OtlpLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OtlpLogger.js","names":["Arr","Cause","Context","Duration","Effect","FiberId","FiberRef","FiberRefs","Logger","Option","Tracer","Exporter","OtlpResource","make","fnUntraced","options","otelResource","fromConfig","resource","scope","name","unsafeServiceName","exporter","label","url","headers","maxBatchSize","exportInterval","seconds","body","data","resourceLogs","scopeLogs","logRecords","shutdownTimeout","opts","excludeLogSpans","push","makeLogRecord","layer","replaceLogger","replaceScoped","addScoped","now","date","getTime","nanosString","attributes","entriesToAttributes","annotations","key","value","stringValue","threadName","fiberId","span","spans","startTime","isEmpty","cause","pretty","renderErrorCause","message","ensure","maybeSpan","getOption","getOrDefault","context","currentContext","ParentSpan","logRecord","severityNumber","logLevelToSeverityNumber","logLevel","severityText","timeUnixNano","observedTimeUnixNano","unknownToAttributeValue","length","droppedAttributesCount","isSome","traceId","spanId","_tag","ESeverityNumber","SEVERITY_NUMBER_TRACE","SEVERITY_NUMBER_DEBUG","SEVERITY_NUMBER_INFO","SEVERITY_NUMBER_WARN","SEVERITY_NUMBER_ERROR","SEVERITY_NUMBER_FATAL","SEVERITY_NUMBER_UNSPECIFIED"],"sources":["../../src/OtlpLogger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,346 +0,0 @@
1
- import * as Arr from "effect/Array";
2
- import * as Duration from "effect/Duration";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as Metric from "effect/Metric";
6
- import * as MetricState from "effect/MetricState";
7
- import * as Option from "effect/Option";
8
- import * as Exporter from "./internal/otlpExporter.js";
9
- import * as OtlpResource from "./OtlpResource.js";
10
- /**
11
- * @since 1.0.0
12
- * @category Constructors
13
- */
14
- export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
15
- const clock = yield* Effect.clock;
16
- const startTime = String(clock.unsafeCurrentTimeNanos());
17
- const resource = yield* OtlpResource.fromConfig(options.resource);
18
- const metricsScope = {
19
- name: OtlpResource.unsafeServiceName(resource)
20
- };
21
- const snapshot = () => {
22
- const snapshot = Metric.unsafeSnapshot();
23
- const nowNanos = clock.unsafeCurrentTimeNanos();
24
- const nowTime = String(nowNanos);
25
- const metricData = [];
26
- const metricDataByName = new Map();
27
- const addMetricData = data => {
28
- metricData.push(data);
29
- metricDataByName.set(data.name, data);
30
- };
31
- for (let i = 0, len = snapshot.length; i < len; i++) {
32
- const {
33
- metricKey,
34
- metricState
35
- } = snapshot[i];
36
- let unit = "1";
37
- const attributes = Arr.reduce(metricKey.tags, [], (acc, label) => {
38
- if (label.key === "unit" || label.key === "time_unit") {
39
- unit = label.value;
40
- }
41
- acc.push({
42
- key: label.key,
43
- value: {
44
- stringValue: label.value
45
- }
46
- });
47
- return acc;
48
- });
49
- if (MetricState.isCounterState(metricState)) {
50
- const dataPoint = {
51
- attributes,
52
- startTimeUnixNano: startTime,
53
- timeUnixNano: nowTime
54
- };
55
- if (typeof metricState.count === "bigint") {
56
- dataPoint.asInt = Number(metricState.count);
57
- } else {
58
- dataPoint.asDouble = metricState.count;
59
- }
60
- if (metricDataByName.has(metricKey.name)) {
61
- metricDataByName.get(metricKey.name).sum.dataPoints.push(dataPoint);
62
- } else {
63
- const key = metricKey;
64
- addMetricData({
65
- name: metricKey.name,
66
- description: getOrEmpty(key.description),
67
- unit,
68
- sum: {
69
- aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE,
70
- isMonotonic: key.keyType.incremental,
71
- dataPoints: [dataPoint]
72
- }
73
- });
74
- }
75
- } else if (MetricState.isGaugeState(metricState)) {
76
- const dataPoint = {
77
- attributes,
78
- startTimeUnixNano: startTime,
79
- timeUnixNano: nowTime
80
- };
81
- if (typeof metricState.value === "bigint") {
82
- dataPoint.asInt = Number(metricState.value);
83
- } else {
84
- dataPoint.asDouble = metricState.value;
85
- }
86
- if (metricDataByName.has(metricKey.name)) {
87
- metricDataByName.get(metricKey.name).gauge.dataPoints.push(dataPoint);
88
- } else {
89
- addMetricData({
90
- name: metricKey.name,
91
- description: getOrEmpty(metricKey.description),
92
- unit,
93
- gauge: {
94
- dataPoints: [dataPoint]
95
- }
96
- });
97
- }
98
- } else if (MetricState.isHistogramState(metricState)) {
99
- const size = metricState.buckets.length;
100
- const buckets = {
101
- boundaries: Arr.allocate(size - 1),
102
- counts: Arr.allocate(size)
103
- };
104
- let i = 0;
105
- let prev = 0;
106
- for (const [boundary, value] of metricState.buckets) {
107
- if (i < size - 1) {
108
- buckets.boundaries[i] = boundary;
109
- }
110
- buckets.counts[i] = value - prev;
111
- prev = value;
112
- i++;
113
- }
114
- const dataPoint = {
115
- attributes,
116
- startTimeUnixNano: startTime,
117
- timeUnixNano: nowTime,
118
- count: metricState.count,
119
- min: metricState.min,
120
- max: metricState.max,
121
- sum: metricState.sum,
122
- bucketCounts: buckets.counts,
123
- explicitBounds: buckets.boundaries
124
- };
125
- if (metricDataByName.has(metricKey.name)) {
126
- metricDataByName.get(metricKey.name).histogram.dataPoints.push(dataPoint);
127
- } else {
128
- addMetricData({
129
- name: metricKey.name,
130
- description: getOrEmpty(metricKey.description),
131
- unit,
132
- histogram: {
133
- aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE,
134
- dataPoints: [dataPoint]
135
- }
136
- });
137
- }
138
- } else if (MetricState.isFrequencyState(metricState)) {
139
- const dataPoints = [];
140
- for (const [freqKey, value] of metricState.occurrences) {
141
- dataPoints.push({
142
- attributes: [...attributes, {
143
- key: "key",
144
- value: {
145
- stringValue: freqKey
146
- }
147
- }],
148
- startTimeUnixNano: startTime,
149
- timeUnixNano: nowTime,
150
- asInt: value
151
- });
152
- }
153
- if (metricDataByName.has(metricKey.name)) {
154
- // eslint-disable-next-line no-restricted-syntax
155
- metricDataByName.get(metricKey.name).sum.dataPoints.push(...dataPoints);
156
- } else {
157
- addMetricData({
158
- name: metricKey.name,
159
- description: getOrEmpty(metricKey.description),
160
- unit,
161
- sum: {
162
- aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE,
163
- isMonotonic: true,
164
- dataPoints
165
- }
166
- });
167
- }
168
- } else if (MetricState.isSummaryState(metricState)) {
169
- const dataPoints = [{
170
- attributes: [...attributes, {
171
- key: "quantile",
172
- value: {
173
- stringValue: "min"
174
- }
175
- }],
176
- startTimeUnixNano: startTime,
177
- timeUnixNano: nowTime,
178
- asDouble: metricState.min
179
- }];
180
- for (const [quantile, value] of metricState.quantiles) {
181
- dataPoints.push({
182
- attributes: [...attributes, {
183
- key: "quantile",
184
- value: {
185
- stringValue: quantile.toString()
186
- }
187
- }],
188
- startTimeUnixNano: startTime,
189
- timeUnixNano: nowTime,
190
- asDouble: value._tag === "Some" ? value.value : 0
191
- });
192
- }
193
- dataPoints.push({
194
- attributes: [...attributes, {
195
- key: "quantile",
196
- value: {
197
- stringValue: "max"
198
- }
199
- }],
200
- startTimeUnixNano: startTime,
201
- timeUnixNano: nowTime,
202
- asDouble: metricState.max
203
- });
204
- const countDataPoint = {
205
- attributes,
206
- startTimeUnixNano: startTime,
207
- timeUnixNano: nowTime,
208
- asInt: metricState.count
209
- };
210
- const sumDataPoint = {
211
- attributes,
212
- startTimeUnixNano: startTime,
213
- timeUnixNano: nowTime,
214
- asDouble: metricState.sum
215
- };
216
- if (metricDataByName.has(`${metricKey.name}_quantiles`)) {
217
- // eslint-disable-next-line no-restricted-syntax
218
- metricDataByName.get(`${metricKey.name}_quantiles`).sum.dataPoints.push(...dataPoints);
219
- metricDataByName.get(`${metricKey.name}_count`).sum.dataPoints.push(countDataPoint);
220
- metricDataByName.get(`${metricKey.name}_sum`).sum.dataPoints.push(sumDataPoint);
221
- } else {
222
- addMetricData({
223
- name: `${metricKey.name}_quantiles`,
224
- description: getOrEmpty(metricKey.description),
225
- unit,
226
- sum: {
227
- aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE,
228
- isMonotonic: false,
229
- dataPoints
230
- }
231
- });
232
- addMetricData({
233
- name: `${metricKey.name}_count`,
234
- description: getOrEmpty(metricKey.description),
235
- unit: "1",
236
- sum: {
237
- aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE,
238
- isMonotonic: true,
239
- dataPoints: [countDataPoint]
240
- }
241
- });
242
- addMetricData({
243
- name: `${metricKey.name}_sum`,
244
- description: getOrEmpty(metricKey.description),
245
- unit: "1",
246
- sum: {
247
- aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE,
248
- isMonotonic: true,
249
- dataPoints: [sumDataPoint]
250
- }
251
- });
252
- }
253
- }
254
- }
255
- return {
256
- resourceMetrics: [{
257
- resource,
258
- scopeMetrics: [{
259
- scope: metricsScope,
260
- metrics: metricData
261
- }]
262
- }]
263
- };
264
- };
265
- yield* Exporter.make({
266
- label: "OtlpMetrics",
267
- url: options.url,
268
- headers: options.headers,
269
- maxBatchSize: "disabled",
270
- exportInterval: options.exportInterval ?? Duration.seconds(10),
271
- body: snapshot,
272
- shutdownTimeout: options.shutdownTimeout ?? Duration.seconds(3)
273
- });
274
- });
275
- /**
276
- * @since 1.0.0
277
- * @category Layers
278
- */
279
- export const layer = options => Layer.scopedDiscard(make(options));
280
- // internal
281
- const getOrEmpty = /*#__PURE__*/Option.getOrElse(() => "");
282
- /**
283
- * AggregationTemporality defines how a metric aggregator reports aggregated
284
- * values. It describes how those values relate to the time interval over
285
- * which they are aggregated.
286
- */
287
- var EAggregationTemporality;
288
- (function (EAggregationTemporality) {
289
- EAggregationTemporality[EAggregationTemporality["AGGREGATION_TEMPORALITY_UNSPECIFIED"] = 0] = "AGGREGATION_TEMPORALITY_UNSPECIFIED";
290
- /** DELTA is an AggregationTemporality for a metric aggregator which reports
291
- changes since last report time. Successive metrics contain aggregation of
292
- values from continuous and non-overlapping intervals.
293
- The values for a DELTA metric are based only on the time interval
294
- associated with one measurement cycle. There is no dependency on
295
- previous measurements like is the case for CUMULATIVE metrics.
296
- For example, consider a system measuring the number of requests that
297
- it receives and reports the sum of these requests every second as a
298
- DELTA metric:
299
- 1. The system starts receiving at time=t_0.
300
- 2. A request is received, the system measures 1 request.
301
- 3. A request is received, the system measures 1 request.
302
- 4. A request is received, the system measures 1 request.
303
- 5. The 1 second collection cycle ends. A metric is exported for the
304
- number of requests received over the interval of time t_0 to
305
- t_0+1 with a value of 3.
306
- 6. A request is received, the system measures 1 request.
307
- 7. A request is received, the system measures 1 request.
308
- 8. The 1 second collection cycle ends. A metric is exported for the
309
- number of requests received over the interval of time t_0+1 to
310
- t_0+2 with a value of 2. */
311
- EAggregationTemporality[EAggregationTemporality["AGGREGATION_TEMPORALITY_DELTA"] = 1] = "AGGREGATION_TEMPORALITY_DELTA";
312
- /** CUMULATIVE is an AggregationTemporality for a metric aggregator which
313
- reports changes since a fixed start time. This means that current values
314
- of a CUMULATIVE metric depend on all previous measurements since the
315
- start time. Because of this, the sender is required to retain this state
316
- in some form. If this state is lost or invalidated, the CUMULATIVE metric
317
- values MUST be reset and a new fixed start time following the last
318
- reported measurement time sent MUST be used.
319
- For example, consider a system measuring the number of requests that
320
- it receives and reports the sum of these requests every second as a
321
- CUMULATIVE metric:
322
- 1. The system starts receiving at time=t_0.
323
- 2. A request is received, the system measures 1 request.
324
- 3. A request is received, the system measures 1 request.
325
- 4. A request is received, the system measures 1 request.
326
- 5. The 1 second collection cycle ends. A metric is exported for the
327
- number of requests received over the interval of time t_0 to
328
- t_0+1 with a value of 3.
329
- 6. A request is received, the system measures 1 request.
330
- 7. A request is received, the system measures 1 request.
331
- 8. The 1 second collection cycle ends. A metric is exported for the
332
- number of requests received over the interval of time t_0 to
333
- t_0+2 with a value of 5.
334
- 9. The system experiences a fault and loses state.
335
- 10. The system recovers and resumes receiving at time=t_1.
336
- 11. A request is received, the system measures 1 request.
337
- 12. The 1 second collection cycle ends. A metric is exported for the
338
- number of requests received over the interval of time t_1 to
339
- t_0+1 with a value of 1.
340
- Note: Even though, when reporting changes since last report time, using
341
- CUMULATIVE is valid, it is not recommended. This may cause problems for
342
- systems that do not use start_time to determine when the aggregation
343
- value was reset (e.g. Prometheus). */
344
- EAggregationTemporality[EAggregationTemporality["AGGREGATION_TEMPORALITY_CUMULATIVE"] = 2] = "AGGREGATION_TEMPORALITY_CUMULATIVE";
345
- })(EAggregationTemporality || (EAggregationTemporality = {}));
346
- //# sourceMappingURL=OtlpMetrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OtlpMetrics.js","names":["Arr","Duration","Effect","Layer","Metric","MetricState","Option","Exporter","OtlpResource","make","fnUntraced","options","clock","startTime","String","unsafeCurrentTimeNanos","resource","fromConfig","metricsScope","name","unsafeServiceName","snapshot","unsafeSnapshot","nowNanos","nowTime","metricData","metricDataByName","Map","addMetricData","data","push","set","i","len","length","metricKey","metricState","unit","attributes","reduce","tags","acc","label","key","value","stringValue","isCounterState","dataPoint","startTimeUnixNano","timeUnixNano","count","asInt","Number","asDouble","has","get","sum","dataPoints","description","getOrEmpty","aggregationTemporality","EAggregationTemporality","AGGREGATION_TEMPORALITY_CUMULATIVE","isMonotonic","keyType","incremental","isGaugeState","gauge","isHistogramState","size","buckets","boundaries","allocate","counts","prev","boundary","min","max","bucketCounts","explicitBounds","histogram","isFrequencyState","freqKey","occurrences","isSummaryState","quantile","quantiles","toString","_tag","countDataPoint","sumDataPoint","resourceMetrics","scopeMetrics","scope","metrics","url","headers","maxBatchSize","exportInterval","seconds","body","shutdownTimeout","layer","scopedDiscard","getOrElse"],"sources":["../../src/OtlpMetrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,124 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Arr from "effect/Array";
5
- import * as Config from "effect/Config";
6
- import * as Effect from "effect/Effect";
7
- import * as Inspectable from "effect/Inspectable";
8
- const ATTR_SERVICE_NAME = "service.name";
9
- const ATTR_SERVICE_VERSION = "service.version";
10
- /**
11
- * @since 1.0.0
12
- * @category Constructors
13
- */
14
- export const make = options => {
15
- const resourceAttributes = options.attributes ? entriesToAttributes(Object.entries(options.attributes)) : [];
16
- resourceAttributes.push({
17
- key: ATTR_SERVICE_NAME,
18
- value: {
19
- stringValue: options.serviceName
20
- }
21
- });
22
- if (options.serviceVersion) {
23
- resourceAttributes.push({
24
- key: ATTR_SERVICE_VERSION,
25
- value: {
26
- stringValue: options.serviceVersion
27
- }
28
- });
29
- }
30
- return {
31
- attributes: resourceAttributes,
32
- droppedAttributesCount: 0
33
- };
34
- };
35
- /**
36
- * @since 1.0.0
37
- * @category Constructors
38
- */
39
- export const fromConfig = /*#__PURE__*/Effect.fnUntraced(function* (options) {
40
- const attributes = yield* Config.string("OTEL_RESOURCE_ATTRIBUTES").pipe(Config.map(s => {
41
- const attrs = s.split(",");
42
- return Arr.reduce(attrs, {}, (acc, attr) => {
43
- const parts = attr.split("=");
44
- if (parts.length !== 2) {
45
- return acc;
46
- }
47
- acc[parts[0].trim()] = parts[1].trim();
48
- return acc;
49
- });
50
- }), Config.withDefault({}), Effect.map(envAttrs => ({
51
- ...envAttrs,
52
- ...options?.attributes
53
- })));
54
- const serviceName = options?.serviceName ?? attributes[ATTR_SERVICE_NAME] ?? (yield* Config.string("OTEL_SERVICE_NAME"));
55
- const serviceVersion = options?.serviceVersion ?? attributes[ATTR_SERVICE_VERSION] ?? (yield* Config.string("OTEL_SERVICE_VERSION").pipe(Config.withDefault(undefined)));
56
- return make({
57
- serviceName,
58
- serviceVersion,
59
- attributes
60
- });
61
- }, Effect.orDie);
62
- /**
63
- * @since 1.0.0
64
- * @category Attributes
65
- */
66
- export const unsafeServiceName = resource => {
67
- const serviceNameAttribute = resource.attributes.find(attr => attr.key === ATTR_SERVICE_NAME);
68
- if (!serviceNameAttribute || !serviceNameAttribute.value.stringValue) {
69
- throw new Error("Resource does not contain a service name");
70
- }
71
- return serviceNameAttribute.value.stringValue;
72
- };
73
- /**
74
- * @since 1.0.0
75
- * @category Attributes
76
- */
77
- export const entriesToAttributes = entries => {
78
- const attributes = [];
79
- for (const [key, value] of entries) {
80
- attributes.push({
81
- key,
82
- value: unknownToAttributeValue(value)
83
- });
84
- }
85
- return attributes;
86
- };
87
- /**
88
- * @since 1.0.0
89
- * @category Attributes
90
- */
91
- export const unknownToAttributeValue = value => {
92
- if (Array.isArray(value)) {
93
- return {
94
- arrayValue: {
95
- values: value.map(unknownToAttributeValue)
96
- }
97
- };
98
- }
99
- switch (typeof value) {
100
- case "string":
101
- return {
102
- stringValue: value
103
- };
104
- case "bigint":
105
- return {
106
- intValue: Number(value)
107
- };
108
- case "number":
109
- return Number.isInteger(value) ? {
110
- intValue: value
111
- } : {
112
- doubleValue: value
113
- };
114
- case "boolean":
115
- return {
116
- boolValue: value
117
- };
118
- default:
119
- return {
120
- stringValue: Inspectable.toStringUnknown(value)
121
- };
122
- }
123
- };
124
- //# sourceMappingURL=OtlpResource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OtlpResource.js","names":["Arr","Config","Effect","Inspectable","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","make","options","resourceAttributes","attributes","entriesToAttributes","Object","entries","push","key","value","stringValue","serviceName","serviceVersion","droppedAttributesCount","fromConfig","fnUntraced","string","pipe","map","s","attrs","split","reduce","acc","attr","parts","length","trim","withDefault","envAttrs","undefined","orDie","unsafeServiceName","resource","serviceNameAttribute","find","Error","unknownToAttributeValue","Array","isArray","arrayValue","values","intValue","Number","isInteger","doubleValue","boolValue","toStringUnknown"],"sources":["../../src/OtlpResource.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAEjD,MAAMC,iBAAiB,GAAG,cAAc;AACxC,MAAMC,oBAAoB,GAAG,iBAAiB;AAa9C;;;;AAIA,OAAO,MAAMC,IAAI,GAAIC,OAIpB,IAAc;EACb,MAAMC,kBAAkB,GAAGD,OAAO,CAACE,UAAU,GACzCC,mBAAmB,CAACC,MAAM,CAACC,OAAO,CAACL,OAAO,CAACE,UAAU,CAAC,CAAC,GACvD,EAAE;EACND,kBAAkB,CAACK,IAAI,CAAC;IACtBC,GAAG,EAAEV,iBAAiB;IACtBW,KAAK,EAAE;MACLC,WAAW,EAAET,OAAO,CAACU;;GAExB,CAAC;EACF,IAAIV,OAAO,CAACW,cAAc,EAAE;IAC1BV,kBAAkB,CAACK,IAAI,CAAC;MACtBC,GAAG,EAAET,oBAAoB;MACzBU,KAAK,EAAE;QACLC,WAAW,EAAET,OAAO,CAACW;;KAExB,CAAC;EACJ;EAEA,OAAO;IACLT,UAAU,EAAED,kBAAkB;IAC9BW,sBAAsB,EAAE;GACzB;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAMC,UAAU,gBAMQlB,MAAM,CAACmB,UAAU,CAAC,WAAUd,OAI1D;EACC,MAAME,UAAU,GAAG,OAAOR,MAAM,CAACqB,MAAM,CAAC,0BAA0B,CAAC,CAACC,IAAI,CACtEtB,MAAM,CAACuB,GAAG,CAAEC,CAAC,IAAI;IACf,MAAMC,KAAK,GAAGD,CAAC,CAACE,KAAK,CAAC,GAAG,CAAC;IAC1B,OAAO3B,GAAG,CAAC4B,MAAM,CAACF,KAAK,EAAE,EAA4B,EAAE,CAACG,GAAG,EAAEC,IAAI,KAAI;MACnE,MAAMC,KAAK,GAAGD,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC;MAC7B,IAAII,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAOH,GAAG;MACZ;MACAA,GAAG,CAACE,KAAK,CAAC,CAAC,CAAC,CAACE,IAAI,EAAE,CAAC,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACE,IAAI,EAAE;MACtC,OAAOJ,GAAG;IACZ,CAAC,CAAC;EACJ,CAAC,CAAC,EACF5B,MAAM,CAACiC,WAAW,CAAC,EAAE,CAAC,EACtBhC,MAAM,CAACsB,GAAG,CAAEW,QAAQ,KAAM;IACxB,GAAGA,QAAQ;IACX,GAAG5B,OAAO,EAAEE;GACb,CAAC,CAAC,CACJ;EACD,MAAMQ,WAAW,GAAGV,OAAO,EAAEU,WAAW,IAAIR,UAAU,CAACL,iBAAiB,CAAW,KAChF,OAAOH,MAAM,CAACqB,MAAM,CAAC,mBAAmB,CAAC,CAAC;EAC7C,MAAMJ,cAAc,GAAGX,OAAO,EAAEW,cAAc,IAAIT,UAAU,CAACJ,oBAAoB,CAAW,KACzF,OAAOJ,MAAM,CAACqB,MAAM,CAAC,sBAAsB,CAAC,CAACC,IAAI,CAACtB,MAAM,CAACiC,WAAW,CAACE,SAAS,CAAC,CAAC,CAAC;EACpF,OAAO9B,IAAI,CAAC;IACVW,WAAW;IACXC,cAAc;IACdT;GACD,CAAC;AACJ,CAAC,EAAEP,MAAM,CAACmC,KAAK,CAAC;AAEhB;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAIC,QAAkB,IAAY;EAC9D,MAAMC,oBAAoB,GAAGD,QAAQ,CAAC9B,UAAU,CAACgC,IAAI,CAClDX,IAAI,IAAKA,IAAI,CAAChB,GAAG,KAAKV,iBAAiB,CACzC;EACD,IAAI,CAACoC,oBAAoB,IAAI,CAACA,oBAAoB,CAACzB,KAAK,CAACC,WAAW,EAAE;IACpE,MAAM,IAAI0B,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EACA,OAAOF,oBAAoB,CAACzB,KAAK,CAACC,WAAW;AAC/C,CAAC;AAED;;;;AAIA,OAAO,MAAMN,mBAAmB,GAAIE,OAAoC,IAAqB;EAC3F,MAAMH,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAACK,GAAG,EAAEC,KAAK,CAAC,IAAIH,OAAO,EAAE;IAClCH,UAAU,CAACI,IAAI,CAAC;MACdC,GAAG;MACHC,KAAK,EAAE4B,uBAAuB,CAAC5B,KAAK;KACrC,CAAC;EACJ;EACA,OAAON,UAAU;AACnB,CAAC;AAED;;;;AAIA,OAAO,MAAMkC,uBAAuB,GAAI5B,KAAc,IAAc;EAClE,IAAI6B,KAAK,CAACC,OAAO,CAAC9B,KAAK,CAAC,EAAE;IACxB,OAAO;MACL+B,UAAU,EAAE;QACVC,MAAM,EAAEhC,KAAK,CAACS,GAAG,CAACmB,uBAAuB;;KAE5C;EACH;EACA,QAAQ,OAAO5B,KAAK;IAClB,KAAK,QAAQ;MACX,OAAO;QACLC,WAAW,EAAED;OACd;IACH,KAAK,QAAQ;MACX,OAAO;QACLiC,QAAQ,EAAEC,MAAM,CAAClC,KAAK;OACvB;IACH,KAAK,QAAQ;MACX,OAAOkC,MAAM,CAACC,SAAS,CAACnC,KAAK,CAAC,GAC1B;QACAiC,QAAQ,EAAEjC;OACX,GACC;QACAoC,WAAW,EAAEpC;OACd;IACL,KAAK,SAAS;MACZ,OAAO;QACLqC,SAAS,EAAErC;OACZ;IACH;MACE,OAAO;QACLC,WAAW,EAAEb,WAAW,CAACkD,eAAe,CAACtC,KAAK;OAC/C;EACL;AACF,CAAC","ignoreList":[]}