@kraki/head 0.20.1 → 0.20.3
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 +16 -0
- package/dist/cli.js +13 -0
- package/dist/cli.js.map +1 -1
- package/dist/metrics.d.ts +50 -0
- package/dist/metrics.js +117 -0
- package/dist/metrics.js.map +1 -0
- package/dist/observability.d.ts +40 -0
- package/dist/observability.js +58 -0
- package/dist/observability.js.map +1 -0
- package/dist/pulse-hub.d.ts +2 -1
- package/dist/pulse-hub.js +17 -3
- package/dist/pulse-hub.js.map +1 -1
- package/dist/push/apns.js +2 -1
- package/dist/push/apns.js.map +1 -1
- package/dist/push/index.d.ts +2 -0
- package/dist/push/index.js +16 -0
- package/dist/push/index.js.map +1 -1
- package/dist/server/account-control.d.ts +28 -0
- package/dist/server/account-control.js +288 -0
- package/dist/server/account-control.js.map +1 -0
- package/dist/server/auth-flow.d.ts +82 -0
- package/dist/server/auth-flow.js +315 -0
- package/dist/server/auth-flow.js.map +1 -0
- package/dist/server/presence.d.ts +8 -0
- package/dist/server/presence.js +103 -0
- package/dist/server/presence.js.map +1 -0
- package/dist/server/shared.d.ts +106 -0
- package/dist/server/shared.js +49 -0
- package/dist/server/shared.js.map +1 -0
- package/dist/server/voice-lease.d.ts +5 -0
- package/dist/server/voice-lease.js +111 -0
- package/dist/server/voice-lease.js.map +1 -0
- package/dist/server.d.ts +19 -131
- package/dist/server.js +65 -862
- package/dist/server.js.map +1 -1
- package/dist/storage.d.ts +4 -1
- package/dist/storage.js +5 -2
- package/dist/storage.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -68,6 +68,22 @@ collector when `KRAKI_DIAG_DIR` is set. Existing embedded-mode deployments must
|
|
|
68
68
|
move that route to Monitor before upgrading Head; independent `kraki-diag`
|
|
69
69
|
deployments do not require a Head restart. See Monitor's migration instructions.
|
|
70
70
|
|
|
71
|
+
## Health and metrics
|
|
72
|
+
|
|
73
|
+
- `GET /` — liveness: `{"name":"@kraki/head","version":…,"status":"ok"}` while the process runs.
|
|
74
|
+
- `GET /health/ready` — readiness: `200 {"status":"ready"}` only when the database
|
|
75
|
+
answers a query, the 30 s health tick is running (event loop not stuck) and every
|
|
76
|
+
push provider in `PUSH_PROVIDERS` loaded; otherwise `503 {"status":"not_ready","checks":…}`
|
|
77
|
+
naming the failed check. Point uptime monitors here.
|
|
78
|
+
- `GET /internal/metrics` — counters and timings for the host's own alerting
|
|
79
|
+
([`ops/watch`](../../ops/watch/README.md)): connections, auth ok/failed by code,
|
|
80
|
+
pulse frames and bytes in/out, forwarded messages, push sent/failed, and how long
|
|
81
|
+
the relay takes to handle one frame (histogram). Counts only: no device, user, IP
|
|
82
|
+
or payload data. Answers **direct loopback requests only**; anything that came
|
|
83
|
+
through a reverse proxy (any forwarding header) or from another address gets 404.
|
|
84
|
+
- The log carries a `health` line every 30 s (connections, memory, durable rows,
|
|
85
|
+
event-loop delay `evlLagMs` p99 / `evlMaxMs`).
|
|
86
|
+
|
|
71
87
|
## Useful options
|
|
72
88
|
|
|
73
89
|
```bash
|
package/dist/cli.js
CHANGED
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
* LOG_PATH Log file path (optional)
|
|
18
18
|
*/
|
|
19
19
|
import { config as dotenvConfig } from 'dotenv';
|
|
20
|
+
import { metrics } from './metrics.js';
|
|
21
|
+
import { handleObservability, pingRelayDatabase } from './observability.js';
|
|
20
22
|
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
21
23
|
import { resolve, dirname } from 'path';
|
|
22
24
|
import { fileURLToPath } from 'url';
|
|
@@ -460,8 +462,19 @@ const head = new HeadServer(storage, {
|
|
|
460
462
|
voiceBrokerUrl: VOICE_BROKER_URL,
|
|
461
463
|
});
|
|
462
464
|
const startedAt = Date.now();
|
|
465
|
+
metrics().startLoopMonitor();
|
|
466
|
+
const readinessContext = {
|
|
467
|
+
version: VERSION,
|
|
468
|
+
startedAt,
|
|
469
|
+
pingDatabase: () => pingRelayDatabase(storage.rawDb),
|
|
470
|
+
expectedPushProviders: PUSH_PROVIDERS,
|
|
471
|
+
loadedPushProviders: () => pushManager?.providerNames() ?? [],
|
|
472
|
+
gauges: () => head.getGauges(),
|
|
473
|
+
};
|
|
463
474
|
const httpServer = createServer(async (req, res) => {
|
|
464
475
|
const url = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
476
|
+
if (handleObservability(req, res, readinessContext))
|
|
477
|
+
return;
|
|
465
478
|
// Diagnostics belong to @kraki/monitor on a separate upstream. A missing
|
|
466
479
|
// proxy rule must not silently return Head's generic 200 health response.
|
|
467
480
|
if (url.pathname.startsWith('/api/diag/v1/')) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** Upper bounds (ms) of the latency buckets; the last bucket is open-ended. */
|
|
2
|
+
export declare const LATENCY_BUCKETS_MS: readonly [1, 2, 5, 10, 25, 50, 100, 250, 500, 1000, 2500];
|
|
3
|
+
export declare class LatencyHistogram {
|
|
4
|
+
readonly counts: number[];
|
|
5
|
+
total: number;
|
|
6
|
+
sumMs: number;
|
|
7
|
+
maxMs: number;
|
|
8
|
+
observe(ms: number): void;
|
|
9
|
+
/** Upper bound of the bucket holding quantile `q` (0–1); null when empty. */
|
|
10
|
+
quantile(q: number): number | null;
|
|
11
|
+
snapshot(): {
|
|
12
|
+
count: number;
|
|
13
|
+
meanMs: number | null;
|
|
14
|
+
p50Ms: number | null;
|
|
15
|
+
p95Ms: number | null;
|
|
16
|
+
p99Ms: number | null;
|
|
17
|
+
maxMs: number;
|
|
18
|
+
buckets: number[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** Every counter the relay keeps. A fixed list: a typo fails to compile. */
|
|
22
|
+
export declare const COUNTERS: readonly ["auth.ok", "auth.fail", "conn.opened", "conn.closed", "conn.stalledClosed", "conn.pongTimeout", "pulse.frames.in", "pulse.bytes.in", "pulse.frames.out", "pulse.bytes.out", "pulse.forwarded", "pulse.deliveredToHead", "push.attempted", "push.sent", "push.failed", "push.gone", "push.threw", "push.authError"];
|
|
23
|
+
export type CounterName = typeof COUNTERS[number];
|
|
24
|
+
export declare class RelayMetrics {
|
|
25
|
+
readonly startedAt: number;
|
|
26
|
+
private readonly counters;
|
|
27
|
+
/** Time the relay spends handling one inbound pulse frame (decode, route,
|
|
28
|
+
* hand to the destination socket): the relay's own share of message latency. */
|
|
29
|
+
readonly frameHandling: LatencyHistogram;
|
|
30
|
+
/** Auth failures by error code (`invalid_token`, `wrong_region`, …). */
|
|
31
|
+
readonly authFailures: Map<string, number>;
|
|
32
|
+
private loopDelay;
|
|
33
|
+
lastHealthAt: number | null;
|
|
34
|
+
inc(name: CounterName, by?: number): void;
|
|
35
|
+
get(name: CounterName): number;
|
|
36
|
+
authFailed(code: string): void;
|
|
37
|
+
/** Start sampling event-loop delay (call once; cheap, 20 ms resolution). */
|
|
38
|
+
startLoopMonitor(): void;
|
|
39
|
+
stopLoopMonitor(): void;
|
|
40
|
+
/** Event-loop delay since the previous call (then reset), in ms. */
|
|
41
|
+
takeLoopDelay(): {
|
|
42
|
+
p50Ms: number;
|
|
43
|
+
p99Ms: number;
|
|
44
|
+
maxMs: number;
|
|
45
|
+
} | null;
|
|
46
|
+
snapshot(): Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
export declare function metrics(): RelayMetrics;
|
|
49
|
+
/** Tests only: a fresh set of counters. */
|
|
50
|
+
export declare function resetMetricsForTests(): RelayMetrics;
|
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relay health numbers for operations (kraki-watch alerting, daily summary).
|
|
3
|
+
*
|
|
4
|
+
* Counts and timings only: never device ids, user ids, IPs or payload data.
|
|
5
|
+
* Read from `/internal/metrics`, which answers loopback requests only (see
|
|
6
|
+
* `observability.ts`); the public relay exposes nothing beyond `/health/ready`.
|
|
7
|
+
*/
|
|
8
|
+
import { monitorEventLoopDelay } from 'node:perf_hooks';
|
|
9
|
+
/** Upper bounds (ms) of the latency buckets; the last bucket is open-ended. */
|
|
10
|
+
export const LATENCY_BUCKETS_MS = [1, 2, 5, 10, 25, 50, 100, 250, 500, 1000, 2500];
|
|
11
|
+
export class LatencyHistogram {
|
|
12
|
+
counts = new Array(LATENCY_BUCKETS_MS.length + 1).fill(0);
|
|
13
|
+
total = 0;
|
|
14
|
+
sumMs = 0;
|
|
15
|
+
maxMs = 0;
|
|
16
|
+
observe(ms) {
|
|
17
|
+
if (!Number.isFinite(ms) || ms < 0)
|
|
18
|
+
return;
|
|
19
|
+
let i = LATENCY_BUCKETS_MS.findIndex((bound) => ms <= bound);
|
|
20
|
+
if (i < 0)
|
|
21
|
+
i = LATENCY_BUCKETS_MS.length;
|
|
22
|
+
this.counts[i]++;
|
|
23
|
+
this.total++;
|
|
24
|
+
this.sumMs += ms;
|
|
25
|
+
if (ms > this.maxMs)
|
|
26
|
+
this.maxMs = ms;
|
|
27
|
+
}
|
|
28
|
+
/** Upper bound of the bucket holding quantile `q` (0–1); null when empty. */
|
|
29
|
+
quantile(q) {
|
|
30
|
+
if (this.total === 0)
|
|
31
|
+
return null;
|
|
32
|
+
const rank = Math.ceil(q * this.total);
|
|
33
|
+
let seen = 0;
|
|
34
|
+
for (let i = 0; i < this.counts.length; i++) {
|
|
35
|
+
seen += this.counts[i];
|
|
36
|
+
if (seen >= rank)
|
|
37
|
+
return i < LATENCY_BUCKETS_MS.length ? LATENCY_BUCKETS_MS[i] : this.maxMs;
|
|
38
|
+
}
|
|
39
|
+
return this.maxMs;
|
|
40
|
+
}
|
|
41
|
+
snapshot() {
|
|
42
|
+
return {
|
|
43
|
+
count: this.total,
|
|
44
|
+
meanMs: this.total ? Math.round((this.sumMs / this.total) * 100) / 100 : null,
|
|
45
|
+
p50Ms: this.quantile(0.5),
|
|
46
|
+
p95Ms: this.quantile(0.95),
|
|
47
|
+
p99Ms: this.quantile(0.99),
|
|
48
|
+
maxMs: Math.round(this.maxMs * 100) / 100,
|
|
49
|
+
buckets: [...this.counts],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Every counter the relay keeps. A fixed list: a typo fails to compile. */
|
|
54
|
+
export const COUNTERS = [
|
|
55
|
+
'auth.ok', 'auth.fail',
|
|
56
|
+
'conn.opened', 'conn.closed', 'conn.stalledClosed', 'conn.pongTimeout',
|
|
57
|
+
'pulse.frames.in', 'pulse.bytes.in', 'pulse.frames.out', 'pulse.bytes.out',
|
|
58
|
+
'pulse.forwarded', 'pulse.deliveredToHead',
|
|
59
|
+
'push.attempted', 'push.sent', 'push.failed', 'push.gone', 'push.threw', 'push.authError',
|
|
60
|
+
];
|
|
61
|
+
export class RelayMetrics {
|
|
62
|
+
startedAt = Date.now();
|
|
63
|
+
counters = new Map(COUNTERS.map((name) => [name, 0]));
|
|
64
|
+
/** Time the relay spends handling one inbound pulse frame (decode, route,
|
|
65
|
+
* hand to the destination socket): the relay's own share of message latency. */
|
|
66
|
+
frameHandling = new LatencyHistogram();
|
|
67
|
+
/** Auth failures by error code (`invalid_token`, `wrong_region`, …). */
|
|
68
|
+
authFailures = new Map();
|
|
69
|
+
loopDelay = null;
|
|
70
|
+
lastHealthAt = null;
|
|
71
|
+
inc(name, by = 1) {
|
|
72
|
+
this.counters.set(name, (this.counters.get(name) ?? 0) + by);
|
|
73
|
+
}
|
|
74
|
+
get(name) {
|
|
75
|
+
return this.counters.get(name) ?? 0;
|
|
76
|
+
}
|
|
77
|
+
authFailed(code) {
|
|
78
|
+
this.inc('auth.fail');
|
|
79
|
+
this.authFailures.set(code, (this.authFailures.get(code) ?? 0) + 1);
|
|
80
|
+
}
|
|
81
|
+
/** Start sampling event-loop delay (call once; cheap, 20 ms resolution). */
|
|
82
|
+
startLoopMonitor() {
|
|
83
|
+
if (this.loopDelay)
|
|
84
|
+
return;
|
|
85
|
+
this.loopDelay = monitorEventLoopDelay({ resolution: 20 });
|
|
86
|
+
this.loopDelay.enable();
|
|
87
|
+
}
|
|
88
|
+
stopLoopMonitor() {
|
|
89
|
+
this.loopDelay?.disable();
|
|
90
|
+
this.loopDelay = null;
|
|
91
|
+
}
|
|
92
|
+
/** Event-loop delay since the previous call (then reset), in ms. */
|
|
93
|
+
takeLoopDelay() {
|
|
94
|
+
const h = this.loopDelay;
|
|
95
|
+
if (!h || h.count === 0)
|
|
96
|
+
return null;
|
|
97
|
+
const ms = (ns) => Math.round(ns / 1e4) / 100;
|
|
98
|
+
const out = { p50Ms: ms(h.percentile(50)), p99Ms: ms(h.percentile(99)), maxMs: ms(h.max) };
|
|
99
|
+
h.reset();
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
snapshot() {
|
|
103
|
+
return {
|
|
104
|
+
uptimeSec: Math.floor((Date.now() - this.startedAt) / 1000),
|
|
105
|
+
counters: Object.fromEntries(this.counters),
|
|
106
|
+
authFailures: Object.fromEntries(this.authFailures),
|
|
107
|
+
frameHandling: this.frameHandling.snapshot(),
|
|
108
|
+
lastHealthAgoSec: this.lastHealthAt === null ? null : Math.floor((Date.now() - this.lastHealthAt) / 1000),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** The relay process's metrics (one per process, like the logger). */
|
|
113
|
+
let current = new RelayMetrics();
|
|
114
|
+
export function metrics() { return current; }
|
|
115
|
+
/** Tests only: a fresh set of counters. */
|
|
116
|
+
export function resetMetricsForTests() { current.stopLoopMonitor(); current = new RelayMetrics(); return current; }
|
|
117
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operational HTTP endpoints of the relay.
|
|
3
|
+
*
|
|
4
|
+
* - `GET /health/ready` (public): ready to serve, not just running. Checks the
|
|
5
|
+
* database answers, the 30 s health tick is alive (event loop not stuck),
|
|
6
|
+
* and the configured push providers are loaded. 200 when ready, 503 when
|
|
7
|
+
* not; the body names the failed check, never any user data.
|
|
8
|
+
* - `GET /internal/metrics` (loopback only): counters and timings for
|
|
9
|
+
* kraki-watch. Refused when the request came through a reverse proxy
|
|
10
|
+
* (any forwarding header) or from a non-loopback address.
|
|
11
|
+
*/
|
|
12
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
13
|
+
export interface ReadinessContext {
|
|
14
|
+
version: string;
|
|
15
|
+
startedAt: number;
|
|
16
|
+
/** Runs a trivial query; throws when the database is unusable. */
|
|
17
|
+
pingDatabase: () => void;
|
|
18
|
+
/** Push providers the relay was configured with (env PUSH_PROVIDERS). */
|
|
19
|
+
expectedPushProviders: string[];
|
|
20
|
+
/** Push providers actually loaded. */
|
|
21
|
+
loadedPushProviders: () => string[];
|
|
22
|
+
/** Live gauges for the metrics endpoint. */
|
|
23
|
+
gauges: () => Record<string, number>;
|
|
24
|
+
/** The health tick runs every 30 s; older than this means the loop is stuck. */
|
|
25
|
+
maxHealthAgeMs?: number;
|
|
26
|
+
}
|
|
27
|
+
/** Reads a real table page (SELECT 1 alone never touches the file). Throws
|
|
28
|
+
* when the database is unusable. */
|
|
29
|
+
export declare function pingRelayDatabase(db: {
|
|
30
|
+
prepare: (sql: string) => {
|
|
31
|
+
get: () => unknown;
|
|
32
|
+
};
|
|
33
|
+
}): void;
|
|
34
|
+
export declare function readiness(ctx: ReadinessContext, now?: number): {
|
|
35
|
+
ok: boolean;
|
|
36
|
+
checks: Record<string, string>;
|
|
37
|
+
};
|
|
38
|
+
export declare function isDirectLoopback(req: IncomingMessage): boolean;
|
|
39
|
+
/** Handles the two endpoints; returns false for any other path. */
|
|
40
|
+
export declare function handleObservability(req: IncomingMessage, res: ServerResponse, ctx: ReadinessContext): boolean;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { metrics } from './metrics.js';
|
|
2
|
+
/** Reads a real table page (SELECT 1 alone never touches the file). Throws
|
|
3
|
+
* when the database is unusable. */
|
|
4
|
+
export function pingRelayDatabase(db) {
|
|
5
|
+
db.prepare('SELECT user_id FROM users LIMIT 1').get();
|
|
6
|
+
}
|
|
7
|
+
export function readiness(ctx, now = Date.now()) {
|
|
8
|
+
const checks = {};
|
|
9
|
+
try {
|
|
10
|
+
ctx.pingDatabase();
|
|
11
|
+
checks.database = 'ok';
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
checks.database = 'fail';
|
|
15
|
+
}
|
|
16
|
+
const last = metrics().lastHealthAt;
|
|
17
|
+
const maxAge = ctx.maxHealthAgeMs ?? 90_000;
|
|
18
|
+
// Before the first tick (first 30 s after start) the loop is judged by uptime.
|
|
19
|
+
checks.eventLoop = (last ?? ctx.startedAt) >= now - maxAge ? 'ok' : 'fail';
|
|
20
|
+
const loaded = new Set(ctx.loadedPushProviders());
|
|
21
|
+
const missing = ctx.expectedPushProviders.filter((p) => !loaded.has(p));
|
|
22
|
+
checks.push = missing.length === 0 ? 'ok' : `fail:${missing.join(',')}`;
|
|
23
|
+
return { ok: Object.values(checks).every((v) => v === 'ok'), checks };
|
|
24
|
+
}
|
|
25
|
+
const FORWARDING_HEADERS = ['x-forwarded-for', 'x-real-ip', 'forwarded', 'x-forwarded-host', 'cf-connecting-ip'];
|
|
26
|
+
export function isDirectLoopback(req) {
|
|
27
|
+
if (FORWARDING_HEADERS.some((h) => req.headers[h] !== undefined))
|
|
28
|
+
return false;
|
|
29
|
+
const addr = req.socket.remoteAddress ?? '';
|
|
30
|
+
return addr === '127.0.0.1' || addr === '::1' || addr === '::ffff:127.0.0.1';
|
|
31
|
+
}
|
|
32
|
+
/** Handles the two endpoints; returns false for any other path. */
|
|
33
|
+
export function handleObservability(req, res, ctx) {
|
|
34
|
+
const path = (req.url ?? '/').split('?')[0];
|
|
35
|
+
if (path === '/health/ready') {
|
|
36
|
+
const result = readiness(ctx);
|
|
37
|
+
res.writeHead(result.ok ? 200 : 503, { 'Content-Type': 'application/json', 'Cache-Control': 'no-store' });
|
|
38
|
+
res.end(JSON.stringify({
|
|
39
|
+
status: result.ok ? 'ready' : 'not_ready',
|
|
40
|
+
version: ctx.version,
|
|
41
|
+
uptimeSec: Math.floor((Date.now() - ctx.startedAt) / 1000),
|
|
42
|
+
checks: result.checks,
|
|
43
|
+
}));
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (path === '/internal/metrics') {
|
|
47
|
+
if (!isDirectLoopback(req)) {
|
|
48
|
+
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
49
|
+
res.end(JSON.stringify({ error: 'not_found' }));
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
res.writeHead(200, { 'Content-Type': 'application/json', 'Cache-Control': 'no-store' });
|
|
53
|
+
res.end(JSON.stringify({ version: ctx.version, ...metrics().snapshot(), gauges: ctx.gauges(), ready: readiness(ctx) }));
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=observability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
|
package/dist/pulse-hub.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* envelopes keep the fire-and-forget path.
|
|
22
22
|
*/
|
|
23
23
|
import type Database from 'better-sqlite3';
|
|
24
|
-
import { decodeFrame, encodeFrame } from '@
|
|
24
|
+
import { decodeFrame, encodeFrame } from '@kraki/pulse';
|
|
25
25
|
import { type PulseFrameField, type UnicastEnvelope } from '@kraki/protocol';
|
|
26
26
|
/** Head→device messages that are bulk (best-effort background / large):
|
|
27
27
|
* history replay, turn-trace batches, attachment chunks. Everything else is
|
|
@@ -152,6 +152,7 @@ export declare class PulseHub {
|
|
|
152
152
|
onPulseEnvelope(fromDevice: string, env: PulseFrameField & {
|
|
153
153
|
to?: string | string[];
|
|
154
154
|
}): void;
|
|
155
|
+
private handlePulseEnvelope;
|
|
155
156
|
/**
|
|
156
157
|
* Pulse acknowledges in-order DATA only when the receiver next transmits or
|
|
157
158
|
* idles into a heartbeat (15 s). A client pacing a large upload by acks would
|
package/dist/pulse-hub.js
CHANGED
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
* envelopes keep the fire-and-forget path.
|
|
22
22
|
*/
|
|
23
23
|
import { randomUUID } from 'node:crypto';
|
|
24
|
-
import {
|
|
24
|
+
import { metrics } from './metrics.js';
|
|
25
|
+
import { decodeFrame, decodeFrameWithStream, encodeFrame, Endpoint, StreamSet } from '@kraki/pulse';
|
|
25
26
|
import { HEAD_PULSE_TARGET, PULSE_SENDER_FIELD } from '@kraki/protocol';
|
|
26
27
|
import { getLogger } from './logger.js';
|
|
27
28
|
import { fp, trace } from './trace.js';
|
|
@@ -280,6 +281,17 @@ export class PulseHub {
|
|
|
280
281
|
onPulseEnvelope(fromDevice, env) {
|
|
281
282
|
if (this.closed || !this.db.open || !env.pulse)
|
|
282
283
|
return;
|
|
284
|
+
const started = performance.now();
|
|
285
|
+
metrics().inc('pulse.frames.in');
|
|
286
|
+
metrics().inc('pulse.bytes.in', env.pulse.length);
|
|
287
|
+
try {
|
|
288
|
+
this.handlePulseEnvelope(fromDevice, env, env.pulse);
|
|
289
|
+
}
|
|
290
|
+
finally {
|
|
291
|
+
metrics().frameHandling.observe(performance.now() - started);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
handlePulseEnvelope(fromDevice, env, pulse) {
|
|
283
295
|
const d = this.ep(fromDevice);
|
|
284
296
|
// A frame addressed to HEAD_PULSE_TARGET is consumed by the head itself, not
|
|
285
297
|
// forwarded to a device. It still rides the source stream (same seq/ack/
|
|
@@ -294,8 +306,8 @@ export class PulseHub {
|
|
|
294
306
|
: (Array.isArray(env.to)
|
|
295
307
|
? env.to
|
|
296
308
|
: (env.to ? [env.to] : this.host.broadcastTargets(fromDevice)));
|
|
297
|
-
const inLen =
|
|
298
|
-
const bytes = b64decode(
|
|
309
|
+
const inLen = pulse.length;
|
|
310
|
+
const bytes = b64decode(pulse);
|
|
299
311
|
const decoded = decodeFrameWithStream(bytes);
|
|
300
312
|
if (decoded)
|
|
301
313
|
this.pulseSeenNow.add(fromDevice);
|
|
@@ -419,11 +431,13 @@ export class PulseHub {
|
|
|
419
431
|
case 'deliver':
|
|
420
432
|
if (selfBound) {
|
|
421
433
|
trace('HUB-DELIVER-SELF', { from: deviceId, seq: String(e.seq), len: e.payload.length });
|
|
434
|
+
metrics().inc('pulse.deliveredToHead');
|
|
422
435
|
// Terminus at head: consume the plaintext control payload with the
|
|
423
436
|
// source connection's auth context, instead of forwarding.
|
|
424
437
|
this.host.onDeliverToSelf(deviceId, e.payload);
|
|
425
438
|
}
|
|
426
439
|
else {
|
|
440
|
+
metrics().inc('pulse.forwarded');
|
|
427
441
|
trace('HUB-FORWARD', { from: deviceId, stream: e.streamId ?? 0, seq: String(e.seq), fp: fp(e.payload), len: e.payload.length, durable: e.durable, coalesceKey: e.coalesceKey, dests: dests ?? [] });
|
|
428
442
|
// Store-and-forward bridge: forward the reliable payload onto each
|
|
429
443
|
// destination device's SAME stream (live or bulk), preserving
|
package/dist/pulse-hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse-hub.js","sourceRoot":"","sources":["../src/pulse-hub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pulse-hub.js","sourceRoot":"","sources":["../src/pulse-hub.ts"],"names":[],"mappings":"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"}
|