@codefresh-io/cf-telemetry 2.0.0-alpha.23 → 2.0.0-alpha.25
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/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/profiles/config.d.ts +2 -1
- package/dist/profiles/config.js +15 -9
- package/dist/profiles/config.js.map +1 -1
- package/package.json +1 -1
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"}
|
|
@@ -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'] ?? '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,GAA8B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAS,IAAI,aAAa,CAAC;IAC5H,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"}
|
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"}
|