@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,221 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import * as Duration from "effect/Duration";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as Option from "effect/Option";
6
- import * as Tracer from "effect/Tracer";
7
- import * as Exporter from "./internal/otlpExporter.js";
8
- import { entriesToAttributes } from "./OtlpResource.js";
9
- import * as OtlpResource from "./OtlpResource.js";
10
- const ATTR_EXCEPTION_TYPE = "exception.type";
11
- const ATTR_EXCEPTION_MESSAGE = "exception.message";
12
- const ATTR_EXCEPTION_STACKTRACE = "exception.stacktrace";
13
- /**
14
- * @since 1.0.0
15
- * @category Constructors
16
- */
17
- export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
18
- const otelResource = yield* OtlpResource.fromConfig(options.resource);
19
- const scope = {
20
- name: OtlpResource.unsafeServiceName(otelResource)
21
- };
22
- const exporter = yield* Exporter.make({
23
- label: "OtlpTracer",
24
- url: options.url,
25
- headers: options.headers,
26
- exportInterval: options.exportInterval ?? Duration.seconds(5),
27
- maxBatchSize: options.maxBatchSize ?? 1000,
28
- body(spans) {
29
- const data = {
30
- resourceSpans: [{
31
- resource: otelResource,
32
- scopeSpans: [{
33
- scope,
34
- spans
35
- }]
36
- }]
37
- };
38
- return data;
39
- },
40
- shutdownTimeout: options.shutdownTimeout ?? Duration.seconds(3)
41
- });
42
- const exportFn = span => {
43
- exporter.push(makeOtlpSpan(span));
44
- };
45
- return Tracer.make({
46
- span(name, parent, context, links, startTime, kind) {
47
- return makeSpan({
48
- name,
49
- parent,
50
- context,
51
- status: {
52
- _tag: "Started",
53
- startTime
54
- },
55
- attributes: new Map(),
56
- links,
57
- sampled: true,
58
- kind,
59
- export: exportFn
60
- });
61
- },
62
- context: options.context ? function (f, fiber) {
63
- if (fiber.currentSpan === undefined) {
64
- return f();
65
- }
66
- return options.context(f, fiber.currentSpan);
67
- } : defaultContext
68
- });
69
- });
70
- /**
71
- * @since 1.0.0
72
- * @category Layers
73
- */
74
- export const layer = options => Layer.unwrapScoped(Effect.map(make(options), Layer.setTracer));
75
- // internal
76
- function defaultContext(f, _) {
77
- return f();
78
- }
79
- const SpanProto = {
80
- _tag: "Span",
81
- end(endTime, exit) {
82
- this.status = {
83
- _tag: "Ended",
84
- startTime: this.status.startTime,
85
- endTime,
86
- exit
87
- };
88
- this.export(this);
89
- },
90
- attribute(key, value) {
91
- this.attributes.set(key, value);
92
- },
93
- event(name, startTime, attributes) {
94
- this.events.push([name, startTime, attributes]);
95
- },
96
- addLinks(links) {
97
- // eslint-disable-next-line no-restricted-syntax
98
- this.links.push(...links);
99
- }
100
- };
101
- const makeSpan = options => {
102
- const self = Object.assign(Object.create(SpanProto), options);
103
- if (Option.isSome(self.parent)) {
104
- self.traceId = self.parent.value.traceId;
105
- } else {
106
- self.traceId = generateId(32);
107
- }
108
- self.spanId = generateId(16);
109
- self.events = [];
110
- return self;
111
- };
112
- const generateId = len => {
113
- const chars = "0123456789abcdef";
114
- let result = "";
115
- for (let i = 0; i < len; i++) {
116
- result += chars[Math.floor(Math.random() * chars.length)];
117
- }
118
- return result;
119
- };
120
- const makeOtlpSpan = self => {
121
- const status = self.status;
122
- const attributes = entriesToAttributes(self.attributes.entries());
123
- const events = self.events.map(([name, startTime, attributes]) => ({
124
- name,
125
- timeUnixNano: String(startTime),
126
- attributes: attributes ? entriesToAttributes(Object.entries(attributes)) : [],
127
- droppedAttributesCount: 0
128
- }));
129
- let otelStatus;
130
- if (status.exit._tag === "Success") {
131
- otelStatus = constOtelStatusSuccess;
132
- } else if (Cause.isInterruptedOnly(status.exit.cause)) {
133
- otelStatus = {
134
- code: StatusCode.Ok,
135
- message: Cause.pretty(status.exit.cause)
136
- };
137
- } else {
138
- const errors = Cause.prettyErrors(status.exit.cause);
139
- const firstError = errors[0];
140
- otelStatus = {
141
- code: StatusCode.Error
142
- };
143
- attributes.push({
144
- key: "span.label",
145
- value: {
146
- stringValue: "⚠︎ Interrupted"
147
- }
148
- }, {
149
- key: "status.interrupted",
150
- value: {
151
- boolValue: true
152
- }
153
- });
154
- if (firstError) {
155
- otelStatus.message = firstError.message;
156
- events.push({
157
- name: "exception",
158
- timeUnixNano: String(status.endTime),
159
- droppedAttributesCount: 0,
160
- attributes: [{
161
- "key": ATTR_EXCEPTION_TYPE,
162
- "value": {
163
- "stringValue": firstError.name
164
- }
165
- }, {
166
- "key": ATTR_EXCEPTION_MESSAGE,
167
- "value": {
168
- "stringValue": firstError.message
169
- }
170
- }, {
171
- "key": ATTR_EXCEPTION_STACKTRACE,
172
- "value": {
173
- "stringValue": Cause.pretty(status.exit.cause, {
174
- renderErrorCause: true
175
- })
176
- }
177
- }]
178
- });
179
- }
180
- }
181
- return {
182
- traceId: self.traceId,
183
- spanId: self.spanId,
184
- parentSpanId: Option.isSome(self.parent) ? self.parent.value.spanId : undefined,
185
- name: self.name,
186
- kind: SpanKind[self.kind],
187
- startTimeUnixNano: String(status.startTime),
188
- endTimeUnixNano: String(status.endTime),
189
- attributes,
190
- droppedAttributesCount: 0,
191
- events,
192
- droppedEventsCount: 0,
193
- status: otelStatus,
194
- links: self.links.map(link => ({
195
- traceId: link.span.traceId,
196
- spanId: link.span.spanId,
197
- attributes: entriesToAttributes(Object.entries(link.attributes)),
198
- droppedAttributesCount: 0
199
- })),
200
- droppedLinksCount: 0
201
- };
202
- };
203
- var StatusCode;
204
- (function (StatusCode) {
205
- StatusCode[StatusCode["Unset"] = 0] = "Unset";
206
- StatusCode[StatusCode["Ok"] = 1] = "Ok";
207
- StatusCode[StatusCode["Error"] = 2] = "Error";
208
- })(StatusCode || (StatusCode = {}));
209
- var SpanKind;
210
- (function (SpanKind) {
211
- SpanKind[SpanKind["unspecified"] = 0] = "unspecified";
212
- SpanKind[SpanKind["internal"] = 1] = "internal";
213
- SpanKind[SpanKind["server"] = 2] = "server";
214
- SpanKind[SpanKind["client"] = 3] = "client";
215
- SpanKind[SpanKind["producer"] = 4] = "producer";
216
- SpanKind[SpanKind["consumer"] = 5] = "consumer";
217
- })(SpanKind || (SpanKind = {}));
218
- const constOtelStatusSuccess = {
219
- code: StatusCode.Ok
220
- };
221
- //# sourceMappingURL=OtlpTracer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OtlpTracer.js","names":["Cause","Duration","Effect","Layer","Option","Tracer","Exporter","entriesToAttributes","OtlpResource","ATTR_EXCEPTION_TYPE","ATTR_EXCEPTION_MESSAGE","ATTR_EXCEPTION_STACKTRACE","make","fnUntraced","options","otelResource","fromConfig","resource","scope","name","unsafeServiceName","exporter","label","url","headers","exportInterval","seconds","maxBatchSize","body","spans","data","resourceSpans","scopeSpans","shutdownTimeout","exportFn","span","push","makeOtlpSpan","parent","context","links","startTime","kind","makeSpan","status","_tag","attributes","Map","sampled","export","f","fiber","currentSpan","undefined","defaultContext","layer","unwrapScoped","map","setTracer","_","SpanProto","end","endTime","exit","attribute","key","value","set","event","events","addLinks","self","Object","assign","create","isSome","traceId","generateId","spanId","len","chars","result","i","Math","floor","random","length","entries","timeUnixNano","String","droppedAttributesCount","otelStatus","constOtelStatusSuccess","isInterruptedOnly","cause","code","StatusCode","Ok","message","pretty","errors","prettyErrors","firstError","Error","stringValue","boolValue","renderErrorCause","parentSpanId","SpanKind","startTimeUnixNano","endTimeUnixNano","droppedEventsCount","link","droppedLinksCount"],"sources":["../../src/OtlpTracer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Resource.js","names":["Resources","OtelSemConv","Arr","Config","GenericTag","Effect","pipe","Layer","Resource","layer","config","succeed","resourceFromAttributes","configToAttributes","options","attributes","undefined","ATTR_SERVICE_NAME","serviceName","ATTR_TELEMETRY_SDK_NAME","ATTR_TELEMETRY_SDK_LANGUAGE","globalThis","document","TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS","TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS","serviceVersion","ATTR_SERVICE_VERSION","layerFromEnv","additionalAttributes","effect","gen","string","option","orDie","withDefault","map","s","attrs","split","reduce","acc","attr","parts","length","trim","_tag","value","Object","assign","layerEmpty","emptyResource"],"sources":["../../src/Resource.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,SAAS,MAAM,0BAA0B;AACrD,OAAO,KAAKC,WAAW,MAAM,qCAAqC;AAClE,OAAO,KAAKC,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAUrC;;;;AAIA,OAAO,MAAMC,QAAQ,gBAAGJ,UAAU,CAA+B,gCAAgC,CAAC;AAElG;;;;AAIA,OAAO,MAAMK,KAAK,GAAIC,MAIrB,IACCH,KAAK,CAACI,OAAO,CACXH,QAAQ,EACRR,SAAS,CAACY,sBAAsB,CAACC,kBAAkB,CAACH,MAAM,CAAC,CAAC,CAC7D;AAEH;;;;AAIA,OAAO,MAAMG,kBAAkB,GAAIC,OAIlC,IAA4B;EAC3B,MAAMC,UAAU,GAA2B;IACzC,IAAID,OAAO,CAACC,UAAU,IAAIC,SAAS,CAAC;IACpC,CAACf,WAAW,CAACgB,iBAAiB,GAAGH,OAAO,CAACI,WAAW;IACpD,CAACjB,WAAW,CAACkB,uBAAuB,GAAG,uBAAuB;IAC9D,CAAClB,WAAW,CAACmB,2BAA2B,GAAG,OAAQC,UAAkB,CAACC,QAAQ,KAAK,WAAW,GAC1FrB,WAAW,CAACsB,mCAAmC,GAC/CtB,WAAW,CAACuB;GACjB;EACD,IAAIV,OAAO,CAACW,cAAc,EAAE;IAC1BV,UAAU,CAACd,WAAW,CAACyB,oBAAoB,CAAC,GAAGZ,OAAO,CAACW,cAAc;EACvE;EACA,OAAOV,UAAU;AACnB,CAAC;AAED;;;;AAIA,OAAO,MAAMY,YAAY,GACvBC,oBAEa,IAEbrB,KAAK,CAACsB,MAAM,CACVrB,QAAQ,EACRH,MAAM,CAACyB,GAAG,CAAC,aAAS;EAClB,MAAMZ,WAAW,GAAG,OAAOZ,IAAI,CAACH,MAAM,CAAC4B,MAAM,CAAC,mBAAmB,CAAC,EAAE5B,MAAM,CAAC6B,MAAM,EAAE3B,MAAM,CAAC4B,KAAK,CAAC;EAChG,MAAMlB,UAAU,GAAG,OAAOT,IAAI,CAC5BH,MAAM,CAAC4B,MAAM,CAAC,0BAA0B,CAAC,EACzC5B,MAAM,CAAC+B,WAAW,CAAC,EAAE,CAAC,EACtB/B,MAAM,CAACgC,GAAG,CAAEC,CAAC,IAAI;IACf,MAAMC,KAAK,GAAGD,CAAC,CAACE,KAAK,CAAC,GAAG,CAAC;IAC1B,OAAOpC,GAAG,CAACqC,MAAM,CAACF,KAAK,EAAE,EAAwB,EAAE,CAACG,GAAG,EAAEC,IAAI,KAAI;MAC/D,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,EACFnC,MAAM,CAAC4B,KAAK,CACb;EACD,IAAIf,WAAW,CAAC2B,IAAI,KAAK,MAAM,EAAE;IAC/B9B,UAAU,CAACd,WAAW,CAACgB,iBAAiB,CAAC,GAAGC,WAAW,CAAC4B,KAAK;EAC/D;EACA,IAAIlB,oBAAoB,EAAE;IACxBmB,MAAM,CAACC,MAAM,CAACjC,UAAU,EAAEa,oBAAoB,CAAC;EACjD;EACA,OAAO5B,SAAS,CAACY,sBAAsB,CAACG,UAAU,CAAC;AACrD,CAAC,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMkC,UAAU,gBAAG1C,KAAK,CAACI,OAAO,CACrCH,QAAQ,eACRR,SAAS,CAACkD,aAAa,EAAE,CAC1B","ignoreList":[]}
@@ -1,80 +0,0 @@
1
- import * as internal from "./internal/tracer.js";
2
- /**
3
- * @since 1.0.0
4
- * @category constructors
5
- */
6
- export const make = internal.make;
7
- /**
8
- * @since 1.0.0
9
- * @category constructors
10
- */
11
- export const makeExternalSpan = internal.makeExternalSpan;
12
- /**
13
- * Get the current OpenTelemetry span.
14
- *
15
- * Works with both the official OpenTelemetry API (via `Tracer.layer`, `NodeSdk.layer`, etc.)
16
- * and the lightweight OTLP module (`OtlpTracer.layer`).
17
- *
18
- * When using OTLP, the returned span is a wrapper that conforms to the
19
- * OpenTelemetry `Span` interface.
20
- *
21
- * @since 1.0.0
22
- * @category accessors
23
- */
24
- export const currentOtelSpan = internal.currentOtelSpan;
25
- /**
26
- * @since 1.0.0
27
- * @category layers
28
- */
29
- export const layerWithoutOtelTracer = internal.layerWithoutOtelTracer;
30
- /**
31
- * @since 1.0.0
32
- * @category layers
33
- */
34
- export const layer = internal.layer;
35
- /**
36
- * @since 1.0.0
37
- * @category layers
38
- */
39
- export const layerGlobal = internal.layerGlobal;
40
- /**
41
- * @since 1.0.0
42
- * @category layers
43
- */
44
- export const layerTracer = internal.layerTracer;
45
- /**
46
- * @since 1.0.0
47
- * @category layers
48
- */
49
- export const layerGlobalTracer = internal.layerGlobalTracer;
50
- /**
51
- * @since 1.0.0
52
- * @category tags
53
- */
54
- export const OtelTracerProvider = internal.TracerProvider;
55
- /**
56
- * @since 1.0.0
57
- * @category tags
58
- */
59
- export const OtelTracer = internal.Tracer;
60
- /**
61
- * @since 1.0.0
62
- * @category tags
63
- */
64
- export const OtelTraceFlags = internal.traceFlagsTag;
65
- /**
66
- * @since 1.0.0
67
- * @category tags
68
- */
69
- export const OtelTraceState = internal.traceStateTag;
70
- /**
71
- * Set the effect's parent span from the given opentelemetry `SpanContext`.
72
- *
73
- * This is handy when you set up OpenTelemetry outside of Effect and want to
74
- * attach to a parent span.
75
- *
76
- * @since 1.0.0
77
- * @category propagation
78
- */
79
- export const withSpanContext = internal.withSpanContext;
80
- //# sourceMappingURL=Tracer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tracer.js","names":["internal","make","makeExternalSpan","currentOtelSpan","layerWithoutOtelTracer","layer","layerGlobal","layerTracer","layerGlobalTracer","OtelTracerProvider","TracerProvider","OtelTracer","Tracer","OtelTraceFlags","traceFlagsTag","OtelTraceState","traceStateTag","withSpanContext"],"sources":["../../src/Tracer.ts"],"sourcesContent":[null],"mappings":"AASA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAGhD;;;;AAIA,OAAO,MAAMC,IAAI,GAA4CD,QAAQ,CAACC,IAAI;AAE1E;;;;AAIA,OAAO,MAAMC,gBAAgB,GAOTF,QAAQ,CAACE,gBAAgB;AAE7C;;;;;;;;;;;;AAYA,OAAO,MAAMC,eAAe,GAA8CH,QAAQ,CAACG,eAAe;AAElG;;;;AAIA,OAAO,MAAMC,sBAAsB,GAAoCJ,QAAQ,CAACI,sBAAsB;AAEtG;;;;AAIA,OAAO,MAAMC,KAAK,GAA4DL,QAAQ,CAACK,KAAK;AAE5F;;;;AAIA,OAAO,MAAMC,WAAW,GAAuCN,QAAQ,CAACM,WAAW;AAEnF;;;;AAIA,OAAO,MAAMC,WAAW,GAA4DP,QAAQ,CAACO,WAAW;AAExG;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAuCR,QAAQ,CAACQ,iBAAiB;AAU/F;;;;AAIA,OAAO,MAAMC,kBAAkB,GAAiDT,QAAQ,CAACU,cAAc;AAUvG;;;;AAIA,OAAO,MAAMC,UAAU,GAAiCX,QAAQ,CAACY,MAAM;AAUvE;;;;AAIA,OAAO,MAAMC,cAAc,GAAyCb,QAAQ,CAACc,aAAa;AAU1F;;;;AAIA,OAAO,MAAMC,cAAc,GAAyCf,QAAQ,CAACgB,aAAa;AAE1F;;;;;;;;;AASA,OAAO,MAAMC,eAAe,GAuBxBjB,QAAQ,CAACiB,eAAe","ignoreList":[]}
@@ -1,33 +0,0 @@
1
- import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
2
- import * as Effect from "effect/Effect";
3
- import { constant } from "effect/Function";
4
- import * as Layer from "effect/Layer";
5
- import { isNonEmpty } from "./internal/utils.js";
6
- import * as Logger from "./Logger.js";
7
- import * as Metrics from "./Metrics.js";
8
- import * as Resource from "./Resource.js";
9
- import * as Tracer from "./Tracer.js";
10
- /**
11
- * @since 1.0.0
12
- * @category layers
13
- */
14
- export const layerTracerProvider = (processor, config) => Layer.scoped(Tracer.OtelTracerProvider, Effect.flatMap(Resource.Resource, resource => Effect.acquireRelease(Effect.sync(() => {
15
- const provider = new WebTracerProvider({
16
- ...(config ?? undefined),
17
- resource,
18
- spanProcessors: Array.isArray(processor) ? processor : [processor]
19
- });
20
- return provider;
21
- }), provider => Effect.ignoreLogged(Effect.promise(() => provider.forceFlush().then(() => provider.shutdown()))))));
22
- /**
23
- * @since 1.0.0
24
- * @category layer
25
- */
26
- export const layer = evaluate => Layer.unwrapEffect(Effect.map(Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate), config => {
27
- const ResourceLive = Resource.layer(config.resource);
28
- const TracerLive = isNonEmpty(config.spanProcessor) ? Layer.provide(Tracer.layer, layerTracerProvider(config.spanProcessor, config.tracerConfig)) : Layer.empty;
29
- const LoggerLive = isNonEmpty(config.logRecordProcessor) ? Layer.provide(Logger.layerLoggerAdd, Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)) : Layer.empty;
30
- const MetricsLive = isNonEmpty(config.metricReader) ? Metrics.layer(constant(config.metricReader)) : Layer.empty;
31
- return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(Layer.provideMerge(ResourceLive));
32
- }));
33
- //# sourceMappingURL=WebSdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","OtelTracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","ignoreLogged","promise","forceFlush","then","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","TracerLive","spanProcessor","provide","tracerConfig","empty","LoggerLive","logRecordProcessor","layerLoggerAdd","layerLoggerProvider","loggerProviderConfig","MetricsLive","metricReader","mergeAll","pipe","provideMerge"],"sources":["../../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"AAOA,SAASA,iBAAiB,QAAQ,8BAA8B;AAEhE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAsB,iBAAiB;AACxD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,UAAU,QAAQ,qBAAqB;AAChD,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AAmBrC;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAA+D,EAC/DC,MAAuC,KAEvCR,KAAK,CAACS,MAAM,CACVJ,MAAM,CAACK,kBAAkB,EACzBZ,MAAM,CAACa,OAAO,CACZP,QAAQ,CAACA,QAAQ,EAChBQ,QAAQ,IACPd,MAAM,CAACe,cAAc,CACnBf,MAAM,CAACgB,IAAI,CAAC,MAAK;EACf,MAAMC,QAAQ,GAAG,IAAIlB,iBAAiB,CAAC;IACrC,IAAIW,MAAM,IAAIQ,SAAS,CAAC;IACxBJ,QAAQ;IACRK,cAAc,EAAEC,KAAK,CAACC,OAAO,CAACZ,SAAS,CAAC,GAAIA,SAAiB,GAAG,CAACA,SAAS;GAC3E,CAAC;EACF,OAAOQ,QAAQ;AACjB,CAAC,CAAC,EACDA,QAAQ,IAAKjB,MAAM,CAACsB,YAAY,CAACtB,MAAM,CAACuB,OAAO,CAAC,MAAMN,QAAQ,CAACO,UAAU,EAAE,CAACC,IAAI,CAAC,MAAMR,QAAQ,CAACS,QAAQ,EAAE,CAAC,CAAC,CAAC,CAC/G,CACJ,CACF;AAEH;;;;AAIA,OAAO,MAAMC,KAAK,GAYhBC,QAAyE,IAEzE1B,KAAK,CAAC2B,YAAY,CAChB7B,MAAM,CAAC8B,GAAG,CACR9B,MAAM,CAAC+B,QAAQ,CAACH,QAAQ,CAAC,GACrBA,QAAwC,GACxC5B,MAAM,CAACgB,IAAI,CAACY,QAAQ,CAAC,EACxBlB,MAAM,IAAI;EACT,MAAMsB,YAAY,GAAG1B,QAAQ,CAACqB,KAAK,CAACjB,MAAM,CAACI,QAAQ,CAAC;EAEpD,MAAMmB,UAAU,GAAG9B,UAAU,CAACO,MAAM,CAACwB,aAAa,CAAC,GAC/ChC,KAAK,CAACiC,OAAO,CAAC5B,MAAM,CAACoB,KAAK,EAAEnB,mBAAmB,CAACE,MAAM,CAACwB,aAAa,EAAExB,MAAM,CAAC0B,YAAY,CAAC,CAAC,GAC3FlC,KAAK,CAACmC,KAAK;EAEf,MAAMC,UAAU,GAAGnC,UAAU,CAACO,MAAM,CAAC6B,kBAAkB,CAAC,GACpDrC,KAAK,CAACiC,OAAO,CACb/B,MAAM,CAACoC,cAAc,EACrBpC,MAAM,CAACqC,mBAAmB,CAAC/B,MAAM,CAAC6B,kBAAkB,EAAE7B,MAAM,CAACgC,oBAAoB,CAAC,CACnF,GACCxC,KAAK,CAACmC,KAAK;EAEf,MAAMM,WAAW,GAAGxC,UAAU,CAACO,MAAM,CAACkC,YAAY,CAAC,GAC/CvC,OAAO,CAACsB,KAAK,CAAC1B,QAAQ,CAACS,MAAM,CAACkC,YAAY,CAAC,CAAC,GAC5C1C,KAAK,CAACmC,KAAK;EAEf,OAAOnC,KAAK,CAAC2C,QAAQ,CAACZ,UAAU,EAAEU,WAAW,EAAEL,UAAU,CAAC,CAACQ,IAAI,CAC7D5C,KAAK,CAAC6C,YAAY,CAACf,YAAY,CAAC,CACjC;AACH,CAAC,CACF,CACF","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","Otlp","OtlpLogger","OtlpMetrics","OtlpResource","OtlpTracer","Resource","Tracer","WebSdk"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
@@ -1,278 +0,0 @@
1
- import { ValueType } from "@opentelemetry/api";
2
- import { AggregationTemporality, DataPointType, InstrumentType } from "@opentelemetry/sdk-metrics";
3
- import * as Arr from "effect/Array";
4
- import * as Effect from "effect/Effect";
5
- import * as Layer from "effect/Layer";
6
- import * as Metric from "effect/Metric";
7
- import * as MetricKeyType from "effect/MetricKeyType";
8
- import * as MetricState from "effect/MetricState";
9
- import * as Option from "effect/Option";
10
- import * as Resource from "../Resource.js";
11
- const sdkName = "@effect/opentelemetry/Metrics";
12
- /** @internal */
13
- export class MetricProducerImpl {
14
- resource;
15
- constructor(resource) {
16
- this.resource = resource;
17
- }
18
- startTimes = /*#__PURE__*/new Map();
19
- startTimeFor(name, hrTime) {
20
- if (this.startTimes.has(name)) {
21
- return this.startTimes.get(name);
22
- }
23
- this.startTimes.set(name, hrTime);
24
- return hrTime;
25
- }
26
- collect(_options) {
27
- const snapshot = Metric.unsafeSnapshot();
28
- const hrTimeNow = currentHrTime();
29
- const metricData = [];
30
- const metricDataByName = new Map();
31
- const addMetricData = data => {
32
- metricData.push(data);
33
- metricDataByName.set(data.descriptor.name, data);
34
- };
35
- for (let i = 0, len = snapshot.length; i < len; i++) {
36
- const {
37
- metricKey,
38
- metricState
39
- } = snapshot[i];
40
- const attributes = Arr.reduce(metricKey.tags, {}, (acc, label) => {
41
- acc[label.key] = label.value;
42
- return acc;
43
- });
44
- const descriptor = descriptorFromKey(metricKey, attributes);
45
- const startTime = this.startTimeFor(descriptor.name, hrTimeNow);
46
- if (MetricState.isCounterState(metricState)) {
47
- const dataPoint = {
48
- startTime,
49
- endTime: hrTimeNow,
50
- attributes,
51
- value: Number(metricState.count)
52
- };
53
- if (metricDataByName.has(descriptor.name)) {
54
- metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
55
- } else {
56
- addMetricData({
57
- dataPointType: DataPointType.SUM,
58
- descriptor,
59
- isMonotonic: descriptor.type === InstrumentType.COUNTER,
60
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
61
- dataPoints: [dataPoint]
62
- });
63
- }
64
- } else if (MetricState.isGaugeState(metricState)) {
65
- const dataPoint = {
66
- startTime,
67
- endTime: hrTimeNow,
68
- attributes,
69
- value: Number(metricState.value)
70
- };
71
- if (metricDataByName.has(descriptor.name)) {
72
- metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
73
- } else {
74
- addMetricData({
75
- dataPointType: DataPointType.GAUGE,
76
- descriptor,
77
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
78
- dataPoints: [dataPoint]
79
- });
80
- }
81
- } else if (MetricState.isHistogramState(metricState)) {
82
- const size = metricState.buckets.length;
83
- const buckets = {
84
- boundaries: Arr.allocate(size - 1),
85
- counts: Arr.allocate(size)
86
- };
87
- let i = 0;
88
- let prev = 0;
89
- for (const [boundary, value] of metricState.buckets) {
90
- if (i < size - 1) {
91
- buckets.boundaries[i] = boundary;
92
- }
93
- buckets.counts[i] = value - prev;
94
- prev = value;
95
- i++;
96
- }
97
- const dataPoint = {
98
- startTime,
99
- endTime: hrTimeNow,
100
- attributes,
101
- value: {
102
- buckets,
103
- count: metricState.count,
104
- min: metricState.min,
105
- max: metricState.max,
106
- sum: metricState.sum
107
- }
108
- };
109
- if (metricDataByName.has(descriptor.name)) {
110
- metricDataByName.get(descriptor.name).dataPoints.push(dataPoint);
111
- } else {
112
- addMetricData({
113
- dataPointType: DataPointType.HISTOGRAM,
114
- descriptor,
115
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
116
- dataPoints: [dataPoint]
117
- });
118
- }
119
- } else if (MetricState.isFrequencyState(metricState)) {
120
- const dataPoints = [];
121
- for (const [freqKey, value] of metricState.occurrences) {
122
- dataPoints.push({
123
- startTime,
124
- endTime: hrTimeNow,
125
- attributes: {
126
- ...attributes,
127
- key: freqKey
128
- },
129
- value
130
- });
131
- }
132
- if (metricDataByName.has(descriptor.name)) {
133
- // eslint-disable-next-line no-restricted-syntax
134
- metricDataByName.get(descriptor.name).dataPoints.push(...dataPoints);
135
- } else {
136
- addMetricData({
137
- dataPointType: DataPointType.SUM,
138
- descriptor: descriptorFromKey(metricKey, attributes),
139
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
140
- isMonotonic: true,
141
- dataPoints
142
- });
143
- }
144
- } else if (MetricState.isSummaryState(metricState)) {
145
- const dataPoints = [{
146
- startTime,
147
- endTime: hrTimeNow,
148
- attributes: {
149
- ...attributes,
150
- quantile: "min"
151
- },
152
- value: metricState.min
153
- }];
154
- for (const [quantile, value] of metricState.quantiles) {
155
- dataPoints.push({
156
- startTime,
157
- endTime: hrTimeNow,
158
- attributes: {
159
- ...attributes,
160
- quantile: quantile.toString()
161
- },
162
- value: value._tag === "Some" ? value.value : 0
163
- });
164
- }
165
- dataPoints.push({
166
- startTime,
167
- endTime: hrTimeNow,
168
- attributes: {
169
- ...attributes,
170
- quantile: "max"
171
- },
172
- value: metricState.max
173
- });
174
- const countDataPoint = {
175
- startTime,
176
- endTime: hrTimeNow,
177
- attributes,
178
- value: metricState.count
179
- };
180
- const sumDataPoint = {
181
- startTime,
182
- endTime: hrTimeNow,
183
- attributes,
184
- value: metricState.sum
185
- };
186
- if (metricDataByName.has(`${descriptor.name}_quantiles`)) {
187
- // eslint-disable-next-line no-restricted-syntax
188
- metricDataByName.get(`${descriptor.name}_quantiles`).dataPoints.push(...dataPoints);
189
- metricDataByName.get(`${descriptor.name}_count`).dataPoints.push(countDataPoint);
190
- metricDataByName.get(`${descriptor.name}_sum`).dataPoints.push(sumDataPoint);
191
- } else {
192
- addMetricData({
193
- dataPointType: DataPointType.SUM,
194
- descriptor: descriptorFromKey(metricKey, attributes, "quantiles"),
195
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
196
- isMonotonic: false,
197
- dataPoints
198
- });
199
- addMetricData({
200
- dataPointType: DataPointType.SUM,
201
- descriptor: {
202
- ...descriptorMeta(metricKey, "count"),
203
- unit: "1",
204
- type: InstrumentType.COUNTER,
205
- valueType: ValueType.INT
206
- },
207
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
208
- isMonotonic: true,
209
- dataPoints: [countDataPoint]
210
- });
211
- addMetricData({
212
- dataPointType: DataPointType.SUM,
213
- descriptor: {
214
- ...descriptorMeta(metricKey, "sum"),
215
- unit: "1",
216
- type: InstrumentType.COUNTER,
217
- valueType: ValueType.DOUBLE
218
- },
219
- aggregationTemporality: AggregationTemporality.CUMULATIVE,
220
- isMonotonic: true,
221
- dataPoints: [sumDataPoint]
222
- });
223
- }
224
- }
225
- }
226
- return Promise.resolve({
227
- resourceMetrics: {
228
- resource: this.resource,
229
- scopeMetrics: [{
230
- scope: {
231
- name: sdkName
232
- },
233
- metrics: metricData
234
- }]
235
- },
236
- errors: []
237
- });
238
- }
239
- }
240
- const descriptorMeta = (metricKey, suffix) => ({
241
- name: suffix ? `${metricKey.name}_${suffix}` : metricKey.name,
242
- description: Option.getOrElse(metricKey.description, () => ""),
243
- advice: {}
244
- });
245
- const descriptorFromKey = (metricKey, tags, suffix) => ({
246
- ...descriptorMeta(metricKey, suffix),
247
- unit: tags.unit ?? tags.time_unit ?? "1",
248
- type: instrumentTypeFromKey(metricKey),
249
- valueType: "bigint" in metricKey.keyType && metricKey.keyType.bigint === true ? ValueType.INT : ValueType.DOUBLE
250
- });
251
- const instrumentTypeFromKey = key => {
252
- if (MetricKeyType.isHistogramKey(key.keyType)) {
253
- return InstrumentType.HISTOGRAM;
254
- } else if (MetricKeyType.isGaugeKey(key.keyType)) {
255
- return InstrumentType.OBSERVABLE_GAUGE;
256
- } else if (MetricKeyType.isFrequencyKey(key.keyType)) {
257
- return InstrumentType.COUNTER;
258
- } else if (MetricKeyType.isCounterKey(key.keyType) && key.keyType.incremental) {
259
- return InstrumentType.COUNTER;
260
- }
261
- return InstrumentType.UP_DOWN_COUNTER;
262
- };
263
- const currentHrTime = () => {
264
- const now = Date.now();
265
- return [Math.floor(now / 1000), now % 1000 * 1000000];
266
- };
267
- /** @internal */
268
- export const makeProducer = /*#__PURE__*/Effect.map(Resource.Resource, resource => new MetricProducerImpl(resource));
269
- /** @internal */
270
- export const registerProducer = (self, metricReader, options) => Effect.acquireRelease(Effect.sync(() => {
271
- const reader = metricReader();
272
- const readers = Array.isArray(reader) ? reader : [reader];
273
- readers.forEach(reader => reader.setMetricProducer(self));
274
- return readers;
275
- }), readers => Effect.promise(() => Promise.all(readers.map(reader => reader.shutdown()))).pipe(Effect.ignoreLogged, Effect.interruptible, Effect.timeoutOption(options?.shutdownTimeout ?? 3000)));
276
- /** @internal */
277
- export const layer = (evaluate, options) => Layer.scopedDiscard(Effect.flatMap(makeProducer, producer => registerProducer(producer, evaluate, options)));
278
- //# sourceMappingURL=metrics.js.map