@openapi-typescript-infra/service 4.16.0 → 4.18.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.
- package/.eslintrc.js +1 -1
- package/.prettierrc.js +1 -1
- package/build/telemetry/index.d.ts +1 -1
- package/build/telemetry/index.js +7 -8
- package/build/telemetry/index.js.map +1 -1
- package/build/telemetry/instrumentations.d.ts +4 -4
- package/build/telemetry/instrumentations.js +14 -7
- package/build/telemetry/instrumentations.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +29 -34
- package/src/telemetry/index.ts +8 -9
- package/src/telemetry/instrumentations.ts +17 -7
- package/vitest.config.ts +1 -1
package/.eslintrc.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Instead, edit the coconfig.js or coconfig.ts file in your project root.
|
|
4
4
|
*
|
|
5
5
|
* See https://github.com/gas-buddy/coconfig for more information.
|
|
6
|
-
* @version coconfig@1.
|
|
6
|
+
* @version coconfig@1.5.2
|
|
7
7
|
*/
|
|
8
8
|
const configModule = require('@openapi-typescript-infra/coconfig');
|
|
9
9
|
|
package/.prettierrc.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Instead, edit the coconfig.js or coconfig.ts file in your project root.
|
|
4
4
|
*
|
|
5
5
|
* See https://github.com/gas-buddy/coconfig for more information.
|
|
6
|
-
* @version coconfig@1.
|
|
6
|
+
* @version coconfig@1.5.2
|
|
7
7
|
*/
|
|
8
8
|
const configModule = require('@openapi-typescript-infra/coconfig');
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ import type { ConfigurationSchema } from '../config/schema';
|
|
|
11
11
|
* In addition, since we have to load it right away before configuration
|
|
12
12
|
* is available, we can't use configuration to decide anything.
|
|
13
13
|
*/
|
|
14
|
-
export declare function startGlobalTelemetry(serviceName: string): void
|
|
14
|
+
export declare function startGlobalTelemetry(serviceName: string): Promise<void>;
|
|
15
15
|
export declare function getGlobalPrometheusExporter(): PrometheusExporter | undefined;
|
|
16
16
|
export declare function shutdownGlobalTelemetry(): Promise<void>;
|
|
17
17
|
export declare function startWithTelemetry<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(options: DelayLoadServiceStartOptions): Promise<{
|
package/build/telemetry/index.js
CHANGED
|
@@ -24,14 +24,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.startWithTelemetry = exports.shutdownGlobalTelemetry = exports.getGlobalPrometheusExporter = exports.startGlobalTelemetry = void 0;
|
|
27
|
-
const api_1 = require("@opentelemetry/api");
|
|
28
27
|
const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-proto");
|
|
29
28
|
const opentelemetry = __importStar(require("@opentelemetry/sdk-node"));
|
|
30
29
|
const exporter_prometheus_1 = require("@opentelemetry/exporter-prometheus");
|
|
31
30
|
const instrumentations_1 = require("./instrumentations");
|
|
32
31
|
const DummyExporter_1 = require("./DummyExporter");
|
|
33
32
|
// For troubleshooting, set the log level to DiagLogLevel.DEBUG
|
|
34
|
-
|
|
33
|
+
opentelemetry.api.diag.setLogger(new (opentelemetry.api.DiagConsoleLogger)(), opentelemetry.api.DiagLogLevel.INFO);
|
|
35
34
|
function getExporter() {
|
|
36
35
|
if (!process.env.DISABLE_OLTP_EXPORTER &&
|
|
37
36
|
(['production', 'staging'].includes(process.env.APP_ENV || process.env.NODE_ENV || '') ||
|
|
@@ -55,16 +54,17 @@ let telemetrySdk;
|
|
|
55
54
|
* In addition, since we have to load it right away before configuration
|
|
56
55
|
* is available, we can't use configuration to decide anything.
|
|
57
56
|
*/
|
|
58
|
-
function startGlobalTelemetry(serviceName) {
|
|
57
|
+
async function startGlobalTelemetry(serviceName) {
|
|
59
58
|
if (!prometheusExporter) {
|
|
60
59
|
prometheusExporter = new exporter_prometheus_1.PrometheusExporter({ preventServerStart: true });
|
|
60
|
+
const instrumentations = (0, instrumentations_1.getAutoInstrumentations)();
|
|
61
61
|
telemetrySdk = new opentelemetry.NodeSDK({
|
|
62
62
|
serviceName,
|
|
63
|
-
autoDetectResources:
|
|
63
|
+
autoDetectResources: false,
|
|
64
64
|
traceExporter: getExporter(),
|
|
65
|
-
|
|
65
|
+
resource: await (0, instrumentations_1.getResource)(),
|
|
66
66
|
metricReader: prometheusExporter,
|
|
67
|
-
instrumentations
|
|
67
|
+
instrumentations,
|
|
68
68
|
views: [
|
|
69
69
|
new opentelemetry.metrics.View({
|
|
70
70
|
instrumentName: 'http_request_duration_seconds',
|
|
@@ -82,14 +82,13 @@ function getGlobalPrometheusExporter() {
|
|
|
82
82
|
}
|
|
83
83
|
exports.getGlobalPrometheusExporter = getGlobalPrometheusExporter;
|
|
84
84
|
async function shutdownGlobalTelemetry() {
|
|
85
|
-
await prometheusExporter?.shutdown();
|
|
86
85
|
await telemetrySdk?.shutdown();
|
|
87
86
|
telemetrySdk = undefined;
|
|
88
87
|
prometheusExporter = undefined;
|
|
89
88
|
}
|
|
90
89
|
exports.shutdownGlobalTelemetry = shutdownGlobalTelemetry;
|
|
91
90
|
async function startWithTelemetry(options) {
|
|
92
|
-
startGlobalTelemetry(options.name);
|
|
91
|
+
await startGlobalTelemetry(options.name);
|
|
93
92
|
// eslint-disable-next-line import/no-unresolved, @typescript-eslint/no-var-requires
|
|
94
93
|
const { startApp, listen } = require('../express-app/app.js');
|
|
95
94
|
// eslint-disable-next-line import/no-dynamic-require, global-require, @typescript-eslint/no-var-requires
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { Instrumentation } from '@opentelemetry/instrumentation';
|
|
2
2
|
import { DnsInstrumentation } from '@opentelemetry/instrumentation-dns';
|
|
3
3
|
import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express';
|
|
4
|
-
import {
|
|
4
|
+
import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';
|
|
5
5
|
import { GenericPoolInstrumentation } from '@opentelemetry/instrumentation-generic-pool';
|
|
6
6
|
import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
|
|
7
7
|
import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';
|
|
8
8
|
import { NetInstrumentation } from '@opentelemetry/instrumentation-net';
|
|
9
9
|
import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';
|
|
10
10
|
import { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';
|
|
11
|
-
import {
|
|
11
|
+
import { Resource } from '@opentelemetry/resources';
|
|
12
12
|
declare const InstrumentationMap: {
|
|
13
13
|
'@opentelemetry/instrumentation-http': typeof HttpInstrumentation;
|
|
14
14
|
'@opentelemetry/instrumentation-dns': typeof DnsInstrumentation;
|
|
15
15
|
'@opentelemetry/instrumentation-express': typeof ExpressInstrumentation;
|
|
16
|
-
'opentelemetry
|
|
16
|
+
'@opentelemetry/instrumentation-undici': typeof UndiciInstrumentation;
|
|
17
17
|
'@opentelemetry/instrumentation-generic-pool': typeof GenericPoolInstrumentation;
|
|
18
18
|
'@opentelemetry/instrumentation-ioredis': typeof IORedisInstrumentation;
|
|
19
19
|
'@opentelemetry/instrumentation-net': typeof NetInstrumentation;
|
|
@@ -25,5 +25,5 @@ export type InstrumentationConfigMap = {
|
|
|
25
25
|
[Name in keyof typeof InstrumentationMap]?: ConfigArg<(typeof InstrumentationMap)[Name]>;
|
|
26
26
|
};
|
|
27
27
|
export declare function getAutoInstrumentations(inputConfigs?: InstrumentationConfigMap): Instrumentation[];
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function getResource(): Promise<Resource>;
|
|
29
29
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getResource = exports.getAutoInstrumentations = void 0;
|
|
4
4
|
const instrumentation_dns_1 = require("@opentelemetry/instrumentation-dns");
|
|
5
5
|
const instrumentation_express_1 = require("@opentelemetry/instrumentation-express");
|
|
6
|
-
const
|
|
6
|
+
const instrumentation_undici_1 = require("@opentelemetry/instrumentation-undici");
|
|
7
7
|
const instrumentation_generic_pool_1 = require("@opentelemetry/instrumentation-generic-pool");
|
|
8
8
|
const instrumentation_http_1 = require("@opentelemetry/instrumentation-http");
|
|
9
9
|
const instrumentation_ioredis_1 = require("@opentelemetry/instrumentation-ioredis");
|
|
@@ -17,7 +17,7 @@ const InstrumentationMap = {
|
|
|
17
17
|
'@opentelemetry/instrumentation-http': instrumentation_http_1.HttpInstrumentation,
|
|
18
18
|
'@opentelemetry/instrumentation-dns': instrumentation_dns_1.DnsInstrumentation,
|
|
19
19
|
'@opentelemetry/instrumentation-express': instrumentation_express_1.ExpressInstrumentation,
|
|
20
|
-
'opentelemetry
|
|
20
|
+
'@opentelemetry/instrumentation-undici': instrumentation_undici_1.UndiciInstrumentation,
|
|
21
21
|
'@opentelemetry/instrumentation-generic-pool': instrumentation_generic_pool_1.GenericPoolInstrumentation,
|
|
22
22
|
'@opentelemetry/instrumentation-ioredis': instrumentation_ioredis_1.IORedisInstrumentation,
|
|
23
23
|
'@opentelemetry/instrumentation-net': instrumentation_net_1.NetInstrumentation,
|
|
@@ -43,15 +43,22 @@ function getAutoInstrumentations(inputConfigs = {}) {
|
|
|
43
43
|
.filter((i) => !!i);
|
|
44
44
|
}
|
|
45
45
|
exports.getAutoInstrumentations = getAutoInstrumentations;
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
// Async function to get combined resources
|
|
47
|
+
async function getResource() {
|
|
48
|
+
const syncDetectors = [
|
|
49
49
|
resources_1.envDetectorSync,
|
|
50
50
|
resources_1.hostDetectorSync,
|
|
51
51
|
resources_1.osDetectorSync,
|
|
52
52
|
resources_1.processDetectorSync,
|
|
53
|
+
];
|
|
54
|
+
const asyncDetectors = [
|
|
55
|
+
resource_detector_container_1.containerDetector,
|
|
53
56
|
resource_detector_gcp_1.gcpDetector,
|
|
54
57
|
];
|
|
58
|
+
const asyncResources = await (0, resources_1.detectResources)({ detectors: asyncDetectors });
|
|
59
|
+
const syncResources = (0, resources_1.detectResourcesSync)({ detectors: syncDetectors });
|
|
60
|
+
// Combine async and sync resources
|
|
61
|
+
return syncResources.merge(asyncResources);
|
|
55
62
|
}
|
|
56
|
-
exports.
|
|
63
|
+
exports.getResource = getResource;
|
|
57
64
|
//# sourceMappingURL=instrumentations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentations.js","sourceRoot":"","sources":["../../src/telemetry/instrumentations.ts"],"names":[],"mappings":";;;AACA,4EAAwE;AACxE,oFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"instrumentations.js","sourceRoot":"","sources":["../../src/telemetry/instrumentations.ts"],"names":[],"mappings":";;;AACA,4EAAwE;AACxE,oFAAgF;AAChF,kFAA8E;AAC9E,8FAAyF;AACzF,8EAA0E;AAC1E,oFAAgF;AAChF,4EAAwE;AACxE,0EAAsE;AACtE,8EAA0E;AAC1E,4FAA+E;AAC/E,gFAAmE;AACnE,wDAQkC;AAElC,MAAM,kBAAkB,GAAG;IACzB,qCAAqC,EAAE,0CAAmB;IAC1D,oCAAoC,EAAE,wCAAkB;IACxD,wCAAwC,EAAE,gDAAsB;IAChE,uCAAuC,EAAE,8CAAqB;IAC9D,6CAA6C,EAAE,yDAA0B;IACzE,wCAAwC,EAAE,gDAAsB;IAChE,oCAAoC,EAAE,wCAAkB;IACxD,mCAAmC,EAAE,sCAAiB;IACtD,qCAAqC,EAAE,0CAAmB;CAC3D,CAAC;AAQF,SAAgB,uBAAuB,CACrC,eAAyC,EAAE;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAA2C,CAAC;IACvF,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,qDAAqD;QACrD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAsB,CAAC;AAC7C,CAAC;AAnBD,0DAmBC;AAED,2CAA2C;AACpC,KAAK,UAAU,WAAW;IAC/B,MAAM,aAAa,GAAG;QACpB,2BAAe;QACf,4BAAgB;QAChB,0BAAc;QACd,+BAAmB;KACpB,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,+CAAiB;QACjB,mCAAW;KACZ,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,IAAA,2BAAe,EAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,IAAA,+BAAmB,EAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IAExE,mCAAmC;IACnC,OAAO,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC;AAjBD,kCAiBC"}
|