next-observer 0.3.24 → 0.3.26
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 +7 -2
- package/dist/checks/runner.d.ts +2 -24
- package/dist/checks/runner.js +12 -3
- package/dist/checks/runner.js.map +1 -1
- package/dist/checks/types.d.ts +53 -0
- package/dist/checks/types.js +2 -0
- package/dist/checks/types.js.map +1 -0
- package/dist/checks/watch.d.ts +18 -10
- package/dist/checks/watch.js +52 -5
- package/dist/checks/watch.js.map +1 -1
- package/dist/checks/words.d.ts +23 -0
- package/dist/checks/words.js +31 -0
- package/dist/checks/words.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/collector/server.d.ts +3 -1
- package/dist/collector/server.js +6 -3
- package/dist/collector/server.js.map +1 -1
- package/dist/debug/detector.d.ts +4 -1
- package/dist/debug/detector.js +4 -4
- package/dist/debug/detector.js.map +1 -1
- package/dist/ui/assets/index-8P-dMmH-.css +2 -0
- package/dist/ui/assets/index-BsgdkOcd.js +20 -0
- package/dist/ui/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/index-BYVdqpEo.css +0 -2
- package/dist/ui/assets/index-DyCHy5_l.js +0 -17
package/README.md
CHANGED
|
@@ -180,15 +180,20 @@ address in the observer's banner with the one Next prints, and set `OBSERVE_APP_
|
|
|
180
180
|
never read. So the status of a streaming route can be checked.
|
|
181
181
|
- A field that is misspelled, or an expectation that can never hold (a body text on `HEAD`), is an error on start.
|
|
182
182
|
|
|
183
|
-
Results:
|
|
183
|
+
Results: the **Checks** page — every check with its state, the last answer, a bar per run and a link to the trace of the
|
|
184
|
+
last failed request — and `GET /api/checks` (the last 50 runs per check and how many failed in a row).
|
|
185
|
+
|
|
186
|
+

|
|
184
187
|
|
|
185
188
|
**When a check keeps failing, the AI agents look into it on their own** — the same way as with an anomaly in real
|
|
186
189
|
traffic: it appears in the chat, and the investigation starts from the trace of the failing request.
|
|
187
190
|
|
|
188
191
|
- twice in a row → `critical` (it is down now);
|
|
189
192
|
- 3 of the last 10 runs → `warning` (it is unreliable — a check failing every third time never fails twice in a row);
|
|
193
|
+
- an app that is down is **one** anomaly naming every check that cannot reach it — not one investigation per check;
|
|
190
194
|
- one failure is not an anomaly: the first answer after a restart is often just slow;
|
|
191
|
-
- the same check
|
|
195
|
+
- after an anomaly the same check — and, when nothing accepted the connection, the same address — is quiet for
|
|
196
|
+
5 minutes, whatever happens meanwhile; `OBSERVE_DETECTOR=off` switches this off too.
|
|
192
197
|
|
|
193
198
|
## Configuration
|
|
194
199
|
|
package/dist/checks/runner.d.ts
CHANGED
|
@@ -1,28 +1,6 @@
|
|
|
1
1
|
import type { Check } from './spec.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
ok: boolean;
|
|
5
|
-
durationMs: number;
|
|
6
|
-
/** Absent when no answer came at all. */
|
|
7
|
-
status?: number;
|
|
8
|
-
/** The trace id sent with the request. */
|
|
9
|
-
traceId: string;
|
|
10
|
-
/** Why it failed, in words; absent when ok. */
|
|
11
|
-
reason?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface CheckStatus {
|
|
14
|
-
name: string;
|
|
15
|
-
method: string;
|
|
16
|
-
/** Where the request really goes. */
|
|
17
|
-
url: string;
|
|
18
|
-
everySeconds: number;
|
|
19
|
-
expect: Check['expect'];
|
|
20
|
-
/** Failed runs in a row up to now; 0 when the last run passed or nothing ran yet. */
|
|
21
|
-
failures: number;
|
|
22
|
-
last?: CheckResult;
|
|
23
|
-
/** Oldest first. */
|
|
24
|
-
history: CheckResult[];
|
|
25
|
-
}
|
|
2
|
+
import type { CheckResult, CheckStatus } from './types.js';
|
|
3
|
+
export type { CheckResult, CheckRule, ChecksReport, CheckStatus } from './types.js';
|
|
26
4
|
export interface CheckRunnerOptions {
|
|
27
5
|
checks: Check[];
|
|
28
6
|
/** Where checks with a path go, e.g. http://localhost:3000. */
|
package/dist/checks/runner.js
CHANGED
|
@@ -37,6 +37,13 @@ async function readBody(response, wanted) {
|
|
|
37
37
|
}
|
|
38
38
|
return { text: Buffer.concat(chunks).subarray(0, MAX_BODY_BYTES).toString('utf8'), cut, read: true };
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Errors of making the connection — no listener, no such host, no route, no reply to the connection attempt, a TLS
|
|
42
|
+
* handshake that failed: with one of these the request was never sent, so the app has no trace of it.
|
|
43
|
+
*/
|
|
44
|
+
const NO_CONNECTION = new Set(['ECONNREFUSED', 'ENOTFOUND', 'EAI_AGAIN', 'EHOSTUNREACH', 'ENETUNREACH', 'EADDRNOTAVAIL', 'ETIMEDOUT', 'UND_ERR_CONNECT_TIMEOUT']);
|
|
45
|
+
const TLS = /^(CERT_|ERR_TLS_|ERR_SSL_|DEPTH_ZERO_|SELF_SIGNED_|UNABLE_TO_)/;
|
|
46
|
+
const neverSent = (code) => code !== undefined && (NO_CONNECTION.has(code) || TLS.test(code));
|
|
40
47
|
/** What run() gives the timer when the app is not listening yet: try again soon. */
|
|
41
48
|
const STARTING = Symbol('starting');
|
|
42
49
|
export class CheckRunner {
|
|
@@ -122,12 +129,14 @@ export class CheckRunner {
|
|
|
122
129
|
const e = check.expect;
|
|
123
130
|
// The status is known from here on: a body that never finishes must not turn it into "no answer".
|
|
124
131
|
let body;
|
|
132
|
+
let broken;
|
|
125
133
|
try {
|
|
126
134
|
body = await readBody(response, e.bodyIncludes !== undefined || e.maxMs !== undefined);
|
|
127
135
|
}
|
|
128
136
|
catch (error) {
|
|
137
|
+
// The connection broke off mid-body. Still an answer: the app handled the request, the status stands.
|
|
129
138
|
if (!timedOut)
|
|
130
|
-
|
|
139
|
+
broken = error?.cause?.code ?? error?.code ?? error?.message ?? String(error);
|
|
131
140
|
}
|
|
132
141
|
const durationMs = this.elapsed() - started;
|
|
133
142
|
const reasons = [];
|
|
@@ -137,7 +146,7 @@ export class CheckRunner {
|
|
|
137
146
|
if (e.maxMs !== undefined && durationMs > e.maxMs)
|
|
138
147
|
reasons.push(`took ${Math.round(durationMs)} ms, limit ${e.maxMs} ms`);
|
|
139
148
|
if (!body)
|
|
140
|
-
reasons.push(`the body did not finish within ${check.timeoutMs} ms`);
|
|
149
|
+
reasons.push(broken === undefined ? `the body did not finish within ${check.timeoutMs} ms` : `the body broke off: ${broken}`);
|
|
141
150
|
else if (e.bodyIncludes !== undefined && !body.text.includes(e.bodyIncludes)) {
|
|
142
151
|
const where = !body.read ? ' (an event stream is not read)' : body.cut ? ' in its first megabyte (the rest is not read)' : '';
|
|
143
152
|
reasons.push(`body does not contain ${JSON.stringify(e.bodyIncludes)}${where}`);
|
|
@@ -152,7 +161,7 @@ export class CheckRunner {
|
|
|
152
161
|
if (starting)
|
|
153
162
|
return generation === this.generation ? STARTING : undefined;
|
|
154
163
|
const reason = timedOut ? `no answer within ${check.timeoutMs} ms` : `request failed: ${cause?.code ?? cause?.message ?? error?.message ?? String(error)}`;
|
|
155
|
-
result = { atMs, ok: false, durationMs, traceId, reason };
|
|
164
|
+
result = { atMs, ok: false, durationMs, traceId, reason, ...(neverSent(cause?.code) ? { unreachable: true } : {}) };
|
|
156
165
|
}
|
|
157
166
|
finally {
|
|
158
167
|
clearTimeout(timer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/checks/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/checks/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Check } from './spec.js';
|
|
2
|
+
export interface CheckResult {
|
|
3
|
+
atMs: number;
|
|
4
|
+
ok: boolean;
|
|
5
|
+
durationMs: number;
|
|
6
|
+
/** Absent when no answer came at all. */
|
|
7
|
+
status?: number;
|
|
8
|
+
/** The trace id sent with the request. */
|
|
9
|
+
traceId: string;
|
|
10
|
+
/** Why it failed, in words; absent when ok. */
|
|
11
|
+
reason?: string;
|
|
12
|
+
/**
|
|
13
|
+
* No connection was made (refused, unknown host, no route): the app cannot have a trace of this request. Absent on a
|
|
14
|
+
* timeout or a connection that broke later — then nobody knows: the request may have arrived, and if it did, its
|
|
15
|
+
* trace shows where it got stuck.
|
|
16
|
+
*/
|
|
17
|
+
unreachable?: true;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* When a failing check counts as an incident. One set of numbers for the rule that sends the AI agents (watch.ts)
|
|
21
|
+
* and for the colours on the Checks page.
|
|
22
|
+
*/
|
|
23
|
+
export interface CheckRule {
|
|
24
|
+
/** Failed runs in a row. */
|
|
25
|
+
failuresInRow: number;
|
|
26
|
+
/** How many of the latest runs the share is taken from. */
|
|
27
|
+
shareWindow: number;
|
|
28
|
+
/** Failed runs among them. */
|
|
29
|
+
shareFailures: number;
|
|
30
|
+
}
|
|
31
|
+
export declare const CHECK_RULE: CheckRule;
|
|
32
|
+
/** What GET /api/checks answers. */
|
|
33
|
+
export interface ChecksReport {
|
|
34
|
+
checks: CheckStatus[];
|
|
35
|
+
/** The observer's clock, so "5 s ago" does not depend on the browser's. */
|
|
36
|
+
nowMs: number;
|
|
37
|
+
rule: CheckRule;
|
|
38
|
+
/** Whether a check that breaks the rule is handed to the AI agents (a detector and a chat are both on). */
|
|
39
|
+
investigates: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface CheckStatus {
|
|
42
|
+
name: string;
|
|
43
|
+
method: string;
|
|
44
|
+
/** Where the request really goes. */
|
|
45
|
+
url: string;
|
|
46
|
+
everySeconds: number;
|
|
47
|
+
expect: Check['expect'];
|
|
48
|
+
/** Failed runs in a row up to now; 0 when the last run passed or nothing ran yet. */
|
|
49
|
+
failures: number;
|
|
50
|
+
last?: CheckResult;
|
|
51
|
+
/** Oldest first. */
|
|
52
|
+
history: CheckResult[];
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/checks/types.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,MAAM,UAAU,GAAc,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAA"}
|
package/dist/checks/watch.d.ts
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import type { Anomaly } from '../debug/detector.js';
|
|
2
2
|
import type { CheckResult } from './runner.js';
|
|
3
3
|
import type { Check } from './spec.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/** The same check is not reported again within this time. Default 5 min, like the detector. */
|
|
4
|
+
import { type CheckRule } from './types.js';
|
|
5
|
+
/** The rule's numbers default to CHECK_RULE: two in a row, or three of the last ten — a check failing every third time never fails twice in a row. */
|
|
6
|
+
export interface CheckWatchOptions extends Partial<CheckRule> {
|
|
7
|
+
/**
|
|
8
|
+
* After an anomaly the same check — and, when nothing accepted the connection, the same address — is quiet for this
|
|
9
|
+
* long, whatever happens meanwhile. Default 5 min, like the detector.
|
|
10
|
+
*/
|
|
12
11
|
cooldownMs?: number;
|
|
13
12
|
}
|
|
14
13
|
export declare class CheckWatch {
|
|
15
14
|
readonly options: Required<CheckWatchOptions>;
|
|
16
15
|
private readonly recent;
|
|
17
16
|
private readonly lastReportedMs;
|
|
17
|
+
/** When an outage of an address was last reported. */
|
|
18
|
+
private readonly addressReportedMs;
|
|
19
|
+
/** Checks whose latest run got no connection, with the address they could not reach. */
|
|
20
|
+
private readonly down;
|
|
18
21
|
private pending;
|
|
19
22
|
private seq;
|
|
20
23
|
constructor(options?: CheckWatchOptions);
|
|
21
|
-
/** The
|
|
22
|
-
|
|
24
|
+
/** The numbers in force — what the Checks page colours by. */
|
|
25
|
+
get rule(): CheckRule;
|
|
26
|
+
/**
|
|
27
|
+
* The runner's `onResult`; `failures` is its count of failed runs in a row — the same number the Checks page shows.
|
|
28
|
+
* `url` is where the request really went (a check's own `url` may be just a path): the address is taken from it.
|
|
29
|
+
*/
|
|
30
|
+
observe: (check: Check, result: CheckResult, failures: number, url: string) => void;
|
|
23
31
|
/** New anomalies since the last call. */
|
|
24
32
|
take(): Anomaly[];
|
|
25
33
|
}
|
package/dist/checks/watch.js
CHANGED
|
@@ -1,31 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
import { CHECK_RULE } from './types.js';
|
|
2
|
+
import { originOf } from './words.js';
|
|
3
|
+
const DEFAULTS = { ...CHECK_RULE, cooldownMs: 300_000 };
|
|
2
4
|
export class CheckWatch {
|
|
3
5
|
options;
|
|
4
6
|
recent = new Map();
|
|
5
7
|
lastReportedMs = new Map();
|
|
8
|
+
/** When an outage of an address was last reported. */
|
|
9
|
+
addressReportedMs = new Map();
|
|
10
|
+
/** Checks whose latest run got no connection, with the address they could not reach. */
|
|
11
|
+
down = new Map();
|
|
6
12
|
pending = [];
|
|
7
13
|
seq = 0;
|
|
8
14
|
constructor(options = {}) {
|
|
9
15
|
this.options = { ...DEFAULTS, ...options };
|
|
10
16
|
}
|
|
11
|
-
/** The
|
|
12
|
-
|
|
17
|
+
/** The numbers in force — what the Checks page colours by. */
|
|
18
|
+
get rule() {
|
|
19
|
+
const { failuresInRow, shareWindow, shareFailures } = this.options;
|
|
20
|
+
return { failuresInRow, shareWindow, shareFailures };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The runner's `onResult`; `failures` is its count of failed runs in a row — the same number the Checks page shows.
|
|
24
|
+
* `url` is where the request really went (a check's own `url` may be just a path): the address is taken from it.
|
|
25
|
+
*/
|
|
26
|
+
observe = (check, result, failures, url) => {
|
|
13
27
|
const o = this.options;
|
|
14
28
|
const recent = this.recent.get(check.name) ?? [];
|
|
15
29
|
recent.push(result.ok);
|
|
16
30
|
if (recent.length > o.shareWindow)
|
|
17
31
|
recent.shift();
|
|
18
32
|
this.recent.set(check.name, recent);
|
|
33
|
+
const origin = originOf(url);
|
|
34
|
+
if (result.unreachable)
|
|
35
|
+
this.down.set(check.name, origin);
|
|
36
|
+
else
|
|
37
|
+
this.down.delete(check.name);
|
|
19
38
|
if (result.ok)
|
|
20
39
|
return;
|
|
21
40
|
const failed = recent.filter((ok) => !ok).length;
|
|
22
41
|
const inRow = failures >= o.failuresInRow;
|
|
23
42
|
if (!inRow && failed < o.shareFailures)
|
|
24
43
|
return;
|
|
25
|
-
|
|
26
|
-
|
|
44
|
+
// A clock set back (NTP, a laptop waking up) must not keep anyone quiet for longer: a negative age is no cooldown.
|
|
45
|
+
const quiet = (last) => last !== undefined && result.atMs >= last && result.atMs - last < o.cooldownMs;
|
|
46
|
+
if (quiet(this.lastReportedMs.get(check.name)))
|
|
27
47
|
return;
|
|
48
|
+
// Set even when the address turns out to be quiet below: this failure is part of the outage already reported,
|
|
49
|
+
// and the first slow answer of the restarted app is not worth an anomaly of its own either.
|
|
28
50
|
this.lastReportedMs.set(check.name, result.atMs);
|
|
51
|
+
// No connection, repeatedly: an outage. (A flaky check tipped over its share by one refused connection is not —
|
|
52
|
+
// it must not make the address quiet before the outage itself is reported.)
|
|
53
|
+
const outage = result.unreachable === true && inRow;
|
|
54
|
+
if (outage) {
|
|
55
|
+
// An app that is down fails every check of it the same way: one anomaly says so, the rest would only queue the
|
|
56
|
+
// same investigation again. Checks with other intervals reach the rule later — the address is quiet by then.
|
|
57
|
+
if (quiet(this.addressReportedMs.get(origin)))
|
|
58
|
+
return;
|
|
59
|
+
this.addressReportedMs.set(origin, result.atMs);
|
|
60
|
+
}
|
|
29
61
|
this.pending.push({
|
|
30
62
|
id: `check_failed-${result.atMs}-${++this.seq}`,
|
|
31
63
|
type: 'check_failed',
|
|
@@ -45,7 +77,10 @@ export class CheckWatch {
|
|
|
45
77
|
rule: inRow ? 'in_row' : 'share',
|
|
46
78
|
reason: result.reason ?? 'failed',
|
|
47
79
|
...(result.status === undefined ? {} : { status: result.status }),
|
|
80
|
+
...(result.unreachable ? { unreachable: true } : {}),
|
|
48
81
|
traceId: result.traceId,
|
|
82
|
+
// No connection, repeatedly: maybe the whole app — take() adds the other checks that cannot reach it either.
|
|
83
|
+
...(outage ? { origin } : {}),
|
|
49
84
|
},
|
|
50
85
|
});
|
|
51
86
|
};
|
|
@@ -53,6 +88,18 @@ export class CheckWatch {
|
|
|
53
88
|
take() {
|
|
54
89
|
const found = this.pending;
|
|
55
90
|
this.pending = [];
|
|
91
|
+
// Filled in only now: the other checks of a dead app report their own failures a moment after the first one.
|
|
92
|
+
// A check with a longer interval may still be on its last good run — it is then missing from the list, and quiet
|
|
93
|
+
// about this outage when its turn comes.
|
|
94
|
+
for (const { check } of found) {
|
|
95
|
+
if (!check?.origin)
|
|
96
|
+
continue;
|
|
97
|
+
const also = [...this.down].filter(([name, at]) => at === check.origin && name !== check.name).map(([name]) => name).sort();
|
|
98
|
+
if (also.length > 0)
|
|
99
|
+
check.alsoUnreachable = also;
|
|
100
|
+
else
|
|
101
|
+
delete check.origin;
|
|
102
|
+
}
|
|
56
103
|
return found;
|
|
57
104
|
}
|
|
58
105
|
}
|
package/dist/checks/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/checks/watch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/checks/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** "http://localhost:3000" of a check's address — what is down when nothing there accepts a connection. */
|
|
2
|
+
export declare function originOf(url: string): string;
|
|
3
|
+
export interface CheckFailure {
|
|
4
|
+
name: string;
|
|
5
|
+
method: string;
|
|
6
|
+
url: string;
|
|
7
|
+
/** 'in_row': `count` failures in a row; 'share': `count` of the last `runs`. */
|
|
8
|
+
rule: 'in_row' | 'share';
|
|
9
|
+
count: number;
|
|
10
|
+
runs: number;
|
|
11
|
+
reason: string;
|
|
12
|
+
/** A status came back: the app handled the request and has its trace. */
|
|
13
|
+
answered: boolean;
|
|
14
|
+
/** No connection was made: there cannot be a trace. Neither flag: nobody knows whether the request arrived. */
|
|
15
|
+
unreachable?: boolean;
|
|
16
|
+
traceId: string;
|
|
17
|
+
/** Other checks that get no connection to the same address (`origin`) either: the app is down, not one route. */
|
|
18
|
+
alsoUnreachable?: string[];
|
|
19
|
+
origin?: string;
|
|
20
|
+
}
|
|
21
|
+
/** Where to look after a failed run: its trace, when there can be one. */
|
|
22
|
+
export declare function whereToLook(f: Pick<CheckFailure, 'answered' | 'unreachable' | 'traceId'>): string;
|
|
23
|
+
export declare function checkFailureQuestion(f: CheckFailure): string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// The question about a failing check — one wording for the anomaly the observer raises and for the Investigate button.
|
|
2
|
+
// No Node code here: the UI imports it too.
|
|
3
|
+
/** "http://localhost:3000" of a check's address — what is down when nothing there accepts a connection. */
|
|
4
|
+
export function originOf(url) {
|
|
5
|
+
// try/catch, not URL.canParse: this runs in the browser too, and older ones do not have it.
|
|
6
|
+
try {
|
|
7
|
+
return new URL(url).origin;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return url;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Where to look after a failed run: its trace, when there can be one. */
|
|
14
|
+
export function whereToLook(f) {
|
|
15
|
+
// A request that reached nobody left no trace: sending the agents after one would have them report "trace not found".
|
|
16
|
+
if (f.unreachable)
|
|
17
|
+
return 'The request reached nobody, so there is no trace of it — check whether the service is receiving any traffic at all.';
|
|
18
|
+
if (f.answered)
|
|
19
|
+
return `The app recorded the last failing request as trace ${f.traceId}: open it, name the span that failed or took the time and its code file.`;
|
|
20
|
+
return `No answer came back. If the request arrived, it is trace ${f.traceId}: try to open it and name the span where it got stuck. If there is no such trace, the request never arrived or the app is stuck — check whether the service is receiving any traffic at all.`;
|
|
21
|
+
}
|
|
22
|
+
export function checkFailureQuestion(f) {
|
|
23
|
+
const how = f.rule === 'in_row' ? `failed ${f.count} ${f.count === 1 ? 'time' : 'times'} in a row` : `failed ${f.count} of its last ${f.runs} runs`;
|
|
24
|
+
const question = `the scheduled check "${f.name}" (${f.method} ${f.url}) ${how}. Last failure: ${f.reason}. ${whereToLook(f)}`;
|
|
25
|
+
const also = f.alsoUnreachable ?? [];
|
|
26
|
+
if (also.length === 0)
|
|
27
|
+
return question;
|
|
28
|
+
const others = also.length === 1 ? `Another check gets no connection either (${also[0]})` : `${also.length} other checks get no connection either (${also.join(', ')})`;
|
|
29
|
+
return `${question} ${others}: ${f.origin ?? 'the app'} looks down as a whole, not one route.`;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"words.js","sourceRoot":"","sources":["../../src/checks/words.ts"],"names":[],"mappings":"AAAA,uHAAuH;AACvH,4CAA4C;AAE5C,2GAA2G;AAC3G,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,4FAA4F;IAC5F,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAqBD,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,CAA6D;IACvF,sHAAsH;IACtH,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,qHAAqH,CAAA;IAC/I,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,sDAAsD,CAAC,CAAC,OAAO,0EAA0E,CAAA;IAChK,OAAO,4DAA4D,CAAC,CAAC,OAAO,8LAA8L,CAAA;AAC5Q,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAe;IAClD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAAA;IACnJ,MAAM,QAAQ,GAAG,wBAAwB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,mBAAmB,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9H,MAAM,IAAI,GAAG,CAAC,CAAC,eAAe,IAAI,EAAE,CAAA;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAA;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,2CAA2C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IACvK,OAAO,GAAG,QAAQ,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,SAAS,wCAAwC,CAAA;AAChG,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -240,7 +240,7 @@ async function start(args, deps) {
|
|
|
240
240
|
lines.push(' demo "shop" scenario: v1 → v2 regression, inventory errors, catalog N+1, an error new in v2 — live v2 traffic every 2 s');
|
|
241
241
|
const line = lines.join('\n');
|
|
242
242
|
try {
|
|
243
|
-
const collector = await startCollector({ port: args.port, host: args.host, apiKey: args.apiKey, uiPassword: args.uiPassword, storage, chat, detector, checks: checks && { list: () => checks.list(), isCheckTrace: (traceId) => checks.isCheckTrace(traceId), ...(watch ? { anomalies: () => watch.take() } : {}) } });
|
|
243
|
+
const collector = await startCollector({ port: args.port, host: args.host, apiKey: args.apiKey, uiPassword: args.uiPassword, storage, chat, detector, checks: checks && { list: () => checks.list(), isCheckTrace: (traceId) => checks.isCheckTrace(traceId), ...(watch ? { anomalies: () => watch.take(), rule: watch.rule } : {}) } });
|
|
244
244
|
checks?.start();
|
|
245
245
|
const stopDemo = args.demo ? startLiveDemo({ storage, detector }) : undefined;
|
|
246
246
|
return {
|
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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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Anomaly, type AnomalyDetector } from '../debug/detector.js';
|
|
2
2
|
import type { ChatHandler } from './chat.js';
|
|
3
3
|
import type { CheckRunner } from '../checks/runner.js';
|
|
4
|
+
import { type CheckRule } from '../checks/types.js';
|
|
4
5
|
import type { StorageAdapter } from './types.js';
|
|
5
6
|
export interface CollectorOptions {
|
|
6
7
|
/** Default 4318 (standard OTLP/HTTP port). 0 = random free port. */
|
|
@@ -29,7 +30,8 @@ export interface CollectorOptions {
|
|
|
29
30
|
detectorIntervalMs?: number;
|
|
30
31
|
/** Scheduled checks (observe.checks.ts) whose results /api/checks reports; absent → none configured. */
|
|
31
32
|
checks?: Pick<CheckRunner, 'list'> & Partial<Pick<CheckRunner, 'isCheckTrace'>> & {
|
|
32
|
-
anomalies?: () => Anomaly[];
|
|
33
|
+
anomalies?: () => Anomaly[]; /** The thresholds behind `anomalies`, for the Checks page. */
|
|
34
|
+
rule?: CheckRule;
|
|
33
35
|
};
|
|
34
36
|
}
|
|
35
37
|
export interface Collector {
|
package/dist/collector/server.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// GET /api/overview?windowMs&service&toMs dashboard: requests by status class, latency, errors, top routes
|
|
9
9
|
// GET /api/operation?operation&service&windowMs&toMs one operation: overview, latency histogram, two speeds, versions
|
|
10
10
|
// GET /api/defects?windowMs&service&toMs errors grouped by where they originated and their message
|
|
11
|
-
// GET /api/checks { checks }: scheduled checks from observe.checks.ts with their latest results
|
|
11
|
+
// GET /api/checks { checks, nowMs, rule, investigates }: scheduled checks from observe.checks.ts with their latest results
|
|
12
12
|
// GET /api/regression?service&sinceMinutes { regression }: the latest version vs the previous one, or null
|
|
13
13
|
// GET /api/chat { enabled, mode }
|
|
14
14
|
// POST /api/chat { question, sessionId? } → NDJSON stream of ChatEvent (status, step…, card…, report | error)
|
|
@@ -21,6 +21,7 @@ import { questionFor } from '../debug/detector.js';
|
|
|
21
21
|
import { createAgentQueries } from '../debug/queries.js';
|
|
22
22
|
import { findRegression } from '../debug/regression.js';
|
|
23
23
|
import { gunzipSync } from 'node:zlib';
|
|
24
|
+
import { CHECK_RULE } from '../checks/types.js';
|
|
24
25
|
import { decodeOtlpJson } from './decode.js';
|
|
25
26
|
import { protobufToOtlpJson } from './protobuf.js';
|
|
26
27
|
import { computeDefects } from './defects.js';
|
|
@@ -284,8 +285,10 @@ export async function startCollector(options = {}) {
|
|
|
284
285
|
throw new HttpError(400, 'operation is required');
|
|
285
286
|
return send(res, 200, computeOperation(spans, { ...options, operation }));
|
|
286
287
|
}
|
|
287
|
-
if (url.pathname === '/api/checks')
|
|
288
|
-
|
|
288
|
+
if (url.pathname === '/api/checks') {
|
|
289
|
+
const report = { checks: options.checks?.list() ?? [], nowMs: Date.now(), rule: options.checks?.rule ?? CHECK_RULE, investigates: Boolean(options.checks?.anomalies && options.chat) };
|
|
290
|
+
return send(res, 200, report);
|
|
291
|
+
}
|
|
289
292
|
if (url.pathname === '/api/defects') {
|
|
290
293
|
const windowMs = numberParam(q, 'windowMs') ?? OVERVIEW_DEFAULT_WINDOW_MS;
|
|
291
294
|
if (windowMs < 60_000 || windowMs > 86_400_000)
|