@zenvark/prom 1.0.0 → 1.0.1

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
@@ -19,22 +19,22 @@ import { Redis } from "ioredis";
19
19
  const redis = new Redis("redis://localhost:6379");
20
20
 
21
21
  const circuitBreaker = new CircuitBreaker({
22
- id: "my-service-api",
23
- redis,
24
- breaker: new ConsecutiveBreaker({ threshold: 5 }),
25
- health: {
26
- backoff: new ConstantBackoff({ delayMs: 5000 }),
27
- async check(type, signal) {
28
- const response = await fetch("https://api.example.com/health", {
29
- signal,
30
- });
31
- if (!response.ok) throw new Error("Health check failed");
32
- },
33
- },
34
- metrics: new PrometheusBreakerMetrics({
35
- register,
36
- customLabels: { service: "my-api", environment: "production" },
37
- }),
22
+ id: "my-service-api",
23
+ redis,
24
+ breaker: new ConsecutiveBreaker({ threshold: 5 }),
25
+ health: {
26
+ backoff: new ConstantBackoff({ delayMs: 5000 }),
27
+ async check(type, signal) {
28
+ const response = await fetch("https://api.example.com/health", {
29
+ signal,
30
+ });
31
+ if (!response.ok) throw new Error("Health check failed");
32
+ },
33
+ },
34
+ metrics: new PrometheusBreakerMetrics({
35
+ register,
36
+ customLabels: { service: "my-api", environment: "production" },
37
+ }),
38
38
  });
39
39
 
40
40
  await circuitBreaker.start();
@@ -61,12 +61,12 @@ Add custom labels to all metrics:
61
61
 
62
62
  ```typescript
63
63
  const metrics = new PrometheusBreakerMetrics({
64
- register,
65
- customLabels: {
66
- service: "payment-service",
67
- environment: "production",
68
- region: "us-east-1",
69
- },
64
+ register,
65
+ customLabels: {
66
+ service: "payment-service",
67
+ environment: "production",
68
+ region: "us-east-1",
69
+ },
70
70
  });
71
71
  ```
72
72
 
@@ -1 +1 @@
1
- {"version":3,"file":"get-or-create-metric.js","sourceRoot":"","sources":["../src/get-or-create-metric.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EAEP,SAAS,GAGT,MAAM,aAAa,CAAC;AAErB,MAAM,YAAY,GAAG,CAAC,GAAY,EAAsB,EAAE;IACzD,IACC,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAC3B,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC;IACjB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAAe,EAAqB,EAAE;IACxD,OAAO,MAAM,YAAY,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,QAAkB,EAClB,MAAqC,EAClB,EAAE;IACrB,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7D,OAAO,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAe,EAAuB,EAAE;IAC5D,OAAO,MAAM,YAAY,SAAS,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,QAAkB,EAClB,MAAuC,EAClB,EAAE;IACvB,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7D,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC,CAAC"}
1
+ {"version":3,"file":"get-or-create-metric.js","sourceRoot":"","sources":["../src/get-or-create-metric.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,SAAS,GAGV,MAAM,aAAa,CAAC;AAErB,MAAM,YAAY,GAAG,CAAC,GAAY,EAAsB,EAAE;IACxD,IACE,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAC5B,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAAe,EAAqB,EAAE;IACvD,OAAO,MAAM,YAAY,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,QAAkB,EAClB,MAAqC,EACnB,EAAE;IACpB,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7D,OAAO,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAe,EAAuB,EAAE;IAC3D,OAAO,MAAM,YAAY,SAAS,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAkB,EAClB,MAAuC,EACnB,EAAE;IACtB,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7D,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,wBAAwB,GAExB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,GAEzB,MAAM,iCAAiC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prometheus-breaker-metrics.js","sourceRoot":"","sources":["../src/prometheus-breaker-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prometheus-breaker-metrics.js","sourceRoot":"","sources":["../src/prometheus-breaker-metrics.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAmBnC,MAAM,OAAO,wBAAwB;IAClB,YAAY,CAAyB;IAErC,qBAAqB,CAAoB;IACzC,sBAAsB,CAAkB;IACxC,4BAA4B,CAAoB;IAEjE,YAAY,OAAwC;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAE/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAExD,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE;YAClE,IAAI,EAAE,GAAG,MAAM,wBAAwB;YACvC,IAAI,EAAE,+DAA+D;YACrE,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;YACzD,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3D,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE;YACjE,IAAI,EAAE,GAAG,MAAM,yBAAyB;YACxC,IAAI,EAAE,4EAA4E;YAClF,UAAU,EAAE,CAAC,YAAY,EAAE,GAAG,gBAAgB,CAAC;YAC/C,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzE,IAAI,EAAE,GAAG,MAAM,+BAA+B;YAC9C,IAAI,EAAE,+EAA+E;YACrF,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;YACjE,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3D,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,SAAiB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEO,SAAS,CACf,SAAiB,EACjB,mBAA2C,EAAE;QAE7C,OAAO;YACL,GAAG,IAAI,CAAC,YAAY;YACpB,UAAU,EAAE,SAAS;YACrB,GAAG,gBAAgB;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAwB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE;YAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAkC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAA+B;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE;YAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9E,CAAC;CACF"}
package/package.json CHANGED
@@ -1,62 +1,62 @@
1
1
  {
2
- "name": "@zenvark/prom",
3
- "version": "1.0.0",
4
- "description": "Prometheus metrics for Zenvark Circuit Breaker",
5
- "keywords": [
6
- "zenvark",
7
- "circuit",
8
- "breaker",
9
- "circuit-breaker",
10
- "prometheus",
11
- "metrics",
12
- "monitoring",
13
- "observability"
14
- ],
15
- "license": "MIT",
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/zenvark/zenvark.git",
19
- "directory": "packages/prom"
20
- },
21
- "homepage": "https://github.com/zenvark/zenvark#readme",
22
- "bugs": {
23
- "url": "https://github.com/zenvark/zenvark/issues"
24
- },
25
- "engines": {
26
- "node": ">=22"
27
- },
28
- "files": [
29
- "dist"
30
- ],
31
- "type": "module",
32
- "main": "dist/index.js",
33
- "exports": {
34
- ".": "./dist/index.js",
35
- "./package.json": "./package.json"
36
- },
37
- "publishConfig": {
38
- "access": "public"
39
- },
40
- "scripts": {
41
- "build": "rimraf dist && tsc -p tsconfig.build.json",
42
- "lint": "biome check . && tsc",
43
- "lint:fix": "biome check --write",
44
- "test": "vitest",
45
- "test:coverage": "npm test -- --coverage",
46
- "test:ci": "npm run test:coverage"
47
- },
48
- "devDependencies": {
49
- "@lokalise/tsconfig": "^3.0.0",
50
- "@types/node": "^24.10.1",
51
- "@vitest/coverage-v8": "^4.0.15",
52
- "prom-client": "^15.0.0",
53
- "rimraf": "^6.0.1",
54
- "typescript": "5.9.3",
55
- "vitest": "^4.0.15",
56
- "zenvark": "^1.0.0"
57
- },
58
- "peerDependencies": {
59
- "prom-client": "^15.0.0",
60
- "zenvark": "^1.0.0"
61
- }
2
+ "name": "@zenvark/prom",
3
+ "version": "1.0.1",
4
+ "description": "Prometheus metrics for Zenvark Circuit Breaker",
5
+ "keywords": [
6
+ "zenvark",
7
+ "circuit",
8
+ "breaker",
9
+ "circuit-breaker",
10
+ "prometheus",
11
+ "metrics",
12
+ "monitoring",
13
+ "observability"
14
+ ],
15
+ "license": "MIT",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/zenvark/zenvark.git",
19
+ "directory": "packages/prom"
20
+ },
21
+ "homepage": "https://github.com/zenvark/zenvark#readme",
22
+ "bugs": {
23
+ "url": "https://github.com/zenvark/zenvark/issues"
24
+ },
25
+ "engines": {
26
+ "node": ">=22"
27
+ },
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "type": "module",
32
+ "main": "dist/index.js",
33
+ "exports": {
34
+ ".": "./dist/index.js",
35
+ "./package.json": "./package.json"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "scripts": {
41
+ "build": "rimraf dist && tsc -p tsconfig.build.json",
42
+ "lint": "biome check . && tsc",
43
+ "lint:fix": "biome check --write",
44
+ "test": "vitest",
45
+ "test:coverage": "npm test -- --coverage",
46
+ "test:ci": "npm run test:coverage"
47
+ },
48
+ "devDependencies": {
49
+ "@lokalise/tsconfig": "^3.0.0",
50
+ "@types/node": "^24.10.1",
51
+ "@vitest/coverage-v8": "^4.0.15",
52
+ "prom-client": "^15.0.0",
53
+ "rimraf": "^6.0.1",
54
+ "typescript": "5.9.3",
55
+ "vitest": "^4.0.15",
56
+ "zenvark": "^1.0.1"
57
+ },
58
+ "peerDependencies": {
59
+ "prom-client": "^15.0.0",
60
+ "zenvark": "^1.0.0"
61
+ }
62
62
  }