@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 CHANGED
@@ -4,20 +4,28 @@ Base utils for monitoring.
4
4
 
5
5
  Includes:
6
6
 
7
- * [Logger](./src/logger/README.md).
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
- Call `init()` function at the very bootstrap of the app.
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
- import { init } from '@codefresh-io/cf-telemetry';
21
-
22
- await init();
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. |
@@ -1,4 +1,4 @@
1
1
  export declare const globalConfig: {
2
2
  readonly serviceName: string;
3
- readonly serviceVersion: string | undefined;
3
+ readonly serviceVersion: string;
4
4
  };
@@ -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;CACnD,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"}
@@ -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
- exports.terminate = exports.init = void 0;
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. Should be called once as early as possible in the application lifecycle.
43
- * Initializaton of OpenTelemetry autoinstrumentation should be done separately
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 = async () => {
48
+ const init = () => {
47
49
  if (isInitialized)
48
50
  return;
49
- const logger = new logs.Logger('telemetry');
50
- logger.info('Initializing telemetry services');
51
- await Promise.all([
52
- prometheus.init(logger).catch(logger.error),
53
- profiles.init(logger).catch(logger.error),
54
- ]);
55
- isInitialized = true;
56
- logger.info('Telemetry services initialized');
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
- exports.terminate = terminate;
71
- //# sourceMappingURL=index.js.map
78
+ init();
79
+ process.on('SIGINT', terminate);
80
+ process.on('SIGTERM', terminate);
81
+ process.once('beforeExit', terminate);
82
+ //# sourceMappingURL=init.js.map
@@ -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,2 @@
1
+ import './init.js';
2
+ //# sourceMappingURL=init.mjs.map
@@ -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(DEFAULT_LABELS);
14
- if (config_1.config.useOpenMetrics) {
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
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;AAc/B,iBAdK,qBAAM,CAcL;AAbR,qCAAkC;AAElC,MAAM,cAAc,GAA2B,EAAE,CAAC;AAElD,MAAM,QAAQ,GAAG,qBAAM,CAAC,QAAQ,CAAC;AAU/B,4BAAQ;AATV,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAE1C,IAAI,eAAM,CAAC,cAAc,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,CAAC,qBAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,qBAAM,CAAC,QAAQ,CAAC,wBAA+B,CAAC,CAAC;AACpF,CAAC"}
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 useOpenMetrics: boolean;
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
- useOpenMetrics: process.env['CF_TELEMETRY_PROMETHEUS_USE_OPEN_METRICS'] === 'true',
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":";;;AAAa,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,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,KAAK,MAAM;CAC1E,CAAC"}
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"}
@@ -0,0 +1,3 @@
1
+ import type { Logger } from '../logs';
2
+ export declare const init: (logger: Logger) => void;
3
+ export declare const terminate: (logger: Logger) => Promise<void>;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const sdk_1 = require("./sdk");
4
- const logs_1 = require("../logs");
3
+ exports.terminate = exports.init = void 0;
5
4
  const config_1 = require("./config");
6
- const logger = new logs_1.Logger('telemetry:otel');
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
- const terminate = async () => {
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
- init();
33
- process.on('SIGTERM', terminate);
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"}
@@ -1,6 +1,7 @@
1
1
  export declare const config: {
2
2
  readonly enabled: boolean;
3
3
  readonly config: {
4
- tags: Record<string, string> | undefined;
4
+ appName: string;
5
+ tags: Record<string, string>;
5
6
  };
6
7
  };
@@ -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
- tags: process.env['CF_TELEMETRY_PYROSCOPE_TAGS']
8
- ? process.env['CF_TELEMETRY_PYROSCOPE_TAGS'].split(',').reduce((acc, pair) => {
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":";;;AAEa,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,KAAK,MAAM;IAChE,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;YAC9C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACzE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;oBAAE,OAAO,GAAG,CAAC;gBAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjB,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAA4B,CAAC;YAClC,CAAC,CAAC,SAAS;KACY;CACnB,CAAC"}
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"}
@@ -1,2 +1,3 @@
1
1
  import type { Logger } from '../logs';
2
- export declare const init: (logger: Logger) => Promise<void>;
2
+ export declare const init: (logger: Logger) => void;
3
+ export declare const terminate: (logger: Logger) => Promise<void>;
@@ -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 = async (logger) => {
9
+ const init = (logger) => {
10
10
  logger = logger.child('pyroscope');
11
- if (!config_1.config.enabled) {
12
- logger.info('Pyroscope is disabled. Set CF_TELEMETRY_PYROSCOPE_ENABLE=true to enable it');
13
- return;
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,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC1D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,CAAC,eAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,eAAM,CAAC,CAAC;IAChD,gBAAS,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAS,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACvC,CAAC,CAAC;AAZW,QAAA,IAAI,QAYf"}
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.22",
3
+ "version": "2.0.0-alpha.24",
4
4
  "exports": {
5
- ".": {
6
- "import": "./dist/public.mjs",
7
- "require": "./dist/public.js"
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"}
@@ -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
@@ -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
@@ -1,3 +0,0 @@
1
- // Public API (ESM)
2
- export * from './public.js';
3
- //# sourceMappingURL=public.mjs.map
@@ -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