@nodii/telemetry 0.14.1 → 0.15.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.
|
@@ -97,6 +97,30 @@ export interface SingleActiveLeaseOpts {
|
|
|
97
97
|
ttlMs: number;
|
|
98
98
|
/** Stable per-acquisition owner id. Defaults to a fresh uuidv7. */
|
|
99
99
|
ownerId?: string;
|
|
100
|
+
/**
|
|
101
|
+
* SUNSET-DATED one-wave deploy-window compat aid (D402 decision e7eec3aa,
|
|
102
|
+
* not yet locked). When set, the lease ALSO mutually-excludes on this legacy
|
|
103
|
+
* key — the OLD (pre-substrate) key a worker used before it was rebased onto
|
|
104
|
+
* `SingleActiveLease` (e.g. outbox-dispatcher's `lock:outbox:<service>`,
|
|
105
|
+
* replica-consumer's `nodii:replica-consumer:lease:<svc>:<stream>`). During a
|
|
106
|
+
* rolling deploy a NEW substrate-keyed holder and an OLD legacy-keyed instance
|
|
107
|
+
* each `SET NX` a DIFFERENT key, so both would believe they are single-active.
|
|
108
|
+
* With `legacyKey` set, acquire/renew/release gate+hold BOTH keys atomically
|
|
109
|
+
* (both-or-neither): the canonical key holds `<owner>:<fence>` as today and
|
|
110
|
+
* the legacy key holds the BARE `<owner>` (the old SET-NX-EX value), so an OLD
|
|
111
|
+
* instance's `SET legacyKey owner NX` is blocked while this holder lives, and
|
|
112
|
+
* symmetrically this acquire fails if the legacy key is already held.
|
|
113
|
+
*
|
|
114
|
+
* MECHANISM ONLY: the per-worker POLICY (legacy compat honored for exactly one
|
|
115
|
+
* release wave, sunset-dated; REQUIRED for non-idempotent workers like the
|
|
116
|
+
* saga reaper / outbox-dispatcher, OPTIONAL for idempotent ones like the
|
|
117
|
+
* idempotency sweeper / audit-chain verifier) is proposed in e7eec3aa and
|
|
118
|
+
* applied per-adoption — it is deliberately NOT baked into the substrate here.
|
|
119
|
+
*
|
|
120
|
+
* Unset (the default) ⇒ byte-identical to today's single-key behavior; no
|
|
121
|
+
* second key is ever touched.
|
|
122
|
+
*/
|
|
123
|
+
legacyKey?: string;
|
|
100
124
|
/** Fired (once) when the renewal loop detects the lease was lost. */
|
|
101
125
|
onLeaseLost?: () => void;
|
|
102
126
|
telemetry?: LeaseTelemetry;
|
|
@@ -119,6 +143,8 @@ export declare class SingleActiveLease {
|
|
|
119
143
|
readonly ownerId: string;
|
|
120
144
|
readonly key: string;
|
|
121
145
|
readonly fenceCounterKey: string;
|
|
146
|
+
/** The optional sunset-dated deploy-window legacy key (D402 e7eec3aa). */
|
|
147
|
+
readonly legacyKey: string | null;
|
|
122
148
|
private readonly redis;
|
|
123
149
|
private readonly ttlMs;
|
|
124
150
|
private readonly ttlSeconds;
|
|
@@ -151,6 +177,18 @@ export declare class SingleActiveLease {
|
|
|
151
177
|
private emit;
|
|
152
178
|
/** Start the ttl/2 renewal loop (CAS on `owner:token`). */
|
|
153
179
|
private startRenewLoop;
|
|
180
|
+
/**
|
|
181
|
+
* Issue a CAS-renew eval, gating BOTH keys when a legacy key is configured
|
|
182
|
+
* (KEYS[2] = legacy key, ARGV[2] = bare ownerId). Unset ⇒ the 1-key form,
|
|
183
|
+
* byte-identical to the pre-legacyKey renew (KEYS[2] is nil in Lua).
|
|
184
|
+
*/
|
|
185
|
+
private renewEval;
|
|
186
|
+
/**
|
|
187
|
+
* Issue a CAS-release eval, deleting BOTH keys when a legacy key is configured
|
|
188
|
+
* (KEYS[2] = legacy key, ARGV[2] = bare ownerId), each only if we own it.
|
|
189
|
+
* Unset ⇒ the 1-key form, byte-identical to the pre-legacyKey release.
|
|
190
|
+
*/
|
|
191
|
+
private releaseEval;
|
|
154
192
|
/** One CAS renew. Marks the lease lost (and stops the loop) on failure. */
|
|
155
193
|
private renewOnce;
|
|
156
194
|
private markLost;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-active-lease.d.ts","sourceRoot":"","sources":["../../src/worker/single-active-lease.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,UAAU,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;KAC9C,GAAG,IAAI,CAAC;CACV;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CACF,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAClC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"single-active-lease.d.ts","sourceRoot":"","sources":["../../src/worker/single-active-lease.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,34 +51,71 @@
|
|
|
51
51
|
import { uuidv7 } from "../uuid.js";
|
|
52
52
|
import { WORKER_METRIC_NAMES } from "./observability-hooks.js";
|
|
53
53
|
/** Atomic acquire: capture the next monotonic fence + take the lock under NX.
|
|
54
|
-
* KEYS[1] = lease key, KEYS[2] = fence counter key
|
|
54
|
+
* KEYS[1] = lease key, KEYS[2] = fence counter key, KEYS[3] = legacy key
|
|
55
|
+
* (present iff `legacyKey` is configured — see the `legacyKey` opt / D402
|
|
56
|
+
* decision e7eec3aa).
|
|
55
57
|
* ARGV[1] = ownerId, ARGV[2] = ttl seconds.
|
|
56
|
-
* Returns the captured fence token (a number) on success, or
|
|
57
|
-
*
|
|
58
|
+
* Returns the captured fence token (a number) on success, or false if the
|
|
59
|
+
* lock — or, when a legacy key is given, EITHER key — is already held by
|
|
60
|
+
* someone else (no token is consumed in that case).
|
|
61
|
+
*
|
|
62
|
+
* BOTH-OR-NEITHER (deploy-window compat): when KEYS[3] is present the acquire
|
|
63
|
+
* succeeds ONLY if BOTH the canonical lease key AND the legacy key are free,
|
|
64
|
+
* and atomically SETs the canonical key to `<owner>:<fence>` AND the legacy
|
|
65
|
+
* key to the BARE `<owner>` (the old SET-NX-EX value shape). This makes a new
|
|
66
|
+
* substrate-keyed holder and an OLD legacy-keyed instance mutually exclude
|
|
67
|
+
* during a rolling deploy. With no KEYS[3] the script is byte-identical to the
|
|
68
|
+
* single-key form (no second key is touched). */
|
|
58
69
|
const ACQUIRE_LUA = `
|
|
59
70
|
if redis.call("EXISTS", KEYS[1]) == 1 then
|
|
60
71
|
return false
|
|
61
72
|
end
|
|
73
|
+
if KEYS[3] ~= nil and redis.call("EXISTS", KEYS[3]) == 1 then
|
|
74
|
+
return false
|
|
75
|
+
end
|
|
62
76
|
local fence = redis.call("INCR", KEYS[2])
|
|
63
77
|
local val = ARGV[1] .. ":" .. tostring(fence)
|
|
64
78
|
redis.call("SET", KEYS[1], val, "EX", tonumber(ARGV[2]))
|
|
79
|
+
if KEYS[3] ~= nil then
|
|
80
|
+
redis.call("SET", KEYS[3], ARGV[1], "EX", tonumber(ARGV[2]))
|
|
81
|
+
end
|
|
65
82
|
return fence
|
|
66
83
|
`;
|
|
67
84
|
/** CAS-renew: EXPIRE only if the key's current value is exactly our
|
|
68
|
-
* `owner:token`.
|
|
85
|
+
* `owner:token`. KEYS[1] = lease key, KEYS[2] = legacy key (present iff a
|
|
86
|
+
* legacy key is configured). ARGV[1] = `owner:token`, ARGV[2] = ownerId
|
|
87
|
+
* (the bare legacy value), ARGV[3] = ttl seconds.
|
|
88
|
+
*
|
|
89
|
+
* When KEYS[2] is present BOTH keys are renewed, EACH only if WE still own it
|
|
90
|
+
* (canonical CAS on `owner:token`, legacy CAS on the bare `owner`). With no
|
|
91
|
+
* KEYS[2] this is byte-identical to the single-key renew. */
|
|
69
92
|
const RENEW_LUA = `
|
|
93
|
+
local held = 0
|
|
70
94
|
if redis.call("GET", KEYS[1]) == ARGV[1] then
|
|
71
|
-
|
|
95
|
+
redis.call("EXPIRE", KEYS[1], ARGV[3])
|
|
96
|
+
held = 1
|
|
97
|
+
end
|
|
98
|
+
if KEYS[2] ~= nil and redis.call("GET", KEYS[2]) == ARGV[2] then
|
|
99
|
+
redis.call("EXPIRE", KEYS[2], ARGV[3])
|
|
72
100
|
end
|
|
73
|
-
return
|
|
101
|
+
return held
|
|
74
102
|
`;
|
|
75
103
|
/** CAS-release: DEL only if the key's current value is exactly our
|
|
76
|
-
* `owner:token`.
|
|
104
|
+
* `owner:token`. KEYS[1] = lease key, KEYS[2] = legacy key (present iff a
|
|
105
|
+
* legacy key is configured). ARGV[1] = `owner:token`, ARGV[2] = ownerId
|
|
106
|
+
* (the bare legacy value).
|
|
107
|
+
*
|
|
108
|
+
* When KEYS[2] is present BOTH keys are deleted, EACH only if WE own it. With
|
|
109
|
+
* no KEYS[2] this is byte-identical to the single-key release. */
|
|
77
110
|
const RELEASE_LUA = `
|
|
111
|
+
local deleted = 0
|
|
78
112
|
if redis.call("GET", KEYS[1]) == ARGV[1] then
|
|
79
|
-
|
|
113
|
+
deleted = redis.call("DEL", KEYS[1])
|
|
80
114
|
end
|
|
81
|
-
|
|
115
|
+
if KEYS[2] ~= nil and redis.call("GET", KEYS[2]) == ARGV[2] then
|
|
116
|
+
redis.call("DEL", KEYS[2])
|
|
117
|
+
end
|
|
118
|
+
return deleted
|
|
82
119
|
`;
|
|
83
120
|
/** Canonical lease key shape, pinned by D402. */
|
|
84
121
|
export function leaseKey(service, scope) {
|
|
@@ -179,6 +216,8 @@ export class SingleActiveLease {
|
|
|
179
216
|
ownerId;
|
|
180
217
|
key;
|
|
181
218
|
fenceCounterKey;
|
|
219
|
+
/** The optional sunset-dated deploy-window legacy key (D402 e7eec3aa). */
|
|
220
|
+
legacyKey;
|
|
182
221
|
redis;
|
|
183
222
|
ttlMs;
|
|
184
223
|
ttlSeconds;
|
|
@@ -199,6 +238,7 @@ export class SingleActiveLease {
|
|
|
199
238
|
this.telemetry = opts.telemetry;
|
|
200
239
|
this.key = leaseKey(opts.service, opts.scope);
|
|
201
240
|
this.fenceCounterKey = fenceKey(opts.service, opts.scope);
|
|
241
|
+
this.legacyKey = opts.legacyKey ?? null;
|
|
202
242
|
}
|
|
203
243
|
/** Did we currently hold the lease as of the last acquire/renew? */
|
|
204
244
|
get leaseAcquired() {
|
|
@@ -218,7 +258,12 @@ export class SingleActiveLease {
|
|
|
218
258
|
* fence token is captured atomically inside the acquire Lua.
|
|
219
259
|
*/
|
|
220
260
|
async acquire() {
|
|
221
|
-
|
|
261
|
+
// With a legacy key configured, pass it as KEYS[3] so the acquire Lua
|
|
262
|
+
// both-or-neither-gates the legacy key too. Unset ⇒ the 2-key form, which is
|
|
263
|
+
// byte-identical to the pre-legacyKey behavior (KEYS[3] is nil in Lua).
|
|
264
|
+
const result = this.legacyKey !== null
|
|
265
|
+
? await this.redis.eval(ACQUIRE_LUA, 3, this.key, this.fenceCounterKey, this.legacyKey, this.ownerId, String(this.ttlSeconds))
|
|
266
|
+
: await this.redis.eval(ACQUIRE_LUA, 2, this.key, this.fenceCounterKey, this.ownerId, String(this.ttlSeconds));
|
|
222
267
|
// Lua `false` → not acquired; a number → our captured fence.
|
|
223
268
|
if (result === false || result === null) {
|
|
224
269
|
this._acquired = false;
|
|
@@ -269,10 +314,30 @@ export class SingleActiveLease {
|
|
|
269
314
|
}, renewMs);
|
|
270
315
|
this.renewTimer.unref?.();
|
|
271
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Issue a CAS-renew eval, gating BOTH keys when a legacy key is configured
|
|
319
|
+
* (KEYS[2] = legacy key, ARGV[2] = bare ownerId). Unset ⇒ the 1-key form,
|
|
320
|
+
* byte-identical to the pre-legacyKey renew (KEYS[2] is nil in Lua).
|
|
321
|
+
*/
|
|
322
|
+
renewEval(encoded) {
|
|
323
|
+
return this.legacyKey !== null
|
|
324
|
+
? this.redis.eval(RENEW_LUA, 2, this.key, this.legacyKey, encoded, this.ownerId, String(this.ttlSeconds))
|
|
325
|
+
: this.redis.eval(RENEW_LUA, 1, this.key, encoded, this.ownerId, String(this.ttlSeconds));
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Issue a CAS-release eval, deleting BOTH keys when a legacy key is configured
|
|
329
|
+
* (KEYS[2] = legacy key, ARGV[2] = bare ownerId), each only if we own it.
|
|
330
|
+
* Unset ⇒ the 1-key form, byte-identical to the pre-legacyKey release.
|
|
331
|
+
*/
|
|
332
|
+
releaseEval(encoded) {
|
|
333
|
+
return this.legacyKey !== null
|
|
334
|
+
? this.redis.eval(RELEASE_LUA, 2, this.key, this.legacyKey, encoded, this.ownerId)
|
|
335
|
+
: this.redis.eval(RELEASE_LUA, 1, this.key, encoded, this.ownerId);
|
|
336
|
+
}
|
|
272
337
|
/** One CAS renew. Marks the lease lost (and stops the loop) on failure. */
|
|
273
338
|
async renewOnce(encoded) {
|
|
274
339
|
try {
|
|
275
|
-
const r = (await this.
|
|
340
|
+
const r = (await this.renewEval(encoded));
|
|
276
341
|
if (Number(r) === 1) {
|
|
277
342
|
// CANONICAL renewed_total, ISOLATED — a metric throw here must NOT reach
|
|
278
343
|
// the outer catch (which would FALSE-mark the lease lost on a HEALTHY
|
|
@@ -321,7 +386,7 @@ export class SingleActiveLease {
|
|
|
321
386
|
return false;
|
|
322
387
|
const encoded = encodeLeaseValue(this.ownerId, this._fencingToken);
|
|
323
388
|
try {
|
|
324
|
-
const r = (await this.
|
|
389
|
+
const r = (await this.renewEval(encoded));
|
|
325
390
|
const held = Number(r) === 1;
|
|
326
391
|
if (!held)
|
|
327
392
|
this.markLost("lost");
|
|
@@ -384,7 +449,7 @@ export class SingleActiveLease {
|
|
|
384
449
|
return;
|
|
385
450
|
const encoded = encodeLeaseValue(this.ownerId, this._fencingToken);
|
|
386
451
|
try {
|
|
387
|
-
await this.
|
|
452
|
+
await this.releaseEval(encoded);
|
|
388
453
|
}
|
|
389
454
|
catch {
|
|
390
455
|
/* swallow — key TTL-expires anyway */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-active-lease.js","sourceRoot":"","sources":["../../src/worker/single-active-lease.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4CAA4C;AAC5C,EAAE;AACF,sEAAsE;AACtE,0EAA0E;AAC1E,8EAA8E;AAC9E,+DAA+D;AAC/D,oGAAoG;AACpG,4EAA4E;AAC5E,EAAE;AACF,sCAAsC;AACtC,+DAA+D;AAC/D,iDAAiD;AACjD,kEAAkE;AAClE,+DAA+D;AAC/D,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,sBAAsB;AACtB,8BAA8B;AAC9B,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,EAAE;AACF,+DAA+D;AAC/D,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,0DAA0D;AAC1D,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,2EAA2E;AAC3E,4EAA4E;AAC5E,2DAA2D;AAC3D,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,uEAAuE;AACvE,gFAAgF;AAChF,gFAAgF;AAChF,yEAAyE;AACzE,iCAAiC;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAqC/D
|
|
1
|
+
{"version":3,"file":"single-active-lease.js","sourceRoot":"","sources":["../../src/worker/single-active-lease.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodii/telemetry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Substrate observability library for the Nodii microservice stack — OTel wrapper, log envelope, intent lifecycle, audit signal, agent registry, context propagation. Spec: planning hub docKey=telemetry.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|