@objectstack/observability 17.2.0 → 17.3.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/CHANGELOG.md +379 -0
- package/dist/index.cjs +49 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +49 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,384 @@
|
|
|
1
1
|
# @objectstack/observability
|
|
2
2
|
|
|
3
|
+
## 17.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 37e82eb: Surface a licensed `max_nodes` oversell to operators as telemetry
|
|
8
|
+
|
|
9
|
+
`os serve` already warned loudly at boot when `OS_CLUSTER_REPLICAS` declared more
|
|
10
|
+
nodes than the licence gate admits, but that warning existed only in one
|
|
11
|
+
process's startup output: an operator who scaled past their cap three weeks ago
|
|
12
|
+
had no way to ask the question today, and no way to alert on it. The same
|
|
13
|
+
advisory verdict is now also published through the deployment's configured
|
|
14
|
+
metrics backend, so it reaches the place operators already look.
|
|
15
|
+
|
|
16
|
+
Three names join `SEMCONV` in `@objectstack/observability`, emitted once per boot
|
|
17
|
+
by `os serve` when a remote cluster driver is configured, each labelled with the
|
|
18
|
+
gate's own verdict vocabulary (`admitted` / `capped` / `refused`):
|
|
19
|
+
|
|
20
|
+
- `cluster_declared_nodes` (gauge) — the replica count the operator **declared**;
|
|
21
|
+
- `cluster_admitted_nodes` (gauge) — how many of them the licence **admits**;
|
|
22
|
+
- `cluster_node_cap_verdicts_total` (counter) — one increment per process boot
|
|
23
|
+
that consulted the gate, so an alert stays writable after a one-shot gauge has
|
|
24
|
+
aged out of a push-based backend.
|
|
25
|
+
|
|
26
|
+
**Visibility only — the cap remains advisory and nothing is refused.** The gate is
|
|
27
|
+
consulted once per process at boot, every replica computes the same verdict, and
|
|
28
|
+
none can know whether it is one of the admitted ones, so all of them still join.
|
|
29
|
+
The names say so on purpose: this process has no cluster membership view at all,
|
|
30
|
+
so a series called `cluster_nodes` or `cluster_active_nodes` would be a false
|
|
31
|
+
statement dressed as telemetry. Nothing here counts peers, and no accept/reject
|
|
32
|
+
behaviour changed.
|
|
33
|
+
|
|
34
|
+
Absence is meaningful rather than an instrumentation gap: a single-node
|
|
35
|
+
deployment never consults the gate and emits nothing, and an emission also needs
|
|
36
|
+
a metrics backend configured via `OS_OBS_EXPORTER`.
|
|
37
|
+
|
|
38
|
+
### Patch Changes
|
|
39
|
+
|
|
40
|
+
- e7191ce: fix(build): give each `exports` condition its own `types` target in the 28 dual-build packages (#13112)
|
|
41
|
+
|
|
42
|
+
**Published-surface change, zero runtime change.** No emitted byte moves; what
|
|
43
|
+
moves is which declaration file a resolver READS. Maintainer ruling 2026-08-29
|
|
44
|
+
(decision batch #3, verbatim 「同意」) chose declaring the files over deleting
|
|
45
|
+
them.
|
|
46
|
+
|
|
47
|
+
## What was wrong
|
|
48
|
+
|
|
49
|
+
These 28 packages are `"type": "module"` and dual-built, and each spelled one
|
|
50
|
+
`types` condition as a **sibling** of `import`/`require`:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
"exports": { ".": {
|
|
54
|
+
"types": "./dist/index.d.ts", "import": "./dist/index.js", "require": "./dist/index.cjs"
|
|
55
|
+
} }
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
A sibling `types` answers for **both** conditions, so a CommonJS consumer was
|
|
59
|
+
handed `dist/index.d.ts` — an ES-module declaration, because the package is
|
|
60
|
+
`"type": "module"` — for an entry point it reaches with `require`. Measured with
|
|
61
|
+
`tsc --traceResolution` on a `"type": "commonjs"` fixture at `moduleResolution:
|
|
62
|
+
node16`:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
error TS1479: The current file is a CommonJS module whose imports will produce
|
|
66
|
+
'require' calls; however, the referenced file is an ECMAScript module and cannot
|
|
67
|
+
be imported with 'require'.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The JavaScript at `dist/index.cjs` loads perfectly (`check:dual-build-cjs-loads`
|
|
71
|
+
has asserted that for months). It is the **types** that told the consumer the
|
|
72
|
+
supported `require` entry point could not be required. The `dist/index.d.cts`
|
|
73
|
+
twin tsup emits beside it — 36 files, 5,517,701 B on this build — was named by
|
|
74
|
+
no condition at all and shipped in every tarball unreachable.
|
|
75
|
+
|
|
76
|
+
## What changed
|
|
77
|
+
|
|
78
|
+
Each condition now names its own declaration, the shape TypeScript documents:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
"exports": { ".": {
|
|
82
|
+
"import": { "types": "./dist/index.d.ts", "default": "./dist/index.js" },
|
|
83
|
+
"require": { "types": "./dist/index.d.cts", "default": "./dist/index.cjs" }
|
|
84
|
+
} }
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
33 entry points across 27 packages, subpaths included. The root `types` field is
|
|
88
|
+
untouched, so `node10` resolvers are unaffected; the `import` condition resolves
|
|
89
|
+
exactly what it resolved before, measured as an unchanged control in the same
|
|
90
|
+
run.
|
|
91
|
+
|
|
92
|
+
## `@objectstack/core` is deliberately NOT changed
|
|
93
|
+
|
|
94
|
+
Splitting a declaration in two makes TypeScript compare it nominally, and
|
|
95
|
+
`ObjectKernel` carries a `private plugins` member that reaches every plugin
|
|
96
|
+
through `PluginContext.getKernel()`. With core split, whole-repo `pnpm build`
|
|
97
|
+
fails in `@objectstack/verify` with 5 × TS2345 ("Types have separate
|
|
98
|
+
declarations of a private property 'plugins'"); with core held back and the
|
|
99
|
+
other 27 split, 71/71 tasks pass. So core keeps the sibling-`types` shape and
|
|
100
|
+
its two `.d.cts` files (220,854 B) stay unreachable, declared as such in
|
|
101
|
+
`check:dual-build-cjs-loads`. Splitting it needs a decision about core's public
|
|
102
|
+
types, not about an exports map.
|
|
103
|
+
|
|
104
|
+
## For consumers
|
|
105
|
+
|
|
106
|
+
- **ESM consumers: nothing changes.** Same declaration file, byte for byte.
|
|
107
|
+
- **CJS consumers under `node16`/`nodenext`: TS1479 goes away** and the
|
|
108
|
+
declarations they get are the ones built for CommonJS.
|
|
109
|
+
- **`node10` / `moduleResolution: node` consumers: nothing changes** — they never
|
|
110
|
+
read `exports`.
|
|
111
|
+
- Nothing is removed: every path that resolved before still resolves.
|
|
112
|
+
|
|
113
|
+
Packages that are CJS-first (`require` → `./dist/index.js`, no `"type": "module"`)
|
|
114
|
+
were already correct and are untouched — their `dist/index.d.ts` really is the
|
|
115
|
+
CommonJS declaration. Their ESM mirror (an unreachable `.d.mts` under the
|
|
116
|
+
`import` condition) is a separate, larger population and is filed separately per
|
|
117
|
+
the ruling, not fixed here.
|
|
118
|
+
|
|
119
|
+
`check:dual-build-cjs-loads` grew a fourth invariant (TYPED) that reds on the old
|
|
120
|
+
shape, so the drift cannot return silently.
|
|
121
|
+
- Updated dependencies [809d417]
|
|
122
|
+
- Updated dependencies [387e231]
|
|
123
|
+
- Updated dependencies [f794e4e]
|
|
124
|
+
- Updated dependencies [cae2169]
|
|
125
|
+
- Updated dependencies [b812a54]
|
|
126
|
+
- Updated dependencies [2d4fa75]
|
|
127
|
+
- Updated dependencies [0e4e51b]
|
|
128
|
+
- Updated dependencies [e84bbf6]
|
|
129
|
+
- Updated dependencies [effae80]
|
|
130
|
+
- Updated dependencies [d62f990]
|
|
131
|
+
- Updated dependencies [c45d8e6]
|
|
132
|
+
- Updated dependencies [2e3e8c7]
|
|
133
|
+
- Updated dependencies [e621291]
|
|
134
|
+
- Updated dependencies [40a93b5]
|
|
135
|
+
- Updated dependencies [d5b330d]
|
|
136
|
+
- Updated dependencies [dda969c]
|
|
137
|
+
- Updated dependencies [1f45690]
|
|
138
|
+
- Updated dependencies [277948f]
|
|
139
|
+
- Updated dependencies [8bdd955]
|
|
140
|
+
- Updated dependencies [f3bbbef]
|
|
141
|
+
- Updated dependencies [4f24e9d]
|
|
142
|
+
- Updated dependencies [474242f]
|
|
143
|
+
- Updated dependencies [63cd487]
|
|
144
|
+
- Updated dependencies [bd4aa4e]
|
|
145
|
+
- Updated dependencies [803eaab]
|
|
146
|
+
- Updated dependencies [f8e8f03]
|
|
147
|
+
- Updated dependencies [eae824e]
|
|
148
|
+
- Updated dependencies [f6fa22c]
|
|
149
|
+
- Updated dependencies [8a483b3]
|
|
150
|
+
- Updated dependencies [97bcd99]
|
|
151
|
+
- Updated dependencies [df59de0]
|
|
152
|
+
- Updated dependencies [96e25a8]
|
|
153
|
+
- Updated dependencies [f75a38a]
|
|
154
|
+
- Updated dependencies [7a25e7d]
|
|
155
|
+
- Updated dependencies [1fa05a6]
|
|
156
|
+
- Updated dependencies [c85a265]
|
|
157
|
+
- Updated dependencies [dcb10a5]
|
|
158
|
+
- Updated dependencies [773a999]
|
|
159
|
+
- Updated dependencies [35dffea]
|
|
160
|
+
- Updated dependencies [776a098]
|
|
161
|
+
- Updated dependencies [5060877]
|
|
162
|
+
- Updated dependencies [4f6325d]
|
|
163
|
+
- Updated dependencies [52954c0]
|
|
164
|
+
- Updated dependencies [2aa8456]
|
|
165
|
+
- Updated dependencies [93809a3]
|
|
166
|
+
- Updated dependencies [7c0d0c3]
|
|
167
|
+
- Updated dependencies [daae7aa]
|
|
168
|
+
- Updated dependencies [8dc22d6]
|
|
169
|
+
- Updated dependencies [279431e]
|
|
170
|
+
- Updated dependencies [948dd6b]
|
|
171
|
+
- Updated dependencies [3b4c56c]
|
|
172
|
+
- Updated dependencies [ae8edd2]
|
|
173
|
+
- Updated dependencies [e25403c]
|
|
174
|
+
- Updated dependencies [64baa68]
|
|
175
|
+
- Updated dependencies [9fa70d7]
|
|
176
|
+
- Updated dependencies [09db64a]
|
|
177
|
+
- Updated dependencies [92916e7]
|
|
178
|
+
- Updated dependencies [a84f3ea]
|
|
179
|
+
- Updated dependencies [f2eaae8]
|
|
180
|
+
- Updated dependencies [c09451b]
|
|
181
|
+
- Updated dependencies [ba64877]
|
|
182
|
+
- Updated dependencies [7345308]
|
|
183
|
+
- Updated dependencies [79b6a22]
|
|
184
|
+
- Updated dependencies [30d96ab]
|
|
185
|
+
- Updated dependencies [f658793]
|
|
186
|
+
- Updated dependencies [c95ad19]
|
|
187
|
+
- Updated dependencies [e58ea8b]
|
|
188
|
+
- Updated dependencies [4a17645]
|
|
189
|
+
- Updated dependencies [3795c5f]
|
|
190
|
+
- Updated dependencies [8ab926b]
|
|
191
|
+
- Updated dependencies [7317cf2]
|
|
192
|
+
- Updated dependencies [e25e839]
|
|
193
|
+
- Updated dependencies [5997207]
|
|
194
|
+
- Updated dependencies [8b13cc8]
|
|
195
|
+
- Updated dependencies [4a4a35d]
|
|
196
|
+
- Updated dependencies [86e765a]
|
|
197
|
+
- Updated dependencies [1d7e76a]
|
|
198
|
+
- Updated dependencies [53dc739]
|
|
199
|
+
- Updated dependencies [fd289be]
|
|
200
|
+
- Updated dependencies [03bf7b1]
|
|
201
|
+
- Updated dependencies [f90e820]
|
|
202
|
+
- Updated dependencies [18d816a]
|
|
203
|
+
- Updated dependencies [e8bd715]
|
|
204
|
+
- Updated dependencies [b91c351]
|
|
205
|
+
- Updated dependencies [a28a3c0]
|
|
206
|
+
- Updated dependencies [daeaaf9]
|
|
207
|
+
- Updated dependencies [c459da6]
|
|
208
|
+
- Updated dependencies [e914733]
|
|
209
|
+
- Updated dependencies [f887e52]
|
|
210
|
+
- Updated dependencies [881f8d8]
|
|
211
|
+
- Updated dependencies [3bfa1e6]
|
|
212
|
+
- Updated dependencies [901355c]
|
|
213
|
+
- Updated dependencies [34ce8e7]
|
|
214
|
+
- Updated dependencies [33681ea]
|
|
215
|
+
- Updated dependencies [4635f3e]
|
|
216
|
+
- Updated dependencies [ee3595c]
|
|
217
|
+
- Updated dependencies [b2eab95]
|
|
218
|
+
- Updated dependencies [93940d4]
|
|
219
|
+
- Updated dependencies [3a04b01]
|
|
220
|
+
- Updated dependencies [45b9051]
|
|
221
|
+
- Updated dependencies [b9e9227]
|
|
222
|
+
- Updated dependencies [d395692]
|
|
223
|
+
- Updated dependencies [5894d30]
|
|
224
|
+
- Updated dependencies [a3765f6]
|
|
225
|
+
- Updated dependencies [e22158f]
|
|
226
|
+
- Updated dependencies [7404925]
|
|
227
|
+
- Updated dependencies [0c2334f]
|
|
228
|
+
- Updated dependencies [778c59f]
|
|
229
|
+
- Updated dependencies [d2619fd]
|
|
230
|
+
- Updated dependencies [6acb11a]
|
|
231
|
+
- Updated dependencies [33c5fd3]
|
|
232
|
+
- Updated dependencies [20b0fdb]
|
|
233
|
+
- Updated dependencies [905019b]
|
|
234
|
+
- Updated dependencies [a286411]
|
|
235
|
+
- Updated dependencies [98c0d33]
|
|
236
|
+
- Updated dependencies [368a82e]
|
|
237
|
+
- Updated dependencies [a3d5724]
|
|
238
|
+
- Updated dependencies [93ea19b]
|
|
239
|
+
- Updated dependencies [9ee2dcf]
|
|
240
|
+
- Updated dependencies [8cb96ec]
|
|
241
|
+
- Updated dependencies [8f10a79]
|
|
242
|
+
- Updated dependencies [6269a55]
|
|
243
|
+
- Updated dependencies [0fb8760]
|
|
244
|
+
- Updated dependencies [e5ce2ed]
|
|
245
|
+
- Updated dependencies [be21955]
|
|
246
|
+
- Updated dependencies [bc56e18]
|
|
247
|
+
- Updated dependencies [be21955]
|
|
248
|
+
- Updated dependencies [a9ee989]
|
|
249
|
+
- Updated dependencies [4d0d944]
|
|
250
|
+
- Updated dependencies [15d58db]
|
|
251
|
+
- Updated dependencies [d63b014]
|
|
252
|
+
- Updated dependencies [9abe4e4]
|
|
253
|
+
- Updated dependencies [2cc7122]
|
|
254
|
+
- Updated dependencies [50d6c92]
|
|
255
|
+
- Updated dependencies [9e0ba21]
|
|
256
|
+
- Updated dependencies [311433f]
|
|
257
|
+
- Updated dependencies [3e5ad08]
|
|
258
|
+
- Updated dependencies [9abe4e4]
|
|
259
|
+
- Updated dependencies [b7131f3]
|
|
260
|
+
- Updated dependencies [e5812fa]
|
|
261
|
+
- Updated dependencies [7085f90]
|
|
262
|
+
- Updated dependencies [dee4dd4]
|
|
263
|
+
- Updated dependencies [ce7e497]
|
|
264
|
+
- Updated dependencies [51ecb2f]
|
|
265
|
+
- Updated dependencies [9086761]
|
|
266
|
+
- Updated dependencies [42a117b]
|
|
267
|
+
- Updated dependencies [1401ae7]
|
|
268
|
+
- Updated dependencies [4297fe7]
|
|
269
|
+
- Updated dependencies [e398863]
|
|
270
|
+
- Updated dependencies [d16df74]
|
|
271
|
+
- Updated dependencies [f11fc61]
|
|
272
|
+
- Updated dependencies [e808890]
|
|
273
|
+
- Updated dependencies [8f79379]
|
|
274
|
+
- Updated dependencies [e6ca40e]
|
|
275
|
+
- Updated dependencies [0c77ea4]
|
|
276
|
+
- Updated dependencies [52954c0]
|
|
277
|
+
- Updated dependencies [89eb997]
|
|
278
|
+
- Updated dependencies [aa5994e]
|
|
279
|
+
- Updated dependencies [be93457]
|
|
280
|
+
- Updated dependencies [a65db76]
|
|
281
|
+
- Updated dependencies [15eb2c9]
|
|
282
|
+
- Updated dependencies [5691b07]
|
|
283
|
+
- Updated dependencies [2a6122b]
|
|
284
|
+
- Updated dependencies [225e769]
|
|
285
|
+
- Updated dependencies [8af88dd]
|
|
286
|
+
- Updated dependencies [fb5fbb8]
|
|
287
|
+
- Updated dependencies [d7b3963]
|
|
288
|
+
- Updated dependencies [b72db01]
|
|
289
|
+
- Updated dependencies [dce5cd4]
|
|
290
|
+
- Updated dependencies [177ebdc]
|
|
291
|
+
- Updated dependencies [8d237b4]
|
|
292
|
+
- Updated dependencies [2d2e6f0]
|
|
293
|
+
- Updated dependencies [2d8dd8d]
|
|
294
|
+
- Updated dependencies [22d573e]
|
|
295
|
+
- Updated dependencies [b5a2398]
|
|
296
|
+
- Updated dependencies [348860c]
|
|
297
|
+
- Updated dependencies [5383fa6]
|
|
298
|
+
- Updated dependencies [5b3ff63]
|
|
299
|
+
- Updated dependencies [1a6a19c]
|
|
300
|
+
- Updated dependencies [527e050]
|
|
301
|
+
- Updated dependencies [dd33bf9]
|
|
302
|
+
- Updated dependencies [4cb2a90]
|
|
303
|
+
- Updated dependencies [74a7804]
|
|
304
|
+
- Updated dependencies [53d3689]
|
|
305
|
+
- Updated dependencies [b3a63d3]
|
|
306
|
+
- Updated dependencies [033a34c]
|
|
307
|
+
- Updated dependencies [4d25d22]
|
|
308
|
+
- Updated dependencies [1ffee51]
|
|
309
|
+
- Updated dependencies [5ae4303]
|
|
310
|
+
- Updated dependencies [ece4dad]
|
|
311
|
+
- Updated dependencies [e9b377e]
|
|
312
|
+
- Updated dependencies [146f448]
|
|
313
|
+
- Updated dependencies [735f5c7]
|
|
314
|
+
- Updated dependencies [a7e18de]
|
|
315
|
+
- Updated dependencies [366f895]
|
|
316
|
+
- Updated dependencies [dc75ba8]
|
|
317
|
+
- Updated dependencies [cce0aa9]
|
|
318
|
+
- Updated dependencies [e764507]
|
|
319
|
+
- Updated dependencies [cff17af]
|
|
320
|
+
- Updated dependencies [39404f3]
|
|
321
|
+
- Updated dependencies [ca1965f]
|
|
322
|
+
- Updated dependencies [8619f95]
|
|
323
|
+
- Updated dependencies [b706af9]
|
|
324
|
+
- Updated dependencies [fc9ba76]
|
|
325
|
+
- Updated dependencies [0f94cc7]
|
|
326
|
+
- Updated dependencies [a11c1a5]
|
|
327
|
+
- Updated dependencies [71f9cd1]
|
|
328
|
+
- Updated dependencies [ee17d86]
|
|
329
|
+
- Updated dependencies [cdbd920]
|
|
330
|
+
- Updated dependencies [18c432e]
|
|
331
|
+
- Updated dependencies [3c418c4]
|
|
332
|
+
- Updated dependencies [fa8715a]
|
|
333
|
+
- Updated dependencies [a933ed7]
|
|
334
|
+
- Updated dependencies [b3ca463]
|
|
335
|
+
- Updated dependencies [a933ed7]
|
|
336
|
+
- Updated dependencies [0d4a6a8]
|
|
337
|
+
- Updated dependencies [518d5e5]
|
|
338
|
+
- Updated dependencies [6643ba1]
|
|
339
|
+
- Updated dependencies [eeba2ef]
|
|
340
|
+
- Updated dependencies [ec4c4d2]
|
|
341
|
+
- Updated dependencies [424f73c]
|
|
342
|
+
- Updated dependencies [cccbe51]
|
|
343
|
+
- Updated dependencies [a8d6b1d]
|
|
344
|
+
- Updated dependencies [e4a7695]
|
|
345
|
+
- Updated dependencies [87075b1]
|
|
346
|
+
- Updated dependencies [fc58a99]
|
|
347
|
+
- Updated dependencies [14cfc00]
|
|
348
|
+
- Updated dependencies [1c6f7b4]
|
|
349
|
+
- Updated dependencies [e854a53]
|
|
350
|
+
- Updated dependencies [dfebfc8]
|
|
351
|
+
- Updated dependencies [d028b37]
|
|
352
|
+
- Updated dependencies [122ef38]
|
|
353
|
+
- Updated dependencies [4a37870]
|
|
354
|
+
- Updated dependencies [428f9b2]
|
|
355
|
+
- Updated dependencies [aa7ff56]
|
|
356
|
+
- Updated dependencies [c41b42e]
|
|
357
|
+
- Updated dependencies [c4db311]
|
|
358
|
+
- Updated dependencies [750fff5]
|
|
359
|
+
- Updated dependencies [c19035e]
|
|
360
|
+
- Updated dependencies [ececf7a]
|
|
361
|
+
- Updated dependencies [d173125]
|
|
362
|
+
- Updated dependencies [8eeca27]
|
|
363
|
+
- Updated dependencies [8425c17]
|
|
364
|
+
- Updated dependencies [a5ef1d8]
|
|
365
|
+
- Updated dependencies [772d5de]
|
|
366
|
+
- Updated dependencies [ce80ec2]
|
|
367
|
+
- Updated dependencies [b372318]
|
|
368
|
+
- Updated dependencies [97a2263]
|
|
369
|
+
- Updated dependencies [29d0676]
|
|
370
|
+
- Updated dependencies [0169d49]
|
|
371
|
+
- Updated dependencies [6bd3231]
|
|
372
|
+
- Updated dependencies [d2b5ba8]
|
|
373
|
+
- Updated dependencies [b799ac5]
|
|
374
|
+
- Updated dependencies [8f74307]
|
|
375
|
+
- Updated dependencies [d23dc08]
|
|
376
|
+
- Updated dependencies [644ad50]
|
|
377
|
+
- Updated dependencies [0da7cd2]
|
|
378
|
+
- Updated dependencies [28a5c3e]
|
|
379
|
+
- Updated dependencies [4bc18e5]
|
|
380
|
+
- @objectstack/spec@17.3.0
|
|
381
|
+
|
|
3
382
|
## 17.2.0
|
|
4
383
|
|
|
5
384
|
### Minor Changes
|
package/dist/index.cjs
CHANGED
|
@@ -148,7 +148,55 @@ var SEMCONV = {
|
|
|
148
148
|
/** Histogram (ms). */
|
|
149
149
|
registryLookupDurationMs: "registry_lookup_duration_ms",
|
|
150
150
|
/** Counter, labels: `source` (`r2`|`http`|`local`), `result` (`hit`|`miss`|`error`). */
|
|
151
|
-
registrySourceFetchesTotal: "registry_source_fetches_total"
|
|
151
|
+
registrySourceFetchesTotal: "registry_source_fetches_total",
|
|
152
|
+
// ── Cluster licensing — emitted by `@objectstack/cli`'s `os serve` at boot ──
|
|
153
|
+
//
|
|
154
|
+
// ⚠️ Every name in this group is a reading of what the operator DECLARED
|
|
155
|
+
// and what the licence gate SAID about that declaration. **None of them is
|
|
156
|
+
// a membership reading**, and none may be renamed into one. At the moment
|
|
157
|
+
// `os serve` consults the multi-node gate, the process has no cluster
|
|
158
|
+
// membership view at all: `nodeId` is generated randomly per process, there
|
|
159
|
+
// is no join/leave registry, and the only count in existence is
|
|
160
|
+
// `OS_CLUSTER_REPLICAS` — an operator-declared desired count that is
|
|
161
|
+
// identical in every replica. A series called `cluster_nodes` or
|
|
162
|
+
// `cluster_active_nodes` fed from here would be a false statement dressed
|
|
163
|
+
// as telemetry, so the honesty lives in the NAMES: `declared` is what the
|
|
164
|
+
// operator wrote, `admitted` is what the gate says fits the licence.
|
|
165
|
+
//
|
|
166
|
+
// The cap these describe is ADVISORY and is not enforced: no replica can
|
|
167
|
+
// act on the verdict alone to refuse itself, so a `capped` verdict means
|
|
168
|
+
// every declared replica still joins. Read a `capped` series as "this
|
|
169
|
+
// deployment is configured beyond what it paid for", never as "replicas
|
|
170
|
+
// were turned away".
|
|
171
|
+
//
|
|
172
|
+
// ⚠️ Absence is meaningful and is NOT an instrumentation gap: the gate is
|
|
173
|
+
// consulted only when `OS_CLUSTER_DRIVER` names a remote driver, so a
|
|
174
|
+
// single-node deployment emits nothing here at all. An emission also needs
|
|
175
|
+
// a configured metrics backend (`OS_OBS_EXPORTER`); with none, the boot log
|
|
176
|
+
// line remains the only reading.
|
|
177
|
+
/**
|
|
178
|
+
* Gauge, labels: `verdict` (`admitted`|`capped`|`refused`). The replica
|
|
179
|
+
* count the operator DECLARED via `OS_CLUSTER_REPLICAS` — not a count of
|
|
180
|
+
* anything observed. Absent when nothing was declared; deliberately never
|
|
181
|
+
* emitted as `0`, which would read as a declaration of zero replicas.
|
|
182
|
+
*/
|
|
183
|
+
clusterDeclaredNodes: "cluster_declared_nodes",
|
|
184
|
+
/**
|
|
185
|
+
* Gauge, labels: `verdict` (`admitted`|`capped`|`refused`). How many of the
|
|
186
|
+
* declared nodes the licence gate admits. Absent when the gate imposes no
|
|
187
|
+
* count cap at all — emitting a number there would invent a limit that was
|
|
188
|
+
* never expressed.
|
|
189
|
+
*/
|
|
190
|
+
clusterAdmittedNodes: "cluster_admitted_nodes",
|
|
191
|
+
/**
|
|
192
|
+
* Counter, labels: `verdict` (`admitted`|`capped`|`refused`). One
|
|
193
|
+
* increment per PROCESS BOOT that consulted the gate — a boot-event count,
|
|
194
|
+
* never a node count. It exists because the two gauges above are written
|
|
195
|
+
* once per boot and a push-based exporter lets a one-shot gauge age out of
|
|
196
|
+
* the backend; `increase(cluster_node_cap_verdicts_total{verdict="capped"}[1h]) > 0`
|
|
197
|
+
* stays alertable after the gauges have gone stale.
|
|
198
|
+
*/
|
|
199
|
+
clusterNodeCapVerdictsTotal: "cluster_node_cap_verdicts_total"
|
|
152
200
|
};
|
|
153
201
|
var RUNTIME_METRICS = {
|
|
154
202
|
httpRequestsTotal: SEMCONV.httpRequestsTotal,
|