@codefresh-io/cf-telemetry 1.0.3 → 2.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/global-config.d.ts +4 -0
  2. package/dist/global-config.js +8 -0
  3. package/dist/global-config.js.map +1 -0
  4. package/dist/index.d.mts +1 -0
  5. package/dist/index.d.ts +6 -12
  6. package/dist/index.js +32 -17
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.mjs +2 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/init.d.mts +1 -0
  11. package/dist/init.mjs +5 -0
  12. package/dist/init.mjs.map +1 -0
  13. package/dist/{logger → logs}/config.d.ts +4 -0
  14. package/dist/{logger → logs}/config.js +2 -0
  15. package/dist/logs/config.js.map +1 -0
  16. package/dist/logs/index.d.ts +2 -0
  17. package/dist/logs/index.js +8 -0
  18. package/dist/logs/index.js.map +1 -0
  19. package/dist/logs/logger.d.ts +61 -0
  20. package/dist/logs/logger.js +97 -0
  21. package/dist/logs/logger.js.map +1 -0
  22. package/dist/logs/metadata-storage.d.ts +3 -0
  23. package/dist/logs/metadata-storage.js +6 -0
  24. package/dist/logs/metadata-storage.js.map +1 -0
  25. package/dist/logs/public.d.mts +1 -0
  26. package/dist/logs/public.d.ts +1 -0
  27. package/dist/logs/public.js +8 -0
  28. package/dist/logs/public.js.map +1 -0
  29. package/dist/logs/public.mjs +3 -0
  30. package/dist/logs/public.mjs.map +1 -0
  31. package/dist/logs/run-in-context.d.ts +9 -0
  32. package/dist/logs/run-in-context.js +21 -0
  33. package/dist/logs/run-in-context.js.map +1 -0
  34. package/dist/logs/types.d.ts +81 -0
  35. package/dist/{logger → logs}/types.js +2 -0
  36. package/dist/logs/types.js.map +1 -0
  37. package/dist/metrics/mongodb/monitor-mongodb-client.js +2 -2
  38. package/dist/metrics/mongodb/monitor-mongodb-client.js.map +1 -1
  39. package/dist/metrics/mongodb/public.d.mts +1 -0
  40. package/dist/metrics/mongodb/public.d.ts +1 -0
  41. package/dist/metrics/mongodb/{index.js → public.js} +2 -1
  42. package/dist/metrics/mongodb/public.js.map +1 -0
  43. package/dist/metrics/mongodb/public.mjs +3 -0
  44. package/dist/metrics/mongodb/public.mjs.map +1 -0
  45. package/dist/metrics/prometheus/index.d.ts +1 -1
  46. package/dist/metrics/prometheus/index.js +2 -2
  47. package/dist/metrics/prometheus/index.js.map +1 -1
  48. package/dist/metrics/prometheus/init-prometheus.d.ts +2 -2
  49. package/dist/metrics/prometheus/init-prometheus.js +11 -10
  50. package/dist/metrics/prometheus/init-prometheus.js.map +1 -1
  51. package/dist/metrics/prometheus/public.d.mts +1 -0
  52. package/dist/metrics/prometheus/public.d.ts +2 -0
  53. package/dist/metrics/prometheus/public.js +42 -0
  54. package/dist/metrics/prometheus/public.js.map +1 -0
  55. package/dist/metrics/prometheus/public.mjs +3 -0
  56. package/dist/metrics/prometheus/public.mjs.map +1 -0
  57. package/dist/otel/config.d.ts +3 -0
  58. package/dist/otel/config.js +7 -0
  59. package/dist/otel/config.js.map +1 -0
  60. package/dist/otel/index.d.ts +3 -0
  61. package/dist/otel/index.js +35 -0
  62. package/dist/otel/index.js.map +1 -0
  63. package/dist/otel/public.d.mts +1 -0
  64. package/dist/otel/public.d.ts +1 -0
  65. package/dist/otel/public.js +39 -0
  66. package/dist/otel/public.js.map +1 -0
  67. package/dist/otel/public.mjs +3 -0
  68. package/dist/otel/public.mjs.map +1 -0
  69. package/dist/otel/sdk.d.ts +2 -0
  70. package/dist/otel/sdk.js +41 -0
  71. package/dist/otel/sdk.js.map +1 -0
  72. package/dist/profiles/index.d.ts +2 -2
  73. package/dist/profiles/index.js +5 -4
  74. package/dist/profiles/index.js.map +1 -1
  75. package/package.json +40 -15
  76. package/dist/logger/config.js.map +0 -1
  77. package/dist/logger/index.d.ts +0 -1
  78. package/dist/logger/index.js +0 -6
  79. package/dist/logger/index.js.map +0 -1
  80. package/dist/logger/logger.d.ts +0 -90
  81. package/dist/logger/logger.js +0 -123
  82. package/dist/logger/logger.js.map +0 -1
  83. package/dist/logger/types.d.ts +0 -30
  84. package/dist/logger/types.js.map +0 -1
  85. package/dist/metrics/mongodb/index.d.ts +0 -1
  86. package/dist/metrics/mongodb/index.js.map +0 -1
@@ -3,19 +3,20 @@ 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.initPrometheus = void 0;
6
+ exports.init = void 0;
7
7
  const fastify_1 = __importDefault(require("fastify"));
8
8
  const client_1 = require("./client");
9
9
  const config_1 = require("./config");
10
- const initPrometheus = async (logger) => {
10
+ const init = async (logger) => {
11
11
  logger = logger.child('prometheus');
12
- if (config_1.config.enabled === false) {
13
- logger.info('Prometheus server is disabled. Set CF_TELEMETRY_PROMETHEUS_ENABLE=true to enable it');
14
- return;
15
- }
16
- ;
17
12
  try {
18
- logger.info({ config: config_1.config }, 'Initializing Prometheus');
13
+ if (config_1.config.enabled === false) {
14
+ logger.info('Prometheus server is disabled. Set CF_TELEMETRY_PROMETHEUS_ENABLE=true to enable it');
15
+ return;
16
+ }
17
+ ;
18
+ logger.info('Initializing Prometheus');
19
+ logger.debug('Prometheus configuration', config_1.config);
19
20
  if (config_1.config.shouldCollectProcessMetrics)
20
21
  client_1.client.collectDefaultMetrics();
21
22
  const metricsServer = (0, fastify_1.default)();
@@ -31,8 +32,8 @@ const initPrometheus = async (logger) => {
31
32
  logger.info('Prometheus initialized');
32
33
  }
33
34
  catch (exception) {
34
- logger.error(exception, 'Failed to initialize Prometheus');
35
+ logger.error('Failed to initialize Prometheus', exception);
35
36
  }
36
37
  };
37
- exports.initPrometheus = initPrometheus;
38
+ exports.init = init;
38
39
  //# sourceMappingURL=init-prometheus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-prometheus.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/init-prometheus.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,qCAA4C;AAC5C,qCAAkC;AAE3B,MAAM,cAAc,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IACpE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,eAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAAA,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAN,eAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACnD,IAAI,eAAM,CAAC,2BAA2B;YAAE,eAAM,CAAC,qBAAqB,EAAE,CAAC;QACvE,MAAM,aAAa,GAAG,IAAA,iBAAO,GAAE,CAAC;QAChC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtD,KAAK,CAAC,IAAI,CAAC,iBAAQ,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,iBAAQ,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;YACzC,IAAI,EAAE,eAAM,CAAC,IAAI;YACjB,IAAI,EAAE,eAAM,CAAC,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,cAAc,kBAwBzB"}
1
+ {"version":3,"file":"init-prometheus.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/init-prometheus.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,qCAA4C;AAC5C,qCAAkC;AAE3B,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC1D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,eAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;YACnG,OAAO;QACT,CAAC;QAAA,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,eAAM,CAAC,CAAC;QACjD,IAAI,eAAM,CAAC,2BAA2B;YAAE,eAAM,CAAC,qBAAqB,EAAE,CAAC;QACvE,MAAM,aAAa,GAAG,IAAA,iBAAO,GAAE,CAAC;QAChC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtD,KAAK,CAAC,IAAI,CAAC,iBAAQ,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,iBAAQ,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;YACzC,IAAI,EAAE,eAAM,CAAC,IAAI;YACjB,IAAI,EAAE,eAAM,CAAC,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,IAAI,QAwBf"}
@@ -0,0 +1 @@
1
+ export { client, metrics, register, } from './public.js';
@@ -0,0 +1,2 @@
1
+ export { client, register } from './client';
2
+ export * as metrics from './metrics';
@@ -0,0 +1,42 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.metrics = exports.register = exports.client = void 0;
38
+ var client_1 = require("./client");
39
+ Object.defineProperty(exports, "client", { enumerable: true, get: function () { return client_1.client; } });
40
+ Object.defineProperty(exports, "register", { enumerable: true, get: function () { return client_1.register; } });
41
+ exports.metrics = __importStar(require("./metrics"));
42
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/metrics/prometheus/public.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExB,mCAA4C;AAAnC,gGAAA,MAAM,OAAA;AAAE,kGAAA,QAAQ,OAAA;AACzB,qDAAqC"}
@@ -0,0 +1,3 @@
1
+ // Public API (ESM)
2
+ export { client, metrics, register, } from './public.js';
3
+ //# sourceMappingURL=public.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.mjs","sourceRoot":"","sources":["../../../src/metrics/prometheus/public.mts"],"names":[],"mappings":"AAAA,mBAAmB;AAEnB,OAAO,EACL,MAAM,EACN,OAAO,EACP,QAAQ,GACT,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const config: {
2
+ readonly enabled: boolean;
3
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.config = {
5
+ enabled: process.env['CF_TELEMETRY_OTEL_ENABLE'] === 'true',
6
+ };
7
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/otel/config.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,KAAK,MAAM;CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Logger } from '../logs';
2
+ export declare const init: (logger: Logger) => Promise<void>;
3
+ export declare const terminate: (logger: Logger) => Promise<void>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.terminate = exports.init = void 0;
4
+ const config_1 = require("./config");
5
+ const sdk_1 = require("./sdk");
6
+ const init = async (logger) => {
7
+ logger = logger.child('otel');
8
+ try {
9
+ if (!config_1.config.enabled) {
10
+ logger.info('OpenTelemetry is disabled. Set CF_TELEMETRY_OTEL_ENABLE=true to enable it');
11
+ return;
12
+ }
13
+ logger.info('Initializing OpenTelemetry');
14
+ logger.debug('OpenTelemetry configuration', config_1.config);
15
+ sdk_1.sdk.start();
16
+ logger.info('OpenTelemetry initialized');
17
+ }
18
+ catch (exception) {
19
+ logger.error('Failed to initialize OpenTelemetry', exception);
20
+ }
21
+ };
22
+ exports.init = init;
23
+ const terminate = async (logger) => {
24
+ logger = logger.child('otel');
25
+ try {
26
+ logger.info('Terminating OpenTelemetry');
27
+ await sdk_1.sdk.shutdown();
28
+ logger.info('OpenTelemetry terminated');
29
+ }
30
+ catch (exception) {
31
+ logger.error('Failed to terminate OpenTelemetry', exception);
32
+ }
33
+ };
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,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC1D,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"}
@@ -0,0 +1 @@
1
+ export { api, } from './public.js';
@@ -0,0 +1 @@
1
+ export * as api from '@opentelemetry/api';
@@ -0,0 +1,39 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.api = void 0;
38
+ exports.api = __importStar(require("@opentelemetry/api"));
39
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/otel/public.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExB,0DAA0C"}
@@ -0,0 +1,3 @@
1
+ // Public API (ESM)
2
+ export { api, } from './public.js';
3
+ //# sourceMappingURL=public.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.mjs","sourceRoot":"","sources":["../../src/otel/public.mts"],"names":[],"mappings":"AAAA,mBAAmB;AAEnB,OAAO,EACL,GAAG,GACJ,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { NodeSDK } from '@opentelemetry/sdk-node';
2
+ export declare const sdk: NodeSDK;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sdk = void 0;
4
+ const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
5
+ const baggage_span_processor_1 = require("@opentelemetry/baggage-span-processor");
6
+ const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
7
+ const core_1 = require("@opentelemetry/core");
8
+ const exporter_prometheus_1 = require("@opentelemetry/exporter-prometheus");
9
+ const exporter_trace_otlp_grpc_1 = require("@opentelemetry/exporter-trace-otlp-grpc");
10
+ const propagator_b3_1 = require("@opentelemetry/propagator-b3");
11
+ const resources_1 = require("@opentelemetry/resources");
12
+ const sdk_node_1 = require("@opentelemetry/sdk-node");
13
+ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
14
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
15
+ const global_config_1 = require("../global-config");
16
+ exports.sdk = new sdk_node_1.NodeSDK({
17
+ serviceName: global_config_1.globalConfig.serviceName,
18
+ resource: new resources_1.Resource({
19
+ [semantic_conventions_1.ATTR_SERVICE_NAME]: global_config_1.globalConfig.serviceName,
20
+ [semantic_conventions_1.ATTR_SERVICE_VERSION]: global_config_1.globalConfig.serviceVersion,
21
+ }),
22
+ metricReader: new exporter_prometheus_1.PrometheusExporter(),
23
+ spanProcessors: [
24
+ new sdk_trace_base_1.BatchSpanProcessor(new exporter_trace_otlp_grpc_1.OTLPTraceExporter()),
25
+ // It copies baggage info from parent span to child span
26
+ new baggage_span_processor_1.BaggageSpanProcessor(baggage_span_processor_1.ALLOW_ALL_BAGGAGE_KEYS),
27
+ ],
28
+ contextManager: new context_async_hooks_1.AsyncLocalStorageContextManager(),
29
+ textMapPropagator: new core_1.CompositePropagator({
30
+ propagators: [
31
+ new core_1.W3CTraceContextPropagator(),
32
+ new core_1.W3CBaggagePropagator(),
33
+ new propagator_b3_1.B3Propagator(),
34
+ new propagator_b3_1.B3Propagator({
35
+ injectEncoding: propagator_b3_1.B3InjectEncoding.MULTI_HEADER,
36
+ }),
37
+ ],
38
+ }),
39
+ instrumentations: [(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)()],
40
+ });
41
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/otel/sdk.ts"],"names":[],"mappings":";;;AAAA,0FAAwF;AACxF,kFAAqG;AACrG,4EAAqF;AACrF,8CAA2G;AAC3G,4EAAwE;AACxE,sFAA4E;AAC5E,gEAA8E;AAC9E,wDAAoD;AACpD,sDAAkD;AAClD,kEAAmE;AACnE,8EAA8F;AAC9F,oDAAgD;AAEnC,QAAA,GAAG,GAAG,IAAI,kBAAO,CAAC;IAC7B,WAAW,EAAE,4BAAY,CAAC,WAAW;IACrC,QAAQ,EAAE,IAAI,oBAAQ,CAAC;QACrB,CAAC,wCAAiB,CAAC,EAAE,4BAAY,CAAC,WAAW;QAC7C,CAAC,2CAAoB,CAAC,EAAE,4BAAY,CAAC,cAAc;KACpD,CAAC;IACF,YAAY,EAAE,IAAI,wCAAkB,EAAE;IACtC,cAAc,EAAE;QACd,IAAI,mCAAkB,CAAC,IAAI,4CAAiB,EAAE,CAAC;QAC/C,wDAAwD;QACxD,IAAI,6CAAoB,CAAC,+CAAsB,CAAC;KACjD;IACD,cAAc,EAAE,IAAI,qDAA+B,EAAE;IACrD,iBAAiB,EAAE,IAAI,0BAAmB,CAAC;QACzC,WAAW,EAAE;YACX,IAAI,gCAAyB,EAAE;YAC/B,IAAI,2BAAoB,EAAE;YAC1B,IAAI,4BAAY,EAAE;YAClB,IAAI,4BAAY,CAAC;gBACf,cAAc,EAAE,gCAAgB,CAAC,YAAY;aAC9C,CAAC;SACH;KACF,CAAC;IACF,gBAAgB,EAAE,CAAC,IAAA,wDAA2B,GAAE,CAAC;CAClD,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- import type { Logger } from '../logger';
2
- export declare const initPyroscope: (logger: Logger) => Promise<void>;
1
+ import type { Logger } from '../logs';
2
+ export declare const init: (logger: Logger) => Promise<void>;
@@ -3,19 +3,20 @@ 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.initPyroscope = void 0;
6
+ exports.init = void 0;
7
7
  const nodejs_1 = __importDefault(require("@pyroscope/nodejs"));
8
8
  const config_1 = require("./config");
9
- const initPyroscope = async (logger) => {
9
+ const init = async (logger) => {
10
10
  logger = logger.child('pyroscope');
11
11
  if (!config_1.config.enabled) {
12
12
  logger.info('Pyroscope is disabled. Set CF_TELEMETRY_PYROSCOPE_ENABLE=true to enable it');
13
13
  return;
14
14
  }
15
- logger.info({ config: config_1.config.config }, 'Initializing Pyroscope');
15
+ logger.info('Initializing Pyroscope');
16
+ logger.debug('Pyroscope configuration', config_1.config);
16
17
  nodejs_1.default.init(config_1.config.config);
17
18
  nodejs_1.default.start();
18
19
  logger.info('Pyroscope initialized');
19
20
  };
20
- exports.initPyroscope = initPyroscope;
21
+ exports.init = init;
21
22
  //# 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,aAAa,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IACnE,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,EAAE,MAAM,EAAE,eAAM,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC;IACjE,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;AAXW,QAAA,aAAa,iBAWxB"}
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"}
package/package.json CHANGED
@@ -1,7 +1,29 @@
1
1
  {
2
2
  "name": "@codefresh-io/cf-telemetry",
3
- "version": "1.0.3",
4
- "main": "dist/index.js",
3
+ "version": "2.0.0-alpha.10",
4
+ "exports": {
5
+ "./init": "./dist/init.mjs",
6
+ ".": {
7
+ "import": "./dist/index.mjs",
8
+ "require": "./dist/index.js"
9
+ },
10
+ "./logs": {
11
+ "import": "./dist/logs/public.mjs",
12
+ "require": "./dist/logs/public.js"
13
+ },
14
+ "./metrics/mongodb": {
15
+ "import": "./dist/metrics/mongodb/public.mjs",
16
+ "require": "./dist/metrics/mongodb/public.js"
17
+ },
18
+ "./metrics/prometheus": {
19
+ "import": "./dist/metrics/prometheus/public.mjs",
20
+ "require": "./dist/metrics/prometheus/public.js"
21
+ },
22
+ "./otel": {
23
+ "import": "./dist/otel/public.mjs",
24
+ "require": "./dist/otel/public.js"
25
+ }
26
+ },
5
27
  "files": [
6
28
  "dist/**/*"
7
29
  ],
@@ -22,26 +44,29 @@
22
44
  "node": ">=20"
23
45
  },
24
46
  "devDependencies": {
25
- "@eslint/js": "^9.18.0",
26
- "@stylistic/eslint-plugin": "^2.12.1",
27
- "@types/node": "^22.10.5",
28
- "eslint": "^9.18.0",
29
- "mongodb": "^6.12.0",
30
- "pino-pretty": "^13.0.0",
47
+ "@eslint/js": "^9.19.0",
48
+ "@nestjs/common": "^11.0.7",
49
+ "@stylistic/eslint-plugin": "^3.0.1",
50
+ "@types/node": "^22.12.0",
51
+ "eslint": "^9.19.0",
52
+ "mongodb": "^6.13.0",
31
53
  "rimraf": "^6.0.1",
32
- "typescript": "^5.7.3",
33
- "typescript-eslint": "^8.19.1",
34
- "vitest": "^2.1.8"
54
+ "typescript": "^5.8.2",
55
+ "typescript-eslint": "^8.27.0",
56
+ "vitest": "^3.0.4"
35
57
  },
36
58
  "dependencies": {
37
59
  "@christiangalsterer/mongodb-driver-prometheus-exporter": "^2.3.0",
60
+ "@opentelemetry/api": "^1.9.0",
61
+ "@opentelemetry/auto-instrumentations-node": "^0.56.0",
62
+ "@opentelemetry/baggage-span-processor": "^0.3.1",
63
+ "@opentelemetry/sdk-metrics": "^1.30.1",
64
+ "@opentelemetry/sdk-node": "^0.57.2",
65
+ "@opentelemetry/sdk-trace-node": "^1.30.1",
38
66
  "@pyroscope/nodejs": "^0.4.3",
39
- "change-case-all": "^2.1.0",
40
67
  "fastify": "^5.2.1",
41
68
  "pino": "^9.6.0",
69
+ "pino-pretty": "^13.0.0",
42
70
  "prom-client": "^15.1.3"
43
- },
44
- "peerDependencies": {
45
- "mongodb": "^6.9.0"
46
71
  }
47
72
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/logger/config.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,MAAM,CAAC;AACvE,8DAA8D;AAC9D,MAAM,YAAY,GAAG,aAAK,CAAC,QAAQ,CAAC,aAAoB,CAAC,CAAC;AAC1D,IAAI,CAAC,YAAY;IAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,aAAa,yBAAyB,CAAC,CAAC;AAEjF,QAAA,MAAM,GAAG;IACpB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,aAAsB,CAAC,CAAC,CAAC,MAAM;IACrD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,KAAK,MAAM;CAC5D,CAAC"}
@@ -1 +0,0 @@
1
- export { Logger } from './logger';
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Logger = void 0;
4
- var logger_1 = require("./logger");
5
- Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
@@ -1,90 +0,0 @@
1
- import type { Logger as ILogger, LoggerOptions, Scope } from './types';
2
- export declare class Logger implements ILogger {
3
- #private;
4
- /**
5
- * Logger constructor.
6
- * @param scope Scope of the logger. Will be prepended to all log messages.
7
- * @param options Logger options.
8
- * @param options.attributes Additional attributes to be added to each log line.
9
- */
10
- constructor(scope?: Scope, options?: LoggerOptions);
11
- /**
12
- * Debug log level.
13
- * @param data Additional data to log. Might be omitted.
14
- * @param msg Message string to log. The message string may contain a printf style string
15
- * with support for the following placeholders:
16
- * `%s` – string placeholder
17
- * `%d` – digit placeholder
18
- * `%O`, `%o`, and `%j` – object placeholder.
19
- * Values supplied as additional arguments to the logger method after message string
20
- * will then be interpolated accordingly.
21
- * @param interpolationValues All arguments supplied after `msg` are serialized and interpolated
22
- * according to any supplied printf-style placeholders (`%s`, `%d`, `%o|%O|%j`)
23
- * to form the final output msg value for the JSON log line.
24
- */
25
- debug(msg: string, ...interpolationValues: unknown[]): void;
26
- debug(data: unknown, msg?: string, ...interpolationValues: unknown[]): void;
27
- /**
28
- * Info log level.
29
- * @param data Additional data to log. Might be omitted.
30
- * @param msg Message string to log. The message string may contain a printf style string
31
- * with support for the following placeholders:
32
- * `%s` – string placeholder
33
- * `%d` – digit placeholder
34
- * `%O`, `%o`, and `%j` – object placeholder.
35
- * Values supplied as additional arguments to the logger method after message string
36
- * will then be interpolated accordingly.
37
- * @param interpolationValues All arguments supplied after `msg` are serialized and interpolated
38
- * according to any supplied printf-style placeholders (`%s`, `%d`, `%o|%O|%j`)
39
- * to form the final output msg value for the JSON log line.
40
- */
41
- info(msg: string, ...interpolationValues: unknown[]): void;
42
- info(data: unknown, msg?: string, ...interpolationValues: unknown[]): void;
43
- /**
44
- * Alias for `info` log level.
45
- */
46
- log: {
47
- (msg: string, ...interpolationValues: unknown[]): void;
48
- (data: unknown, msg?: string, ...interpolationValues: unknown[]): void;
49
- };
50
- /**
51
- * Warn log level.
52
- * @param data Additional data to log. Might be omitted.
53
- * @param msg Message string to log. The message string may contain a printf style string
54
- * with support for the following placeholders:
55
- * `%s` – string placeholder
56
- * `%d` – digit placeholder
57
- * `%O`, `%o`, and `%j` – object placeholder.
58
- * Values supplied as additional arguments to the logger method after message string
59
- * will then be interpolated accordingly.
60
- * @param interpolationValues All arguments supplied after `msg` are serialized and interpolated
61
- * according to any supplied printf-style placeholders (`%s`, `%d`, `%o|%O|%j`)
62
- * to form the final output msg value for the JSON log line.
63
- */
64
- warn(msg: string, ...interpolationValues: unknown[]): void;
65
- warn(data: unknown, msg?: string, ...interpolationValues: unknown[]): void;
66
- /**
67
- * Error log level.
68
- * @param data Additional data to log. Might be omitted.
69
- * @param msg Message string to log. The message string may contain a printf style string
70
- * with support for the following placeholders:
71
- * `%s` – string placeholder
72
- * `%d` – digit placeholder
73
- * `%O`, `%o`, and `%j` – object placeholder.
74
- * Values supplied as additional arguments to the logger method after message string
75
- * will then be interpolated accordingly.
76
- * @param interpolationValues All arguments supplied after `msg` are serialized and interpolated
77
- * according to any supplied printf-style placeholders (`%s`, `%d`, `%o|%O|%j`)
78
- * to form the final output msg value for the JSON log line.
79
- */
80
- error(msg: string, ...interpolationValues: unknown[]): void;
81
- error(data: unknown, msg?: string, ...interpolationValues: unknown[]): void;
82
- /**
83
- * Create child logger.
84
- * @param scope Scope of the child logger. Will be appended to the parent scope (`parent:child`).
85
- * @param options Options for the child logger.
86
- * @param options.attributes Additional attributes to be added to each log line. Will override parent attributes if key the same, otherwise will be added.
87
- * @returns Child logger
88
- */
89
- child(scope?: Scope, options?: LoggerOptions): Logger;
90
- }
@@ -1,123 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Logger = void 0;
7
- const change_case_all_1 = require("change-case-all");
8
- const pino_1 = __importDefault(require("pino"));
9
- const config_1 = require("./config");
10
- class Logger {
11
- #options;
12
- #scope;
13
- #baseLogger;
14
- /**
15
- * Logger constructor.
16
- * @param scope Scope of the logger. Will be prepended to all log messages.
17
- * @param options Logger options.
18
- * @param options.attributes Additional attributes to be added to each log line.
19
- */
20
- constructor(scope, options = {}) {
21
- this.#options = {
22
- ...options,
23
- attributes: this.#prepareAttributes(options.attributes ?? {}),
24
- };
25
- this.#scope = scope;
26
- this.#baseLogger = (0, pino_1.default)({
27
- level: config_1.config.level,
28
- base: {
29
- scope_name: this.#scope,
30
- ...this.#options.attributes,
31
- },
32
- formatters: {
33
- level: label => ({ level: label }),
34
- },
35
- ...config_1.config.shouldPrettify && {
36
- transport: {
37
- target: 'pino-pretty',
38
- options: {
39
- colorize: true,
40
- translateTime: 'UTC:yyyy-mm-dd HH:MM:ss.l o',
41
- },
42
- },
43
- },
44
- });
45
- }
46
- #prepareAttributes(attributes) {
47
- return Object.entries(attributes)
48
- .reduce((acc, [key, value]) => {
49
- const snakeKey = change_case_all_1.Case.snake(key);
50
- const prefixedKey = key.startsWith('cf_') ? snakeKey : `cf_${snakeKey}`;
51
- acc[prefixedKey] = value;
52
- return acc;
53
- }, {});
54
- }
55
- #mergeAttributes(target, source) {
56
- return { ...target, ...source };
57
- }
58
- #getChildScope(childScope) {
59
- if (!this.#scope)
60
- return childScope;
61
- return `${this.#scope}${childScope ? `:${childScope}` : ''}`;
62
- }
63
- #write(level, ...args) {
64
- const body = {};
65
- if (this.#options.useLastArgAsScope === true
66
- && !this.#scope
67
- && args.length > 1
68
- && typeof args.at(-1) === 'string') {
69
- body['scope_name'] = this.#getChildScope(args.pop());
70
- }
71
- const [msg, ...interpolationValues] = args;
72
- if (typeof msg === 'object') {
73
- if (msg instanceof Error) {
74
- body['err'] = msg;
75
- }
76
- else if (msg === null) {
77
- body['msg'] = msg;
78
- }
79
- else {
80
- body['data'] = msg;
81
- }
82
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
- return this.#baseLogger[level](body, ...interpolationValues);
84
- }
85
- return 'scope_name' in body
86
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
- ? this.#baseLogger[level](body, msg, ...interpolationValues)
88
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
- : this.#baseLogger[level](msg, ...interpolationValues);
90
- }
91
- debug(data, msg, ...interpolationValues) {
92
- this.#write('debug', data, msg, ...interpolationValues);
93
- }
94
- info(data, msg, ...interpolationValues) {
95
- this.#write('info', data, msg, ...interpolationValues);
96
- }
97
- /**
98
- * Alias for `info` log level.
99
- */
100
- log = this.info;
101
- warn(data, msg, ...interpolationValues) {
102
- this.#write('warn', data, msg, ...interpolationValues);
103
- }
104
- error(data, msg, ...interpolationValues) {
105
- this.#write('error', data, msg, ...interpolationValues);
106
- }
107
- /**
108
- * Create child logger.
109
- * @param scope Scope of the child logger. Will be appended to the parent scope (`parent:child`).
110
- * @param options Options for the child logger.
111
- * @param options.attributes Additional attributes to be added to each log line. Will override parent attributes if key the same, otherwise will be added.
112
- * @returns Child logger
113
- */
114
- child(scope, options = {}) {
115
- const { attributes: childAttributes = {} } = options;
116
- const childScope = this.#getChildScope(scope);
117
- return new Logger(childScope, {
118
- attributes: this.#mergeAttributes(this.#options.attributes, this.#prepareAttributes(childAttributes)),
119
- });
120
- }
121
- }
122
- exports.Logger = Logger;
123
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}