pg-boss 12.35.0 → 12.36.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.
@@ -1 +1 @@
1
- {"version":3,"file":"migrationStore.d.ts","sourceRoot":"","sources":["../src/migrationStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAKnC,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IAKrB,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAA;CAC7C;AAoGD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AASD,iBAAS,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAsB5G;AAED,iBAAS,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAQxG;AAKD,iBAAS,eAAe,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,iBAAiB,CAiDrK;AAKD,iBAAS,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,UAIzI;AAgoCD,iBAAS,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9C;AAID,iBAAS,eAAe,CAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,QAAQ,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAE3K;AAOD,iBAAS,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAQ,EAAE,UAAU,UAAQ,EAAE,mBAAmB,UAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CA4oB3H;AAED,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,eAAe,EACf,MAAM,EACN,eAAe,EACf,aAAa,GACd,CAAA"}
1
+ {"version":3,"file":"migrationStore.d.ts","sourceRoot":"","sources":["../src/migrationStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAKnC,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IAKrB,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAA;CAC7C;AAoGD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AASD,iBAAS,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAsB5G;AAED,iBAAS,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAQxG;AAKD,iBAAS,eAAe,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,iBAAiB,CAiDrK;AAKD,iBAAS,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,UAIzI;AAgoCD,iBAAS,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9C;AAID,iBAAS,eAAe,CAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,QAAQ,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAE3K;AAOD,iBAAS,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAQ,EAAE,UAAU,UAAQ,EAAE,mBAAmB,UAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CA+sB3H;AAED,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,eAAe,EACf,MAAM,EACN,eAAe,EACf,aAAa,GACd,CAAA"}
@@ -1963,6 +1963,73 @@ AS $function$
1963
1963
  DROP COLUMN source_output,
1964
1964
  DROP COLUMN source_root_id`
1965
1965
  ]
1966
+ },
1967
+ {
1968
+ release: '12.36.0',
1969
+ version: 44,
1970
+ previous: 43,
1971
+ // The instance table starts empty: each instance registers on its next start().
1972
+ // blocked_count's constant default adds it without a table rewrite, and existing queues read 0
1973
+ // until the next monitor pass counts them. It goes on the queue row only, not queue_stats, so
1974
+ // the covering index on queue_stats needs no rebuild.
1975
+ // The histogram and ready_oldest_seconds columns are nullable with no default, like the v43
1976
+ // deltas, so no statement rewrites a table, and a snapshot captured before them reads as not
1977
+ // counted rather than as a queue with no waits.
1978
+ // trace_context is nullable with no default too, so adding it rewrites no rows.
1979
+ install: [
1980
+ /* eslint-disable no-restricted-syntax -- column defaults stay on the real clock: every pg-boss write names its timestamps through job_now() */
1981
+ `CREATE TABLE ${schema}.instance (
1982
+ id uuid PRIMARY KEY,
1983
+ name text,
1984
+ host text NOT NULL,
1985
+ pid int NOT NULL,
1986
+ version text NOT NULL,
1987
+ node_version text NOT NULL,
1988
+ application_name text,
1989
+ heartbeat_seconds int NOT NULL,
1990
+ supervise bool NOT NULL,
1991
+ schedule bool NOT NULL,
1992
+ migrate bool NOT NULL,
1993
+ persist_queue_stats bool NOT NULL,
1994
+ persist_warnings bool NOT NULL,
1995
+ pool_max int,
1996
+ pool_total int,
1997
+ pool_idle int,
1998
+ pool_waiting int,
1999
+ workers jsonb NOT NULL DEFAULT '[]'::jsonb,
2000
+ metrics jsonb,
2001
+ config jsonb NOT NULL DEFAULT '{}'::jsonb,
2002
+ crash_restarts int NOT NULL DEFAULT 0,
2003
+ crash_restarts_since timestamptz,
2004
+ started_on timestamptz NOT NULL DEFAULT now(),
2005
+ heartbeat_on timestamptz NOT NULL DEFAULT now(),
2006
+ stopped_on timestamptz
2007
+ )`,
2008
+ /* eslint-enable no-restricted-syntax */
2009
+ `ALTER TABLE ${schema}.queue
2010
+ ADD COLUMN blocked_count int NOT NULL DEFAULT 0,
2011
+ ADD COLUMN wait_bins int[],
2012
+ ADD COLUMN run_bins int[],
2013
+ ADD COLUMN ready_oldest_seconds int`,
2014
+ `ALTER TABLE ${schema}.queue_stats
2015
+ ADD COLUMN wait_bins int[],
2016
+ ADD COLUMN run_bins int[],
2017
+ ADD COLUMN ready_oldest_seconds int`,
2018
+ `ALTER TABLE ${schema}.job ADD COLUMN IF NOT EXISTS trace_context jsonb`
2019
+ ],
2020
+ uninstall: [
2021
+ `DROP TABLE ${schema}.instance`,
2022
+ `ALTER TABLE ${schema}.queue
2023
+ DROP COLUMN blocked_count,
2024
+ DROP COLUMN wait_bins,
2025
+ DROP COLUMN run_bins,
2026
+ DROP COLUMN ready_oldest_seconds`,
2027
+ `ALTER TABLE ${schema}.queue_stats
2028
+ DROP COLUMN wait_bins,
2029
+ DROP COLUMN run_bins,
2030
+ DROP COLUMN ready_oldest_seconds`,
2031
+ `ALTER TABLE ${schema}.job DROP COLUMN trace_context`
2032
+ ]
1966
2033
  }
1967
2034
  ];
1968
2035
  }
@@ -0,0 +1,20 @@
1
+ import type * as types from './types.ts';
2
+ interface Hierarchy {
3
+ dirs: string[];
4
+ }
5
+ export interface Cgroup {
6
+ version: 1 | 2;
7
+ cpu: Hierarchy | null;
8
+ memory: Hierarchy | null;
9
+ }
10
+ export declare function findCgroup(prefix?: string): Promise<Cgroup | null>;
11
+ export declare function countCpuList(list: string): number | null;
12
+ declare class Nurse {
13
+ #private;
14
+ constructor(prefix?: string);
15
+ start(): void;
16
+ stop(): void;
17
+ check(): Promise<types.InstanceMetrics>;
18
+ }
19
+ export default Nurse;
20
+ //# sourceMappingURL=nurse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nurse.d.ts","sourceRoot":"","sources":["../src/nurse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAmBxC,UAAU,SAAS;IAGjB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;IACd,GAAG,EAAE,SAAS,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAA;CACzB;AAmDD,wBAAsB,UAAU,CAAE,MAAM,SAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkDrE;AA0ED,wBAAgB,YAAY,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUzD;AAYD,cAAM,KAAK;;gBASI,MAAM,SAAK;IAIxB,KAAK;IAgBL,IAAI;IAOE,KAAK,IAAK,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;CAmF/C;AAED,eAAe,KAAK,CAAA"}
package/dist/nurse.js ADDED
@@ -0,0 +1,287 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import { monitorEventLoopDelay, performance } from 'node:perf_hooks';
4
+ import v8 from 'node:v8';
5
+ // Takes this process's vitals on each registry heartbeat: what it is using and what it is allowed. Inside a
6
+ // container the host-wide figures Node offers are the wrong ones: os.totalmem(), os.freemem(),
7
+ // os.loadavg() and os.cpus() describe the machine, not the container, and os.availableParallelism()
8
+ // ignores a CPU quota under one core (12 at --cpus=0.5) and rounds others down (1 at --cpus=1.5). So
9
+ // limits and container usage are read from the cgroup files this process is charged to, found through
10
+ // /proc/self/cgroup and /proc/self/mountinfo, which covers cgroup v1 and v2 and a private or host
11
+ // cgroup namespace alike. Off Linux, or where those files cannot be read, the limits fall back to the
12
+ // host and the container-only figures are null. Nothing here throws: a figure that cannot be read is
13
+ // null, and the heartbeat goes out regardless.
14
+ // Event loop delay is sampled on a timer of this resolution, which every sample includes and which is
15
+ // subtracted, so an idle loop reads close to zero.
16
+ const LOOP_RESOLUTION_MS = 20;
17
+ // cgroup v1 writes "no limit" as the largest page-aligned int64, not as a word.
18
+ const V1_UNLIMITED = 2 ** 60;
19
+ // mountinfo escapes spaces and other octal characters in paths as \NNN.
20
+ const unescape = (s) => s.replace(/\\([0-7]{3})/g, (_, n) => String.fromCharCode(parseInt(n, 8)));
21
+ function parseMountInfo(text) {
22
+ const mounts = [];
23
+ for (const line of text.split('\n')) {
24
+ const sep = line.indexOf(' - ');
25
+ if (sep < 0)
26
+ continue;
27
+ const pre = line.slice(0, sep).split(' ');
28
+ const post = line.slice(sep + 3).split(' ');
29
+ if (pre.length < 5 || post.length < 3)
30
+ continue;
31
+ mounts.push({ root: unescape(pre[3]), mountPoint: unescape(pre[4]), fsType: post[0], superOptions: post[2].split(',') });
32
+ }
33
+ return mounts;
34
+ }
35
+ // Maps a cgroup path, as /proc/self/cgroup gives it, to directories under the mount that shows it. A
36
+ // mount's root is the part of the hierarchy it exposes: "/" for a whole hierarchy or a private cgroup
37
+ // namespace, the container's own cgroup for Docker on cgroup v1.
38
+ function hierarchy(prefix, mount, path) {
39
+ let rel = path;
40
+ if (mount.root !== '/') {
41
+ rel = path === mount.root || path.startsWith(mount.root + '/') ? path.slice(mount.root.length) : '';
42
+ }
43
+ const base = prefix + mount.mountPoint;
44
+ const parts = rel.split('/').filter(Boolean);
45
+ const dirs = [];
46
+ for (let i = parts.length; i >= 0; i--) {
47
+ dirs.push([base, ...parts.slice(0, i)].join('/'));
48
+ }
49
+ return { dirs };
50
+ }
51
+ // Finds the cgroup this process is charged to. `prefix` is prepended to every path read, for tests.
52
+ export async function findCgroup(prefix = '') {
53
+ let self;
54
+ try {
55
+ self = await readFile(prefix + '/proc/self/cgroup', 'utf8');
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ const entries = self.split('\n').filter(Boolean).map(line => {
61
+ const [id, controllers, ...path] = line.split(':');
62
+ return { id, controllers: controllers ? controllers.split(',') : [], path: path.join(':') };
63
+ });
64
+ // A sandbox can refuse mountinfo while allowing the rest (AppArmor under snap does). Then assume
65
+ // the usual layout, each hierarchy mounted whole under /sys/fs/cgroup: walking up from the path
66
+ // still reaches the mount's root, which is the container's own cgroup under a private namespace
67
+ // and under Docker's v1 mounts alike.
68
+ let mounts;
69
+ try {
70
+ mounts = parseMountInfo(await readFile(prefix + '/proc/self/mountinfo', 'utf8'));
71
+ }
72
+ catch {
73
+ mounts = entries.map(e => e.controllers.length
74
+ ? { root: '/', mountPoint: '/sys/fs/cgroup/' + e.controllers.join(','), fsType: 'cgroup', superOptions: e.controllers }
75
+ : { root: '/', mountPoint: '/sys/fs/cgroup', fsType: 'cgroup2', superOptions: [] });
76
+ }
77
+ // A v1 hierarchy for a controller wins over a v2 one: on a hybrid host the unified hierarchy is
78
+ // mounted but the cpu and memory controllers stay on v1.
79
+ const v1 = (controller) => {
80
+ const entry = entries.find(e => e.controllers.includes(controller));
81
+ const mount = mounts.find(m => m.fsType === 'cgroup' && m.superOptions.includes(controller));
82
+ return entry && mount ? hierarchy(prefix, mount, entry.path) : null;
83
+ };
84
+ const cpu = v1('cpu');
85
+ const memory = v1('memory');
86
+ if (cpu || memory) {
87
+ return { version: 1, cpu, memory };
88
+ }
89
+ const unified = entries.find(e => e.id === '0' && e.controllers.length === 0);
90
+ const mount = mounts.find(m => m.fsType === 'cgroup2');
91
+ if (unified && mount) {
92
+ const h = hierarchy(prefix, mount, unified.path);
93
+ return { version: 2, cpu: h, memory: h };
94
+ }
95
+ return null;
96
+ }
97
+ async function read(path) {
98
+ try {
99
+ return (await readFile(path, 'utf8')).trim();
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ }
105
+ function statField(text, key) {
106
+ if (!text)
107
+ return null;
108
+ const m = new RegExp(`^${key} (\\d+)$`, 'm').exec(text);
109
+ return m ? Number(m[1]) : null;
110
+ }
111
+ // The tightest CPU quota in cores on this cgroup or a parent, and where it is set.
112
+ async function cpuQuota(cg) {
113
+ if (!cg.cpu)
114
+ return null;
115
+ let best = null;
116
+ for (const dir of cg.cpu.dirs) {
117
+ let cores = null;
118
+ if (cg.version === 2) {
119
+ const [quota, period] = (await read(dir + '/cpu.max'))?.split(' ') ?? [];
120
+ if (quota && quota !== 'max' && Number(period) > 0)
121
+ cores = Number(quota) / Number(period);
122
+ }
123
+ else {
124
+ const quota = Number(await read(dir + '/cpu.cfs_quota_us'));
125
+ const period = Number(await read(dir + '/cpu.cfs_period_us'));
126
+ if (quota > 0 && period > 0)
127
+ cores = quota / period;
128
+ }
129
+ if (cores !== null && cores > 0 && (!best || cores < best.value))
130
+ best = { value: cores, dir };
131
+ }
132
+ return best;
133
+ }
134
+ // The tightest memory limit in bytes on this cgroup or a parent, and where it is set.
135
+ async function memoryLimit(cg) {
136
+ if (!cg.memory)
137
+ return null;
138
+ let best = null;
139
+ for (const dir of cg.memory.dirs) {
140
+ const text = await read(dir + (cg.version === 2 ? '/memory.max' : '/memory.limit_in_bytes'));
141
+ if (!text || text === 'max')
142
+ continue;
143
+ const bytes = Number(text);
144
+ if (!(bytes > 0) || bytes >= V1_UNLIMITED)
145
+ continue;
146
+ if (!best || bytes < best.value)
147
+ best = { value: bytes, dir };
148
+ }
149
+ return best;
150
+ }
151
+ // Memory in use by the cgroup less its inactive file cache: the working set that container runtimes
152
+ // and the kubelet compare against the limit, since inactive cache is reclaimed before anything is killed.
153
+ async function workingSet(cg, dir) {
154
+ const usage = Number(await read(dir + (cg.version === 2 ? '/memory.current' : '/memory.usage_in_bytes')) ?? NaN);
155
+ if (!(usage >= 0))
156
+ return null;
157
+ const inactive = statField(await read(dir + '/memory.stat'), cg.version === 2 ? 'inactive_file' : 'total_inactive_file') ?? 0;
158
+ return Math.max(0, usage - inactive);
159
+ }
160
+ // Counts the CPUs this process may be scheduled on, from a list such as "0-3,8,10-11".
161
+ export function countCpuList(list) {
162
+ let n = 0;
163
+ for (const part of list.split(',')) {
164
+ const m = /^(\d+)(?:-(\d+))?$/.exec(part.trim());
165
+ if (!m)
166
+ return null;
167
+ n += m[2] === undefined ? 1 : Number(m[2]) - Number(m[1]) + 1;
168
+ }
169
+ return n > 0 ? n : null;
170
+ }
171
+ async function allowedCpus(prefix) {
172
+ const status = await read(prefix + '/proc/self/status');
173
+ const list = status && /^Cpus_allowed_list:\s*(\S+)$/m.exec(status)?.[1];
174
+ const n = list ? countCpuList(list) : null;
175
+ return n ?? os.availableParallelism();
176
+ }
177
+ const round = (n, places) => Math.round(n * 10 ** places) / 10 ** places;
178
+ class Nurse {
179
+ #prefix;
180
+ #cgroup = null;
181
+ #loop = null;
182
+ #elu = null;
183
+ #cpu = null;
184
+ #at = null;
185
+ #throttle = null;
186
+ constructor(prefix = '') {
187
+ this.#prefix = prefix;
188
+ }
189
+ start() {
190
+ this.#cgroup = findCgroup(this.#prefix).catch(() => null);
191
+ try {
192
+ this.#loop = monitorEventLoopDelay({ resolution: LOOP_RESOLUTION_MS });
193
+ this.#loop.enable();
194
+ }
195
+ catch {
196
+ this.#loop = null;
197
+ }
198
+ this.#cpu = null;
199
+ this.#at = null;
200
+ this.#elu = null;
201
+ this.#throttle = null;
202
+ }
203
+ stop() {
204
+ this.#loop?.disable();
205
+ this.#loop = null;
206
+ }
207
+ // Rates cover the time since the previous check. The first check after start() only sets the
208
+ // baseline, since at registration it would cover a few microseconds, so its rates are null.
209
+ async check() {
210
+ const first = this.#at === null;
211
+ const now = process.hrtime.bigint();
212
+ const cpuNow = process.cpuUsage();
213
+ const elapsedMicros = first ? 0 : Number(now - this.#at) / 1000;
214
+ const cpu = !first && this.#cpu && elapsedMicros > 0
215
+ ? ((cpuNow.user - this.#cpu.user) + (cpuNow.system - this.#cpu.system)) / elapsedMicros
216
+ : null;
217
+ this.#cpu = cpuNow;
218
+ this.#at = now;
219
+ let loopDelay = null;
220
+ let loopDelayMax = null;
221
+ if (this.#loop) {
222
+ if (!first && this.#loop.count > 0) {
223
+ loopDelay = Math.max(0, this.#loop.percentile(99) / 1e6 - LOOP_RESOLUTION_MS);
224
+ loopDelayMax = Math.max(0, this.#loop.max / 1e6 - LOOP_RESOLUTION_MS);
225
+ }
226
+ this.#loop.reset();
227
+ }
228
+ let loopUtilization = null;
229
+ try {
230
+ const next = performance.eventLoopUtilization();
231
+ // Bun's is a stub that always reads zero, which would chart as an idle loop.
232
+ if (next.idle === 0 && next.active === 0)
233
+ throw new Error('unsupported');
234
+ if (!first && this.#elu)
235
+ loopUtilization = performance.eventLoopUtilization(next, this.#elu).utilization;
236
+ this.#elu = next;
237
+ }
238
+ catch { }
239
+ let heapUsed = null;
240
+ let heapLimit = null;
241
+ try {
242
+ const heap = v8.getHeapStatistics();
243
+ heapUsed = heap.used_heap_size;
244
+ heapLimit = heap.heap_size_limit;
245
+ }
246
+ catch { }
247
+ let rss = null;
248
+ try {
249
+ rss = process.memoryUsage.rss();
250
+ }
251
+ catch { }
252
+ const cg = await this.#cgroup;
253
+ const quota = cg ? await cpuQuota(cg) : null;
254
+ const memLimit = cg ? await memoryLimit(cg) : null;
255
+ const cpus = await allowedCpus(this.#prefix);
256
+ return {
257
+ cgroup: cg?.version ?? null,
258
+ cpu: cpu === null ? null : round(cpu, 3),
259
+ cpuLimit: round(quota ? Math.min(quota.value, cpus) : cpus, 3),
260
+ cpuThrottled: cg && quota ? await this.#throttled(cg, quota.dir) : null,
261
+ rss,
262
+ heapUsed,
263
+ heapLimit,
264
+ memoryUsed: cg && memLimit ? await workingSet(cg, memLimit.dir) : null,
265
+ memoryLimit: memLimit ? memLimit.value : os.totalmem(),
266
+ loopDelay: loopDelay === null ? null : round(loopDelay, 1),
267
+ loopDelayMax: loopDelayMax === null ? null : round(loopDelayMax, 1),
268
+ loopUtilization: loopUtilization === null ? null : round(loopUtilization, 3)
269
+ };
270
+ }
271
+ // The share of CPU periods since the previous check in which the cgroup that holds the quota ran
272
+ // out of it and was paused. Null on the first check, or when the quota moved to another cgroup.
273
+ async #throttled(cg, dir) {
274
+ const text = await read(dir + '/cpu.stat');
275
+ const periods = statField(text, 'nr_periods');
276
+ const throttled = statField(text, 'nr_throttled');
277
+ if (periods === null || throttled === null)
278
+ return null;
279
+ const prev = this.#throttle;
280
+ this.#throttle = { dir, periods, throttled };
281
+ if (!prev || prev.dir !== dir)
282
+ return null;
283
+ const dp = periods - prev.periods;
284
+ return dp > 0 ? round((throttled - prev.throttled) / dp, 3) : 0;
285
+ }
286
+ }
287
+ export default Nurse;
package/dist/plans.d.ts CHANGED
@@ -90,7 +90,21 @@ export declare function createClockFunction(schema: string, options?: {
90
90
  export declare function createTableWarning(schema: string): string;
91
91
  export declare function createIndexWarning(schema: string): string;
92
92
  export declare function createTableJobDependency(schema: string): string;
93
+ export declare const INSTANCE_QUIET_BEATS = 3;
94
+ export declare const INSTANCE_RETENTION_DAYS = 7;
95
+ export declare const INSTANCE_DEAD_KEPT_PER_NAME = 20;
96
+ export declare const INSTANCE_DEAD_KEPT = 1000;
97
+ export declare function pruneInstanceLives(schema: string, keep: number): string;
98
+ export declare function trimDeadInstances(schema: string, keep: number): string;
99
+ export declare function countCrashRestarts(schema: string): string;
100
+ export declare function crashRecountAt(schema: string): string;
101
+ export declare function registerInstance(schema: string): string;
102
+ export declare function heartbeatInstance(schema: string): string;
103
+ export declare function stopInstance(schema: string): string;
104
+ export declare function deleteOldInstances(schema: string, days: number): string;
105
+ export declare function getInstances(schema: string): string;
93
106
  export declare function createIndexJobDependencyParent(schema: string): string;
107
+ export declare function createTableInstance(schema: string): string;
94
108
  export declare function jobTableFormatFunction(schema: string): string;
95
109
  export declare function createQueue(schema: string, name: string, options: unknown, noAdvisoryLocks?: boolean): string;
96
110
  export declare function notifyChannelSql(schema: string): string;
@@ -105,11 +119,13 @@ export declare function trySetFlowTime(schema: string, seconds: number): string;
105
119
  export declare function trySetReindexTime(schema: string, seconds: number): string;
106
120
  export declare function queueClaimSkipLocked(backend: string | undefined, noSkipLocked?: boolean): boolean;
107
121
  export declare function updateQueue(schema: string): string;
122
+ export declare function currentDatabase(): string;
108
123
  export declare function getQueues(schema: string, names?: string[]): SqlQuery;
109
124
  export declare function deleteJobsById(schema: string, table: string, fenced?: boolean): string;
110
125
  export declare function deleteQueuedJobs(schema: string, table: string): string;
111
126
  export declare function deleteStoredJobs(schema: string, table: string): string;
112
127
  export declare function truncateTable(schema: string, table: string): string;
128
+ export declare function zeroQueueStats(schema: string, one?: boolean): string;
113
129
  export declare function deleteAllJobs(schema: string, table: string): string;
114
130
  export declare function getSchedules(schema: string): string;
115
131
  export declare function getSchedulesByQueue(schema: string): string;
@@ -164,6 +180,7 @@ interface FetchJobOptions {
164
180
  policy: string | undefined;
165
181
  limit: number;
166
182
  includeMetadata?: boolean;
183
+ includeTraceContext?: boolean;
167
184
  priority?: boolean;
168
185
  orderByCreatedOn?: boolean;
169
186
  ignoreStartAfter?: boolean;
@@ -243,6 +260,9 @@ export interface DeltaWindowOptions {
243
260
  }
244
261
  export declare function deltaResetMax(intervalSeconds: number): string;
245
262
  export declare function trueUpQueueStats(schema: string, table: string, queues: string[], noAdvisoryLocks?: boolean, window?: DeltaWindowOptions): string;
263
+ export declare const LATENCY_BINS = 46;
264
+ export declare const LATENCY_SLOTS: number;
265
+ export declare const LATENCY_MIN_SECONDS = 0.01;
246
266
  export declare function getQueueStats(schema: string, table: string, queues: string[], throughput?: boolean, window?: DeltaWindowOptions): SqlQuery;
247
267
  export declare const READY_HISTORY_SIZE = 60;
248
268
  export declare function cacheQueueStats(schema: string, table: string, queues: string[], noAdvisoryLocks?: boolean, throughput?: boolean, window?: DeltaWindowOptions): string;
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}