@ogcio/o11y-sdk-node 0.1.0-beta.2 → 0.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +96 -10
- package/coverage/cobertura-coverage.xml +191 -80
- package/coverage/lcov-report/index.html +17 -17
- package/coverage/lcov-report/sdk-node/index.html +1 -1
- package/coverage/lcov-report/sdk-node/index.ts.html +8 -2
- package/coverage/lcov-report/sdk-node/lib/console.ts.html +130 -0
- package/coverage/lcov-report/sdk-node/lib/grpc.ts.html +27 -27
- package/coverage/lcov-report/sdk-node/lib/http.ts.html +6 -6
- package/coverage/lcov-report/sdk-node/lib/index.html +46 -16
- package/coverage/lcov-report/sdk-node/lib/index.ts.html +5 -14
- package/coverage/lcov-report/sdk-node/lib/instrumentation.node.ts.html +82 -58
- package/coverage/lcov-report/sdk-node/lib/metrics.ts.html +295 -0
- package/coverage/lcov-report/sdk-node/lib/options.ts.html +4 -7
- package/coverage/lcov-report/sdk-node/lib/utils.ts.html +1 -1
- package/coverage/lcov.info +196 -90
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lib/console.d.ts +3 -0
- package/dist/lib/console.js +12 -0
- package/dist/lib/grpc.js +4 -4
- package/dist/lib/http.js +4 -4
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/instrumentation.node.js +10 -1
- package/dist/lib/metrics.d.ts +18 -0
- package/dist/lib/metrics.js +28 -0
- package/dist/lib/options.d.ts +2 -3
- package/dist/package.json +50 -0
- package/index.ts +2 -0
- package/lib/console.ts +15 -0
- package/lib/grpc.ts +4 -4
- package/lib/http.ts +4 -4
- package/lib/index.ts +2 -2
- package/lib/instrumentation.node.ts +9 -1
- package/lib/metrics.ts +70 -0
- package/lib/options.ts +2 -3
- package/package.json +22 -22
- package/test/metrics.test.ts +142 -0
- package/test/node-config.test.ts +35 -9
- package/test/validation.test.ts +31 -0
- package/test-report.xml +45 -13
- package/tsconfig.json +2 -1
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>65/65</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>16/16</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>65/65</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -138,7 +138,16 @@
|
|
|
138
138
|
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
139
|
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
140
|
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
151
|
<span class="cline-any cline-neutral"> </span>
|
|
143
152
|
<span class="cline-any cline-neutral"> </span>
|
|
144
153
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -148,80 +157,89 @@
|
|
|
148
157
|
<span class="cline-any cline-neutral"> </span>
|
|
149
158
|
<span class="cline-any cline-neutral"> </span>
|
|
150
159
|
<span class="cline-any cline-neutral"> </span>
|
|
151
|
-
<span class="cline-any cline-
|
|
152
|
-
<span class="cline-any cline-yes">
|
|
153
|
-
<span class="cline-any cline-yes">
|
|
154
|
-
<span class="cline-any cline-yes">
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-yes">8x</span>
|
|
162
|
+
<span class="cline-any cline-yes">8x</span>
|
|
163
|
+
<span class="cline-any cline-yes">8x</span>
|
|
164
|
+
<span class="cline-any cline-yes">8x</span>
|
|
155
165
|
<span class="cline-any cline-yes">1x</span>
|
|
156
166
|
<span class="cline-any cline-yes">1x</span>
|
|
157
167
|
<span class="cline-any cline-yes">1x</span>
|
|
158
168
|
<span class="cline-any cline-yes">1x</span>
|
|
159
169
|
<span class="cline-any cline-yes">1x</span>
|
|
160
170
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-yes">
|
|
171
|
+
<span class="cline-any cline-yes">8x</span>
|
|
162
172
|
<span class="cline-any cline-yes">1x</span>
|
|
163
173
|
<span class="cline-any cline-yes">1x</span>
|
|
164
174
|
<span class="cline-any cline-yes">1x</span>
|
|
165
175
|
<span class="cline-any cline-yes">1x</span>
|
|
166
176
|
<span class="cline-any cline-yes">1x</span>
|
|
167
177
|
<span class="cline-any cline-neutral"> </span>
|
|
168
|
-
<span class="cline-any cline-yes">
|
|
178
|
+
<span class="cline-any cline-yes">8x</span>
|
|
169
179
|
<span class="cline-any cline-yes">1x</span>
|
|
170
180
|
<span class="cline-any cline-yes">1x</span>
|
|
171
181
|
<span class="cline-any cline-yes">1x</span>
|
|
172
182
|
<span class="cline-any cline-yes">1x</span>
|
|
173
183
|
<span class="cline-any cline-yes">1x</span>
|
|
174
184
|
<span class="cline-any cline-neutral"> </span>
|
|
175
|
-
<span class="cline-any cline-yes">
|
|
185
|
+
<span class="cline-any cline-yes">5x</span>
|
|
176
186
|
<span class="cline-any cline-neutral"> </span>
|
|
177
|
-
<span class="cline-any cline-yes">
|
|
187
|
+
<span class="cline-any cline-yes">8x</span>
|
|
178
188
|
<span class="cline-any cline-yes">1x</span>
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
180
|
-
<span class="cline-any cline-yes">
|
|
181
|
-
<span class="cline-any cline-yes">
|
|
182
|
-
<span class="cline-any cline-neutral"> </span>
|
|
183
|
-
<span class="cline-any cline-yes">3x</span>
|
|
184
|
-
<span class="cline-any cline-yes">3x</span>
|
|
185
|
-
<span class="cline-any cline-yes">3x</span>
|
|
189
|
+
<span class="cline-any cline-yes">8x</span>
|
|
190
|
+
<span class="cline-any cline-yes">1x</span>
|
|
191
|
+
<span class="cline-any cline-yes">4x</span>
|
|
186
192
|
<span class="cline-any cline-yes">3x</span>
|
|
187
193
|
<span class="cline-any cline-yes">3x</span>
|
|
188
|
-
<span class="cline-any cline-no"> </span>
|
|
189
|
-
<span class="cline-any cline-yes">6x</span>
|
|
190
194
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-yes">
|
|
192
|
-
<span class="cline-any cline-yes">
|
|
193
|
-
<span class="cline-any cline-yes">
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
196
|
-
<span class="cline-any cline-yes">
|
|
197
|
-
<span class="cline-any cline-yes">
|
|
198
|
-
<span class="cline-any cline-yes">6x</span>
|
|
199
|
-
<span class="cline-any cline-yes">6x</span>
|
|
200
|
-
<span class="cline-any cline-yes">6x</span>
|
|
201
|
-
<span class="cline-any cline-yes">6x</span>
|
|
202
|
-
<span class="cline-any cline-yes">6x</span>
|
|
203
|
-
<span class="cline-any cline-yes">6x</span>
|
|
204
|
-
<span class="cline-any cline-yes">6x</span>
|
|
195
|
+
<span class="cline-any cline-yes">5x</span>
|
|
196
|
+
<span class="cline-any cline-yes">5x</span>
|
|
197
|
+
<span class="cline-any cline-yes">5x</span>
|
|
198
|
+
<span class="cline-any cline-yes">5x</span>
|
|
199
|
+
<span class="cline-any cline-yes">4x</span>
|
|
200
|
+
<span class="cline-any cline-yes">1x</span>
|
|
201
|
+
<span class="cline-any cline-yes">8x</span>
|
|
205
202
|
<span class="cline-any cline-neutral"> </span>
|
|
206
|
-
<span class="cline-any cline-yes">
|
|
207
|
-
<span class="cline-any cline-yes">
|
|
208
|
-
<span class="cline-any cline-yes">
|
|
209
|
-
<span class="cline-any cline-yes">
|
|
210
|
-
<span class="cline-any cline-
|
|
211
|
-
<span class="cline-any cline-
|
|
212
|
-
<span class="cline-any cline-
|
|
213
|
-
<span class="cline-any cline-
|
|
214
|
-
<span class="cline-any cline-
|
|
215
|
-
<span class="cline-any cline-yes">
|
|
216
|
-
<span class="cline-any cline-
|
|
203
|
+
<span class="cline-any cline-yes">8x</span>
|
|
204
|
+
<span class="cline-any cline-yes">8x</span>
|
|
205
|
+
<span class="cline-any cline-yes">8x</span>
|
|
206
|
+
<span class="cline-any cline-yes">8x</span>
|
|
207
|
+
<span class="cline-any cline-yes">8x</span>
|
|
208
|
+
<span class="cline-any cline-yes">8x</span>
|
|
209
|
+
<span class="cline-any cline-yes">8x</span>
|
|
210
|
+
<span class="cline-any cline-yes">8x</span>
|
|
211
|
+
<span class="cline-any cline-yes">8x</span>
|
|
212
|
+
<span class="cline-any cline-yes">8x</span>
|
|
213
|
+
<span class="cline-any cline-yes">8x</span>
|
|
214
|
+
<span class="cline-any cline-yes">8x</span>
|
|
215
|
+
<span class="cline-any cline-yes">8x</span>
|
|
216
|
+
<span class="cline-any cline-yes">8x</span>
|
|
217
|
+
<span class="cline-any cline-yes">8x</span>
|
|
218
|
+
<span class="cline-any cline-yes">8x</span>
|
|
219
|
+
<span class="cline-any cline-yes">8x</span>
|
|
220
|
+
<span class="cline-any cline-yes">8x</span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-yes">8x</span>
|
|
223
|
+
<span class="cline-any cline-yes">8x</span>
|
|
224
|
+
<span class="cline-any cline-yes">8x</span>
|
|
225
|
+
<span class="cline-any cline-yes">8x</span>
|
|
226
|
+
<span class="cline-any cline-yes">1x</span>
|
|
227
|
+
<span class="cline-any cline-yes">1x</span>
|
|
228
|
+
<span class="cline-any cline-yes">1x</span>
|
|
229
|
+
<span class="cline-any cline-yes">1x</span>
|
|
230
|
+
<span class="cline-any cline-yes">1x</span>
|
|
231
|
+
<span class="cline-any cline-yes">8x</span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { NodeSDK, resources } from "@opentelemetry/sdk-node";
|
|
217
233
|
import type { NodeSDKConfig } from "./index.js";
|
|
218
234
|
import type { Exporters } from "./options.js";
|
|
219
235
|
import isUrl from "is-url";
|
|
220
236
|
import buildHttpExporters from "./http.js";
|
|
221
237
|
import buildGrpcExporters from "./grpc.js";
|
|
238
|
+
import buildConsoleExporters from "./console.js";
|
|
222
239
|
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";
|
|
223
240
|
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
|
|
224
241
|
import { W3CTraceContextPropagator } from "@opentelemetry/core";
|
|
242
|
+
import packageJson from "../package.json" with { type: "json" };
|
|
225
243
|
|
|
226
244
|
export default function buildNodeInstrumentation(
|
|
227
245
|
config?: NodeSDKConfig,
|
|
@@ -251,6 +269,8 @@ export default function buildNodeInstrumentation(
|
|
|
251
269
|
|
|
252
270
|
if (config.protocol === "http") {
|
|
253
271
|
exporter = buildHttpExporters(config);
|
|
272
|
+
} else if (config.protocol === "console") {
|
|
273
|
+
exporter = buildConsoleExporters(config);
|
|
254
274
|
} else {
|
|
255
275
|
exporter = buildGrpcExporters(config);
|
|
256
276
|
}
|
|
@@ -259,11 +279,15 @@ export default function buildNodeInstrumentation(
|
|
|
259
279
|
diag.setLogger(
|
|
260
280
|
new DiagConsoleLogger(),
|
|
261
281
|
config.diagLogLevel
|
|
262
|
-
? DiagLogLevel[config.diagLogLevel
|
|
263
|
-
|
|
282
|
+
? DiagLogLevel[config.diagLogLevel]
|
|
283
|
+
: DiagLogLevel.INFO,
|
|
264
284
|
);
|
|
265
285
|
|
|
266
286
|
const sdk = new NodeSDK({
|
|
287
|
+
resource: new resources.Resource({
|
|
288
|
+
"o11y.sdk.name": packageJson.name,
|
|
289
|
+
"o11y.sdk.version": packageJson.version,
|
|
290
|
+
}),
|
|
267
291
|
serviceName: config.serviceName,
|
|
268
292
|
traceExporter: exporter.traces,
|
|
269
293
|
metricReader: exporter.metrics,
|
|
@@ -281,12 +305,12 @@ export default function buildNodeInstrumentation(
|
|
|
281
305
|
sdk.start();
|
|
282
306
|
console.log("NodeJS OpenTelemetry instrumentation started successfully.");
|
|
283
307
|
return sdk;
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
308
|
+
} catch (error) {
|
|
309
|
+
console.error(
|
|
310
|
+
"Error starting NodeJS OpenTelemetry instrumentation:",
|
|
311
|
+
error,
|
|
312
|
+
);
|
|
313
|
+
}
|
|
290
314
|
}
|
|
291
315
|
</pre></td></tr></table></pre>
|
|
292
316
|
|
|
@@ -295,7 +319,7 @@ export default function buildNodeInstrumentation(
|
|
|
295
319
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
296
320
|
Code coverage generated by
|
|
297
321
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
298
|
-
at
|
|
322
|
+
at 2025-01-28T15:28:22.401Z
|
|
299
323
|
</div>
|
|
300
324
|
<script src="../../prettify.js"></script>
|
|
301
325
|
<script>
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for sdk-node/lib/metrics.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">sdk-node/lib</a> metrics.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>31/31</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>14/14</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>9/9</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>31/31</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
152
|
+
<span class="cline-any cline-neutral"> </span>
|
|
153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-yes">1x</span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-yes">1x</span>
|
|
168
|
+
<span class="cline-any cline-yes">1x</span>
|
|
169
|
+
<span class="cline-any cline-yes">1x</span>
|
|
170
|
+
<span class="cline-any cline-yes">1x</span>
|
|
171
|
+
<span class="cline-any cline-yes">1x</span>
|
|
172
|
+
<span class="cline-any cline-yes">1x</span>
|
|
173
|
+
<span class="cline-any cline-yes">1x</span>
|
|
174
|
+
<span class="cline-any cline-yes">1x</span>
|
|
175
|
+
<span class="cline-any cline-yes">1x</span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-yes">9x</span>
|
|
184
|
+
<span class="cline-any cline-yes">9x</span>
|
|
185
|
+
<span class="cline-any cline-yes">9x</span>
|
|
186
|
+
<span class="cline-any cline-yes">1x</span>
|
|
187
|
+
<span class="cline-any cline-yes">1x</span>
|
|
188
|
+
<span class="cline-any cline-yes">9x</span>
|
|
189
|
+
<span class="cline-any cline-yes">8x</span>
|
|
190
|
+
<span class="cline-any cline-yes">8x</span>
|
|
191
|
+
<span class="cline-any cline-yes">9x</span>
|
|
192
|
+
<span class="cline-any cline-yes">9x</span>
|
|
193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
194
|
+
<span class="cline-any cline-yes">1x</span>
|
|
195
|
+
<span class="cline-any cline-yes">9x</span>
|
|
196
|
+
<span class="cline-any cline-yes">9x</span>
|
|
197
|
+
<span class="cline-any cline-yes">9x</span>
|
|
198
|
+
<span class="cline-any cline-yes">9x</span>
|
|
199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-yes">9x</span>
|
|
201
|
+
<span class="cline-any cline-yes">1x</span>
|
|
202
|
+
<span class="cline-any cline-yes">1x</span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-yes">8x</span>
|
|
205
|
+
<span class="cline-any cline-yes">8x</span>
|
|
206
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
207
|
+
Counter,
|
|
208
|
+
createNoopMeter,
|
|
209
|
+
Gauge,
|
|
210
|
+
Histogram,
|
|
211
|
+
Meter,
|
|
212
|
+
MetricOptions,
|
|
213
|
+
metrics,
|
|
214
|
+
ObservableCounter,
|
|
215
|
+
ObservableGauge,
|
|
216
|
+
ObservableUpDownCounter,
|
|
217
|
+
UpDownCounter,
|
|
218
|
+
} from "@opentelemetry/api";
|
|
219
|
+
|
|
220
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
221
|
+
declare const MetricsMap: {
|
|
222
|
+
gauge: Gauge;
|
|
223
|
+
histogram: Histogram;
|
|
224
|
+
counter: Counter;
|
|
225
|
+
updowncounter: UpDownCounter;
|
|
226
|
+
"async-counter": ObservableCounter;
|
|
227
|
+
"async-updowncounter": ObservableUpDownCounter;
|
|
228
|
+
"async-gauge": ObservableGauge;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
type MetricType = keyof typeof MetricsMap;
|
|
232
|
+
|
|
233
|
+
const MetricsFactoryMap: {
|
|
234
|
+
[K in MetricType]: (
|
|
235
|
+
meter: Meter,
|
|
236
|
+
) => (name: string, options?: MetricOptions) => (typeof MetricsMap)[K];
|
|
237
|
+
} = {
|
|
238
|
+
gauge: (meter: Meter) => meter.createGauge,
|
|
239
|
+
histogram: (meter: Meter) => meter.createHistogram,
|
|
240
|
+
counter: (meter: Meter) => meter.createCounter,
|
|
241
|
+
updowncounter: (meter: Meter) => meter.createUpDownCounter,
|
|
242
|
+
"async-counter": (meter: Meter) => meter.createObservableCounter,
|
|
243
|
+
"async-updowncounter": (meter: Meter) => meter.createObservableUpDownCounter,
|
|
244
|
+
"async-gauge": (meter: Meter) => meter.createObservableGauge,
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
export interface MetricsParams {
|
|
248
|
+
metricName: string;
|
|
249
|
+
attributeName: string;
|
|
250
|
+
options?: MetricOptions;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function getMeter({ metricName, attributeName }: MetricsParams) {
|
|
254
|
+
let meter: Meter;
|
|
255
|
+
if (!metricName || !attributeName) {
|
|
256
|
+
console.error("Invaid metric configuration!");
|
|
257
|
+
meter = createNoopMeter();
|
|
258
|
+
} else {
|
|
259
|
+
meter = metrics.getMeter(`custom_metric.${metricName}`);
|
|
260
|
+
}
|
|
261
|
+
return meter;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export function getMetric<T extends MetricType>(
|
|
265
|
+
type: T,
|
|
266
|
+
p: MetricsParams,
|
|
267
|
+
): (typeof MetricsMap)[T] {
|
|
268
|
+
const meter = getMeter(p);
|
|
269
|
+
|
|
270
|
+
if (!MetricsFactoryMap[type]) {
|
|
271
|
+
throw new Error(`Unsupported metric type: ${type}`);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return MetricsFactoryMap[type](meter).bind(meter)(p.attributeName, p.options);
|
|
275
|
+
}
|
|
276
|
+
</pre></td></tr></table></pre>
|
|
277
|
+
|
|
278
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
279
|
+
</div><!-- /wrapper -->
|
|
280
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
281
|
+
Code coverage generated by
|
|
282
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
283
|
+
at 2025-01-28T15:28:22.401Z
|
|
284
|
+
</div>
|
|
285
|
+
<script src="../../prettify.js"></script>
|
|
286
|
+
<script>
|
|
287
|
+
window.onload = function () {
|
|
288
|
+
prettyPrint();
|
|
289
|
+
};
|
|
290
|
+
</script>
|
|
291
|
+
<script src="../../sorter.js"></script>
|
|
292
|
+
<script src="../../block-navigation.js"></script>
|
|
293
|
+
</body>
|
|
294
|
+
</html>
|
|
295
|
+
|
|
@@ -70,21 +70,18 @@
|
|
|
70
70
|
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
71
|
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
72
|
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
75
74
|
<span class="cline-any cline-neutral"> </span>
|
|
76
75
|
<span class="cline-any cline-neutral"> </span>
|
|
77
76
|
<span class="cline-any cline-neutral"> </span>
|
|
78
77
|
<span class="cline-any cline-neutral"> </span>
|
|
79
78
|
<span class="cline-any cline-neutral"> </span>
|
|
80
79
|
<span class="cline-any cline-neutral"> </span>
|
|
81
|
-
<span class="cline-any cline-neutral"> </span>
|
|
82
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { MetricReader } from "@opentelemetry/sdk-metrics";
|
|
83
|
-
import type { logs, tracing } from "@opentelemetry/sdk-node";
|
|
80
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { logs, tracing, metrics } from "@opentelemetry/sdk-node";
|
|
84
81
|
|
|
85
82
|
export type Exporters = {
|
|
86
83
|
traces: tracing.SpanExporter;
|
|
87
|
-
metrics: MetricReader;
|
|
84
|
+
metrics: metrics.MetricReader;
|
|
88
85
|
logs: logs.LogRecordProcessor[];
|
|
89
86
|
};
|
|
90
87
|
</pre></td></tr></table></pre>
|
|
@@ -94,7 +91,7 @@ export type Exporters = {
|
|
|
94
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
92
|
Code coverage generated by
|
|
96
93
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
97
|
-
at
|
|
94
|
+
at 2025-01-28T15:28:22.401Z
|
|
98
95
|
</div>
|
|
99
96
|
<script src="../../prettify.js"></script>
|
|
100
97
|
<script>
|
|
@@ -100,7 +100,7 @@ export const LogRecordProcessorMap: Record<
|
|
|
100
100
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
101
|
Code coverage generated by
|
|
102
102
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
103
|
-
at
|
|
103
|
+
at 2025-01-28T15:28:22.401Z
|
|
104
104
|
</div>
|
|
105
105
|
<script src="../../prettify.js"></script>
|
|
106
106
|
<script>
|