@rudderjs/horizon 0.0.1 → 1.0.0
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/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -51
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ServiceProvider
|
|
1
|
+
import { ServiceProvider } from '@rudderjs/core';
|
|
2
2
|
import { type HorizonConfig, type HorizonStorage, type HorizonJob, type QueueMetric, type WorkerInfo, type JobStatus, type JobListOptions } from './types.js';
|
|
3
3
|
export type { HorizonConfig, HorizonStorage, HorizonJob, QueueMetric, WorkerInfo, JobStatus, JobListOptions };
|
|
4
4
|
export { MemoryStorage, SqliteStorage } from './storage.js';
|
|
@@ -32,5 +32,8 @@ export declare class Horizon {
|
|
|
32
32
|
* import { horizon } from '@rudderjs/horizon'
|
|
33
33
|
* export default [..., horizon(configs.horizon), ...]
|
|
34
34
|
*/
|
|
35
|
-
export declare
|
|
35
|
+
export declare class HorizonProvider extends ServiceProvider {
|
|
36
|
+
register(): void;
|
|
37
|
+
boot(): Promise<void>;
|
|
38
|
+
}
|
|
36
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAA;AAMxD,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EACxD,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EACvE,MAAM,YAAY,CAAA;AAInB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAC7G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAIxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,OAAO,CAA8B;IAEpD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IACzC,MAAM,CAAC,GAAG,IAAI,cAAc,GAAG,IAAI;IACnC,mEAAmE;IACnE,MAAM,CAAC,KAAK,IAAI,IAAI;CACrB;AAID,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,KAAK;IAMpB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjF,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI1E,MAAM,CAAC,cAAc,IAAI,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI/D,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAItD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAID;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAClD,QAAQ,IAAI,IAAI;IAQV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiD5B"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ServiceProvider } from '@rudderjs/core';
|
|
1
|
+
import { ServiceProvider, config } from '@rudderjs/core';
|
|
2
2
|
import { MemoryStorage, SqliteStorage } from './storage.js';
|
|
3
3
|
import { JobCollector } from './collectors/job.js';
|
|
4
4
|
import { MetricsCollector } from './collectors/metrics.js';
|
|
@@ -56,58 +56,56 @@ export class Horizon {
|
|
|
56
56
|
* import { horizon } from '@rudderjs/horizon'
|
|
57
57
|
* export default [..., horizon(configs.horizon), ...]
|
|
58
58
|
*/
|
|
59
|
-
export
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
59
|
+
export class HorizonProvider extends ServiceProvider {
|
|
60
|
+
register() {
|
|
61
|
+
this.publishes({
|
|
62
|
+
from: new URL('../../boost/guidelines.md', import.meta.url).pathname,
|
|
63
|
+
to: 'boost',
|
|
64
|
+
tag: 'horizon-boost',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async boot() {
|
|
68
|
+
const cfg = config('horizon', {});
|
|
69
|
+
const resolved = {
|
|
70
|
+
enabled: cfg.enabled ?? defaultConfig.enabled,
|
|
71
|
+
path: cfg.path ?? defaultConfig.path,
|
|
72
|
+
storage: cfg.storage ?? defaultConfig.storage,
|
|
73
|
+
sqlitePath: cfg.sqlitePath ?? defaultConfig.sqlitePath,
|
|
74
|
+
maxJobs: cfg.maxJobs ?? defaultConfig.maxJobs,
|
|
75
|
+
pruneAfterHours: cfg.pruneAfterHours ?? defaultConfig.pruneAfterHours,
|
|
76
|
+
metricsIntervalMs: cfg.metricsIntervalMs ?? defaultConfig.metricsIntervalMs,
|
|
77
|
+
auth: cfg.auth ?? defaultConfig.auth,
|
|
78
|
+
};
|
|
79
|
+
if (!resolved.enabled)
|
|
80
|
+
return;
|
|
81
|
+
// ── Create storage ────────────────────────────────────
|
|
82
|
+
let storage;
|
|
83
|
+
if (resolved.storage === 'sqlite') {
|
|
84
|
+
storage = new SqliteStorage(resolved.sqlitePath);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
storage = new MemoryStorage(resolved.maxJobs);
|
|
77
88
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
HorizonRegistry.set(storage);
|
|
90
|
-
this.app.instance('horizon', storage);
|
|
91
|
-
// ── Auto-prune ────────────────────────────────────────
|
|
92
|
-
const pruneHours = resolved.pruneAfterHours;
|
|
93
|
-
if (pruneHours > 0) {
|
|
94
|
-
const interval = Math.min(pruneHours * 60 * 60 * 1000, 3_600_000);
|
|
95
|
-
const timer = setInterval(() => {
|
|
96
|
-
storage.pruneOlderThan(new Date(Date.now() - pruneHours * 60 * 60 * 1000));
|
|
97
|
-
}, interval);
|
|
98
|
-
timer.unref();
|
|
99
|
-
}
|
|
100
|
-
// ── Register collectors ───────────────────────────────
|
|
101
|
-
const jobCollector = new JobCollector(storage);
|
|
102
|
-
const metricsCollector = new MetricsCollector(storage, resolved.metricsIntervalMs);
|
|
103
|
-
const workerCollector = new WorkerCollector(storage);
|
|
104
|
-
jobCollector.register();
|
|
105
|
-
metricsCollector.register();
|
|
106
|
-
workerCollector.register();
|
|
107
|
-
// ── Register API routes ───────────────────────────────
|
|
108
|
-
await registerRoutes(storage, resolved);
|
|
89
|
+
HorizonRegistry.set(storage);
|
|
90
|
+
this.app.instance('horizon', storage);
|
|
91
|
+
// ── Auto-prune ────────────────────────────────────────
|
|
92
|
+
const pruneHours = resolved.pruneAfterHours;
|
|
93
|
+
if (pruneHours > 0) {
|
|
94
|
+
const interval = Math.min(pruneHours * 60 * 60 * 1000, 3_600_000);
|
|
95
|
+
const timer = setInterval(() => {
|
|
96
|
+
storage.pruneOlderThan(new Date(Date.now() - pruneHours * 60 * 60 * 1000));
|
|
97
|
+
}, interval);
|
|
98
|
+
timer.unref();
|
|
109
99
|
}
|
|
100
|
+
// ── Register collectors ───────────────────────────────
|
|
101
|
+
const jobCollector = new JobCollector(storage);
|
|
102
|
+
const metricsCollector = new MetricsCollector(storage, resolved.metricsIntervalMs);
|
|
103
|
+
const workerCollector = new WorkerCollector(storage);
|
|
104
|
+
jobCollector.register();
|
|
105
|
+
metricsCollector.register();
|
|
106
|
+
workerCollector.register();
|
|
107
|
+
// ── Register API routes ───────────────────────────────
|
|
108
|
+
await registerRoutes(storage, resolved);
|
|
110
109
|
}
|
|
111
|
-
return HorizonServiceProvider;
|
|
112
110
|
}
|
|
113
111
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/horizon",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"rudderjs": {
|
|
5
|
+
"provider": "HorizonProvider",
|
|
6
|
+
"stage": "monitoring"
|
|
7
|
+
},
|
|
4
8
|
"license": "MIT",
|
|
5
9
|
"repository": {
|
|
6
10
|
"type": "git",
|
|
@@ -21,13 +25,13 @@
|
|
|
21
25
|
}
|
|
22
26
|
},
|
|
23
27
|
"dependencies": {
|
|
24
|
-
"@rudderjs/core": "0.0.
|
|
25
|
-
"@rudderjs/contracts": "0.0.
|
|
26
|
-
"@rudderjs/queue": "0.0
|
|
28
|
+
"@rudderjs/core": "0.0.10",
|
|
29
|
+
"@rudderjs/contracts": "0.0.4",
|
|
30
|
+
"@rudderjs/queue": "1.0.0"
|
|
27
31
|
},
|
|
28
32
|
"peerDependencies": {
|
|
29
|
-
"@rudderjs/router": "0.0
|
|
30
|
-
"@rudderjs/middleware": "0.0.
|
|
33
|
+
"@rudderjs/router": "0.1.0",
|
|
34
|
+
"@rudderjs/middleware": "0.0.9"
|
|
31
35
|
},
|
|
32
36
|
"optionalDependencies": {
|
|
33
37
|
"better-sqlite3": "^11.0.0"
|