@codefresh-io/cf-telemetry 2.0.0-alpha.22 → 2.0.0-alpha.24
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/README.md +14 -6
- package/dist/global-config.d.ts +1 -1
- package/dist/global-config.js +1 -1
- package/dist/global-config.js.map +1 -1
- package/dist/init.d.mts +1 -0
- package/dist/{index.js → init.js} +27 -16
- package/dist/init.js.map +1 -0
- package/dist/init.mjs +2 -0
- package/dist/init.mjs.map +1 -0
- package/dist/metrics/prometheus/client.js +3 -6
- package/dist/metrics/prometheus/client.js.map +1 -1
- package/dist/metrics/prometheus/config.d.ts +2 -1
- package/dist/metrics/prometheus/config.js +16 -1
- package/dist/metrics/prometheus/config.js.map +1 -1
- package/dist/otel/index.d.ts +3 -0
- package/dist/otel/{init.js → index.js} +9 -9
- package/dist/otel/index.js.map +1 -0
- package/dist/profiles/config.d.ts +2 -1
- package/dist/profiles/config.js +15 -9
- package/dist/profiles/config.js.map +1 -1
- package/dist/profiles/index.d.ts +2 -1
- package/dist/profiles/index.js +27 -10
- package/dist/profiles/index.js.map +1 -1
- package/package.json +4 -7
- package/dist/index.d.ts +0 -7
- package/dist/index.js.map +0 -1
- package/dist/otel/init.js.map +0 -1
- package/dist/public.d.mts +0 -1
- package/dist/public.d.ts +0 -1
- package/dist/public.js +0 -19
- package/dist/public.js.map +0 -1
- package/dist/public.mjs +0 -3
- package/dist/public.mjs.map +0 -1
- /package/dist/{otel/init.d.ts → init.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -4,20 +4,28 @@ Base utils for monitoring.
|
|
|
4
4
|
|
|
5
5
|
Includes:
|
|
6
6
|
|
|
7
|
-
* [
|
|
7
|
+
* [Logs](./src/logs/README.md).
|
|
8
|
+
* [MongoDB](./src/metrics/mongodb/README.md) client monitoring.
|
|
9
|
+
* [OpenTelemetry](./src/otel/README.md) auto instrumentation.
|
|
8
10
|
* [Prometheus](./src/metrics/prometheus/README.md) server and custom metrics.
|
|
9
|
-
* [MongoDB](./src//metrics/mongodb/README.md) client monitoring.
|
|
10
11
|
* [Pyroscope](./src/profiles/README.md) to profile CPU and memory.
|
|
11
12
|
|
|
12
13
|
## Usage
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
Add `import '@codefresh-io/cf-telemetry/init'` statement at the very beginning of the application lifecycle.
|
|
15
16
|
|
|
16
17
|
Please refer to the separate docs above for further configuration and usage details.
|
|
17
18
|
|
|
18
19
|
```TS
|
|
19
20
|
// index.ts
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
// ↓ Should be imported first
|
|
22
|
+
import '@codefresh-io/cf-telemetry/init'
|
|
23
|
+
// ↓ Keep one blank line below to prevent automatic import reordering
|
|
23
24
|
```
|
|
25
|
+
|
|
26
|
+
## Environment variables
|
|
27
|
+
|
|
28
|
+
| Variable | Required | Default value | Description |
|
|
29
|
+
|------------------------| -------- |-------------------------------------------------------------------|---------------------------------------------|
|
|
30
|
+
| `CF_TELEMETRY_SERVICE_NAME` | optional | `unknown_service:node` | Sets service name for OpenTelemetry and Pyroscope. |
|
|
31
|
+
| `CF_TELEMETRY_SERVICE_VERSION` | optional | `unknown` | Sets service version for OpenTelemetry and Pyroscope. |
|
package/dist/global-config.d.ts
CHANGED
package/dist/global-config.js
CHANGED
|
@@ -4,6 +4,6 @@ exports.globalConfig = void 0;
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
|
5
5
|
exports.globalConfig = {
|
|
6
6
|
serviceName: process.env['CF_TELEMETRY_SERVICE_NAME'] || 'unknown_service:node',
|
|
7
|
-
serviceVersion: process.env['CF_TELEMETRY_SERVICE_VERSION'],
|
|
7
|
+
serviceVersion: process.env['CF_TELEMETRY_SERVICE_VERSION'] || 'unknown',
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=global-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../src/global-config.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AACpD,QAAA,YAAY,GAAG;IAC1B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,sBAAsB;IAC/E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../src/global-config.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AACpD,QAAA,YAAY,GAAG;IAC1B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,sBAAsB;IAC/E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,SAAS;CAChE,CAAC"}
|
package/dist/init.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './init.js';
|
|
@@ -33,33 +33,41 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
|
|
36
|
+
// ↓ Should be imported first
|
|
37
|
+
const otel = __importStar(require("./otel"));
|
|
38
|
+
// ↑ Should be imported first
|
|
39
|
+
const global_config_1 = require("./global-config");
|
|
37
40
|
const logs = __importStar(require("./logs"));
|
|
38
41
|
const prometheus = __importStar(require("./metrics/prometheus"));
|
|
39
42
|
const profiles = __importStar(require("./profiles"));
|
|
40
43
|
let isInitialized = false;
|
|
41
44
|
/**
|
|
42
|
-
* Initializes telemetry services.
|
|
43
|
-
*
|
|
44
|
-
* by adding --require=@codefresh-io/cf-telemetry/otel/init to the node command.
|
|
45
|
+
* Initializes telemetry services.
|
|
46
|
+
* Should be called once as early as possible in the application lifecycle.
|
|
45
47
|
*/
|
|
46
|
-
const init =
|
|
48
|
+
const init = () => {
|
|
47
49
|
if (isInitialized)
|
|
48
50
|
return;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
try {
|
|
52
|
+
const logger = new logs.Logger('telemetry');
|
|
53
|
+
logger.info('Initializing telemetry services');
|
|
54
|
+
logger.debug('Telemetry configuration', global_config_1.globalConfig);
|
|
55
|
+
otel.init(logger);
|
|
56
|
+
profiles.init(logger);
|
|
57
|
+
prometheus.init(logger).catch(logger.error);
|
|
58
|
+
isInitialized = true;
|
|
59
|
+
logger.info('Telemetry services initialized');
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('Failed to initialize telemetry services', error);
|
|
63
|
+
}
|
|
57
64
|
};
|
|
58
|
-
exports.init = init;
|
|
59
65
|
const terminate = async () => {
|
|
60
66
|
const logger = new logs.Logger('telemetry');
|
|
61
67
|
try {
|
|
62
68
|
logger.info('Terminating telemetry services');
|
|
69
|
+
await otel.terminate(logger).catch(logger.error);
|
|
70
|
+
await profiles.terminate(logger).catch(logger.error);
|
|
63
71
|
isInitialized = false;
|
|
64
72
|
logger.info('Telemetry services terminated');
|
|
65
73
|
}
|
|
@@ -67,5 +75,8 @@ const terminate = async () => {
|
|
|
67
75
|
logger.error('Failed to terminate telemetry services', exception);
|
|
68
76
|
}
|
|
69
77
|
};
|
|
70
|
-
|
|
71
|
-
|
|
78
|
+
init();
|
|
79
|
+
process.on('SIGINT', terminate);
|
|
80
|
+
process.on('SIGTERM', terminate);
|
|
81
|
+
process.once('beforeExit', terminate);
|
|
82
|
+
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA6B;AAC7B,6CAA+B;AAC/B,6BAA6B;AAE7B,mDAA+C;AAC/C,6CAA+B;AAC/B,iEAAmD;AACnD,qDAAuC;AAEvC,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B;;;GAGG;AACH,MAAM,IAAI,GAAG,GAAS,EAAE;IACtB,IAAI,aAAa;QAAE,OAAO;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,4BAAY,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,aAAa,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,aAAa,GAAG,KAAK,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC;AAEP,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACjC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC"}
|
package/dist/init.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.mjs","sourceRoot":"","sources":["../src/init.mts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC"}
|
|
@@ -7,12 +7,9 @@ exports.register = exports.client = void 0;
|
|
|
7
7
|
const prom_client_1 = __importDefault(require("prom-client"));
|
|
8
8
|
exports.client = prom_client_1.default;
|
|
9
9
|
const config_1 = require("./config");
|
|
10
|
-
const DEFAULT_LABELS = {};
|
|
11
10
|
const register = prom_client_1.default.register;
|
|
12
11
|
exports.register = register;
|
|
13
|
-
register.setDefaultLabels(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
(prom_client_1.default.register).setContentType(prom_client_1.default.Registry.OPENMETRICS_CONTENT_TYPE);
|
|
17
|
-
}
|
|
12
|
+
register.setDefaultLabels(config_1.config.defaultLabels);
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
(prom_client_1.default.register).setContentType(config_1.config.contentType);
|
|
18
15
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAS/B,iBATK,qBAAM,CASL;AARR,qCAAkC;AAElC,MAAM,QAAQ,GAAG,qBAAM,CAAC,QAAQ,CAAC;AAO/B,4BAAQ;AANV,QAAQ,CAAC,gBAAgB,CAAC,eAAM,CAAC,aAAa,CAAC,CAAC;AAChD,8DAA8D;AAC9D,CAAC,qBAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,eAAM,CAAC,WAAkB,CAAC,CAAC"}
|
|
@@ -3,5 +3,6 @@ export declare const config: {
|
|
|
3
3
|
readonly shouldCollectProcessMetrics: boolean;
|
|
4
4
|
readonly host: string;
|
|
5
5
|
readonly port: number;
|
|
6
|
-
readonly
|
|
6
|
+
readonly contentType: "text/plain; version=0.0.4; charset=utf-8" | "application/openmetrics-text; version=1.0.0; charset=utf-8";
|
|
7
|
+
readonly defaultLabels: {};
|
|
7
8
|
};
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
|
+
const prom_client_1 = require("prom-client");
|
|
5
|
+
const getContentType = () => {
|
|
6
|
+
const ContentType = {
|
|
7
|
+
prometheus: prom_client_1.Registry.PROMETHEUS_CONTENT_TYPE,
|
|
8
|
+
openmetrics: prom_client_1.Registry.OPENMETRICS_CONTENT_TYPE,
|
|
9
|
+
};
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
const contentType = process.env['CF_TELEMETRY_PROMETHEUS_CONTENT_TYPE'] ?? ContentType.openmetrics;
|
|
12
|
+
const knownTypes = Object.keys(ContentType);
|
|
13
|
+
if (!knownTypes.includes(contentType)) {
|
|
14
|
+
throw new Error(`Invalid value in CF_TELEMETRY_PROMETHEUS_CONTENT_TYPE: "${contentType}". Allowed values: "${knownTypes.join('|')}"`);
|
|
15
|
+
}
|
|
16
|
+
return ContentType[contentType];
|
|
17
|
+
};
|
|
4
18
|
exports.config = {
|
|
5
19
|
enabled: process.env['CF_TELEMETRY_PROMETHEUS_ENABLE'] === 'true',
|
|
6
20
|
shouldCollectProcessMetrics: process.env['CF_TELEMETRY_PROMETHEUS_ENABLE_PROCESS_METRICS'] === 'true',
|
|
7
21
|
host: process.env['CF_TELEMETRY_PROMETHEUS_HOST'] ?? '0.0.0.0',
|
|
8
22
|
port: Number.parseInt(process.env['CF_TELEMETRY_PROMETHEUS_PORT'] ?? '9100', 10),
|
|
9
|
-
|
|
23
|
+
contentType: getContentType(),
|
|
24
|
+
defaultLabels: {},
|
|
10
25
|
};
|
|
11
26
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/config.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,sBAAQ,CAAC,uBAAuB;QAC5C,WAAW,EAAE,sBAAQ,CAAC,wBAAwB;KACtC,CAAC;IACX,8DAA8D;IAC9D,MAAM,WAAW,GAA6B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAQ,IAAI,WAAW,CAAC,WAAW,CAAC;IACpI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2DAA2D,WAAW,uBAAuB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxI,CAAC;IACD,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,KAAK,MAAM;IACjE,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,KAAK,MAAM;IACrG,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,SAAS;IAC9D,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;IAChF,WAAW,EAAE,cAAc,EAAE;IAC7B,aAAa,EAAE,EAAE;CACT,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
const logs_1 = require("../logs");
|
|
3
|
+
exports.terminate = exports.init = void 0;
|
|
5
4
|
const config_1 = require("./config");
|
|
6
|
-
const
|
|
7
|
-
const init = () => {
|
|
5
|
+
const sdk_1 = require("./sdk");
|
|
6
|
+
const init = (logger) => {
|
|
7
|
+
logger = logger.child('otel');
|
|
8
8
|
try {
|
|
9
9
|
if (!config_1.config.enabled) {
|
|
10
10
|
logger.info('OpenTelemetry is disabled. Set CF_TELEMETRY_OTEL_ENABLE=true to enable it');
|
|
@@ -19,7 +19,9 @@ const init = () => {
|
|
|
19
19
|
logger.error('Failed to initialize OpenTelemetry', exception);
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
exports.init = init;
|
|
23
|
+
const terminate = async (logger) => {
|
|
24
|
+
logger = logger.child('otel');
|
|
23
25
|
try {
|
|
24
26
|
logger.info('Terminating OpenTelemetry');
|
|
25
27
|
await sdk_1.sdk.shutdown();
|
|
@@ -29,7 +31,5 @@ const terminate = async () => {
|
|
|
29
31
|
logger.error('Failed to terminate OpenTelemetry', exception);
|
|
30
32
|
}
|
|
31
33
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
process.once('beforeExit', terminate);
|
|
35
|
-
//# sourceMappingURL=init.js.map
|
|
34
|
+
exports.terminate = terminate;
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otel/index.ts"],"names":[],"mappings":";;;AACA,qCAAkC;AAClC,+BAA4B;AAErB,MAAM,IAAI,GAAG,CAAC,MAAc,EAAQ,EAAE;IAC3C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,IAAI,CAAC,eAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,eAAM,CAAC,CAAC;QACpD,SAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,IAAI,QAcf;AAEK,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC/D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,SAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AATW,QAAA,SAAS,aASpB"}
|
package/dist/profiles/config.js
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
|
+
const global_config_1 = require("../global-config");
|
|
5
|
+
const getTags = () => {
|
|
6
|
+
const rawTags = process.env['CF_TELEMETRY_PYROSCOPE_TAGS'] ?? '';
|
|
7
|
+
return rawTags.split(',').reduce((acc, pair) => {
|
|
8
|
+
const [key, value] = pair.split('=');
|
|
9
|
+
if (!key || !value)
|
|
10
|
+
return acc;
|
|
11
|
+
acc[key] = value;
|
|
12
|
+
return acc;
|
|
13
|
+
}, {
|
|
14
|
+
service_version: global_config_1.globalConfig.serviceVersion,
|
|
15
|
+
});
|
|
16
|
+
};
|
|
4
17
|
exports.config = {
|
|
5
18
|
enabled: process.env['CF_TELEMETRY_PYROSCOPE_ENABLE'] === 'true',
|
|
6
19
|
config: {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const [key, value] = pair.split('=');
|
|
10
|
-
if (!key || !value)
|
|
11
|
-
return acc;
|
|
12
|
-
acc[key] = value;
|
|
13
|
-
return acc;
|
|
14
|
-
}, {})
|
|
15
|
-
: undefined,
|
|
20
|
+
appName: process.env['PYROSCOPE_APPLICATION_NAME'] ?? global_config_1.globalConfig.serviceName,
|
|
21
|
+
tags: getTags(),
|
|
16
22
|
},
|
|
17
23
|
};
|
|
18
24
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/profiles/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/profiles/config.ts"],"names":[],"mappings":";;;AACA,oDAAgD;AAEhD,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC;IACjE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE;QACD,eAAe,EAAE,4BAAY,CAAC,cAAc;KACnB,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,KAAK,MAAM;IAChE,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,4BAAY,CAAC,WAAW;QAC9E,IAAI,EAAE,OAAO,EAAE;KACU;CACnB,CAAC"}
|
package/dist/profiles/index.d.ts
CHANGED
package/dist/profiles/index.js
CHANGED
|
@@ -3,20 +3,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.init = void 0;
|
|
6
|
+
exports.terminate = exports.init = void 0;
|
|
7
7
|
const nodejs_1 = __importDefault(require("@pyroscope/nodejs"));
|
|
8
8
|
const config_1 = require("./config");
|
|
9
|
-
const init =
|
|
9
|
+
const init = (logger) => {
|
|
10
10
|
logger = logger.child('pyroscope');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
try {
|
|
12
|
+
if (!config_1.config.enabled) {
|
|
13
|
+
logger.info('Pyroscope is disabled. Set CF_TELEMETRY_PYROSCOPE_ENABLE=true to enable it');
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
logger.info('Initializing Pyroscope');
|
|
17
|
+
logger.debug('Pyroscope configuration', config_1.config);
|
|
18
|
+
nodejs_1.default.init(config_1.config.config);
|
|
19
|
+
nodejs_1.default.start();
|
|
20
|
+
logger.info('Pyroscope initialized');
|
|
21
|
+
}
|
|
22
|
+
catch (exception) {
|
|
23
|
+
logger.error('Failed to initialize Pyroscope', exception);
|
|
14
24
|
}
|
|
15
|
-
logger.info('Initializing Pyroscope');
|
|
16
|
-
logger.debug('Pyroscope configuration', config_1.config);
|
|
17
|
-
nodejs_1.default.init(config_1.config.config);
|
|
18
|
-
nodejs_1.default.start();
|
|
19
|
-
logger.info('Pyroscope initialized');
|
|
20
25
|
};
|
|
21
26
|
exports.init = init;
|
|
27
|
+
const terminate = async (logger) => {
|
|
28
|
+
logger = logger.child('pyroscope');
|
|
29
|
+
try {
|
|
30
|
+
logger.info('Terminating Pyroscope');
|
|
31
|
+
await nodejs_1.default.stop();
|
|
32
|
+
logger.info('Pyroscope terminated');
|
|
33
|
+
}
|
|
34
|
+
catch (exception) {
|
|
35
|
+
logger.error('Failed to terminate Pyroscope', exception);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.terminate = terminate;
|
|
22
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAA0C;AAE1C,qCAAkC;AAE3B,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAA0C;AAE1C,qCAAkC;AAE3B,MAAM,IAAI,GAAG,CAAC,MAAc,EAAQ,EAAE;IAC3C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,CAAC,eAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,eAAM,CAAC,CAAC;QAChD,gBAAS,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,gBAAS,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,IAAI,QAgBf;AAEK,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC/D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,gBAAS,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AATW,QAAA,SAAS,aASpB"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codefresh-io/cf-telemetry",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.24",
|
|
4
4
|
"exports": {
|
|
5
|
-
"
|
|
6
|
-
"import": "./dist/
|
|
7
|
-
"require": "./dist/
|
|
5
|
+
"./init": {
|
|
6
|
+
"import": "./dist/init.mjs",
|
|
7
|
+
"require": "./dist/init.js"
|
|
8
8
|
},
|
|
9
9
|
"./logs": {
|
|
10
10
|
"import": "./dist/logs/public.mjs",
|
|
@@ -29,9 +29,6 @@
|
|
|
29
29
|
"./otel": {
|
|
30
30
|
"import": "./dist/otel/public.mjs",
|
|
31
31
|
"require": "./dist/otel/public.js"
|
|
32
|
-
},
|
|
33
|
-
"./otel/init": {
|
|
34
|
-
"require": "./dist/otel/init.js"
|
|
35
32
|
}
|
|
36
33
|
},
|
|
37
34
|
"files": [
|
package/dist/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Initializes telemetry services. Should be called once as early as possible in the application lifecycle.
|
|
3
|
-
* Initializaton of OpenTelemetry autoinstrumentation should be done separately
|
|
4
|
-
* by adding --require=@codefresh-io/cf-telemetry/otel/init to the node command.
|
|
5
|
-
*/
|
|
6
|
-
export declare const init: () => Promise<void>;
|
|
7
|
-
export declare const terminate: () => Promise<void>;
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,iEAAmD;AACnD,qDAAuC;AAEvC,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B;;;;GAIG;AACI,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IAC5C,IAAI,aAAa;QAAE,OAAO;IAE1B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC/C,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KAC1C,CAAC,CAAC;IACH,aAAa,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC,CAAC;AAXW,QAAA,IAAI,QAWf;AAEK,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;IACjD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,aAAa,GAAG,KAAK,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AATW,QAAA,SAAS,aASpB"}
|
package/dist/otel/init.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/otel/init.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAE5B,kCAAiC;AACjC,qCAAkC;AAElC,MAAM,MAAM,GAAG,IAAI,aAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5C,MAAM,IAAI,GAAG,GAAS,EAAE;IACtB,IAAI,CAAC;QACH,IAAI,CAAC,eAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,eAAM,CAAC,CAAC;QACpD,SAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,SAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC;AAEP,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACjC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC"}
|
package/dist/public.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './public.js';
|
package/dist/public.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './index';
|
package/dist/public.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Public API (CommonJS)
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
__exportStar(require("./index"), exports);
|
|
19
|
-
//# sourceMappingURL=public.js.map
|
package/dist/public.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;;;;;;;;;;;;;;AAExB,0CAAwB"}
|
package/dist/public.mjs
DELETED
package/dist/public.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public.mjs","sourceRoot":"","sources":["../src/public.mts"],"names":[],"mappings":"AAAA,mBAAmB;AAEnB,cAAc,aAAa,CAAC"}
|
|
File without changes
|