pipework 0.276.0 → 0.277.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 +4 -0
- package/REFERENCE.md +4 -2
- package/dist/async/jobs/run-script.d.ts.map +1 -1
- package/dist/async/jobs/run-script.js +3 -0
- package/dist/async/jobs/run-script.js.map +1 -1
- package/dist/core/lifecycle/startup.d.ts.map +1 -1
- package/dist/core/lifecycle/startup.js +2 -0
- package/dist/core/lifecycle/startup.js.map +1 -1
- package/dist/data/migrate/internal-definitions.d.ts.map +1 -1
- package/dist/data/migrate/internal-definitions.js +2 -1
- package/dist/data/migrate/internal-definitions.js.map +1 -1
- package/dist/infra/alerts/handle.d.ts +10 -0
- package/dist/infra/alerts/handle.d.ts.map +1 -1
- package/dist/infra/alerts/handle.js +34 -3
- package/dist/infra/alerts/handle.js.map +1 -1
- package/dist/infra/alerts/release.d.ts +6 -0
- package/dist/infra/alerts/release.d.ts.map +1 -0
- package/dist/infra/alerts/release.js +25 -0
- package/dist/infra/alerts/release.js.map +1 -0
- package/dist/infra/alerts/schema.d.ts +22 -0
- package/dist/infra/alerts/schema.d.ts.map +1 -1
- package/dist/infra/alerts/schema.js +7 -0
- package/dist/infra/alerts/schema.js.map +1 -1
- package/package.json +1 -1
- package/src/async/jobs/run-script.ts +2 -0
- package/src/core/lifecycle/startup.ts +2 -0
- package/src/data/migrate/internal-definitions.ts +2 -1
- package/src/infra/alerts/handle.ts +43 -3
- package/src/infra/alerts/release.ts +28 -0
- package/src/infra/alerts/schema.ts +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.277.0
|
|
4
|
+
|
|
5
|
+
- **Added: `resendOnNewRelease` on alerts** (#959). On `alerts.create` and per `raise` (default `false`): an open, unacknowledged alert is sent again the first time it is raised by a release first seen later than the release it was last sent from, once per release, in the same atomic statement as `resendAfterMs` (either may send). Releases are detected: each process records its `release` once in the new `pipework_alert_releases` table, so a rollback or two releases live at once never re-send. No configured release: no effect. Each process records its release when the manifold starts or a script runs (blueprint `alerts` set; a failure only logs a warning), with a tick and a raise as fallbacks. The last-sent release only moves to a later-first-seen release. **Migration:** generate a migration to add `pipework_alert_releases` and the `resend_on_new_release` and `last_sent_release` columns on `pipework_alerts`.
|
|
6
|
+
|
|
3
7
|
## 0.276.0
|
|
4
8
|
|
|
5
9
|
- **Fixed: an aborted request always settles, and a real failure after a disconnect is not silent** (#956). A request whose signal aborted (a client disconnect, or `inject({ signal })`) is never answered: the server destroys the raw response whether the handler threw or completed afterwards, so an injected call rejects with `AbortError` instead of never settling or resolving with the real status. Only errors the abort caused (the signal's reason, `RequestAbortedError`, `AbortError`, Postgres `57014`/`25P02`, anywhere in the `cause` chain) are a client abort; any other error after the abort goes through the normal classification and `onInternalError`, with nothing sent. The `pg_cancel_backend` sent on abort is sent over a connection reserved for cancels and awaited before the transaction's connection returns to the pool, so it cannot cancel another request's statement and never waits on a full pool. `cancelOnDisconnect: false` routes are unchanged.
|
package/REFERENCE.md
CHANGED
|
@@ -1939,16 +1939,18 @@ Opt in with blueprint `alerts: {}`. The generated migration then includes three
|
|
|
1939
1939
|
- `pipework_alerts` — one row per key: `status` (`open | resolved`), `severity`, `message`, `subject` jsonb, `count`, `first_seen_at`, `last_seen_at`, `last_sent_at`, `resolved_at`, `trace_ids` (latest 10, newest first).
|
|
1940
1940
|
- `pipework_alert_deliveries` — the outbox, one row per event and sink: `kind` (`raise | repeat | resolve`), `sink`, `payload`, `attempts`, `next_attempt_at`, `delivered_at`, `failed_at`, `last_error`.
|
|
1941
1941
|
- `pipework_alert_source_state` — the position a built-in source has reached.
|
|
1942
|
+
- `pipework_alert_releases` — one row per release seen (`release`, `first_seen_at`); `resendOnNewRelease` compares them.
|
|
1942
1943
|
|
|
1943
1944
|
### `alerts.create`
|
|
1944
1945
|
|
|
1945
|
-
`alerts.create({ sinks, queue, jobType?, resendAfterMs?, resolveAfterQuietMs?, maxAttempts?, backoffMs?, sources?, database?, redact? })` returns a handle.
|
|
1946
|
+
`alerts.create({ sinks, queue, jobType?, resendAfterMs?, resendOnNewRelease?, resolveAfterQuietMs?, maxAttempts?, backoffMs?, sources?, database?, redact? })` returns a handle.
|
|
1946
1947
|
|
|
1947
1948
|
Email addresses in an alert's message and in the strings of its context become `[email]` before it is stored, recorded or sent; add patterns with `redact` (`RegExp[]`, each match becomes `[redacted]`). A job's own `error_payload` is not changed.
|
|
1948
1949
|
|
|
1949
1950
|
- `sinks` — at least one, names unique. `alerts.webhook({ url, secret, name?, timeoutMs? })` POSTs the alert as JSON with `X-Webhook-Id`, `X-Webhook-Timestamp` and `X-Webhook-Signature`, signed like `webhook.sign` and checkable with `webhook.verify.hmac`; a non-2xx answer fails the attempt. `alerts.memory({ name? })` keeps deliveries in `.delivered` (and `.clear()`) for tests. A custom sink is `{ name, send(delivery) }`; throwing, or taking over 10 s, fails the attempt.
|
|
1950
1951
|
- `queue` — the app's queue; sending an alert enqueues the alerts job as a child of the raising trace.
|
|
1951
1952
|
- `jobType` — default `'pipework.alerts'`. `resendAfterMs` — default `null`: an open alert is never re-sent. `resolveAfterQuietMs` — default `null`: only an explicit `resolve` closes it. Both can be set per raise.
|
|
1953
|
+
- `resendOnNewRelease` — default `false`. An open, unacknowledged alert is sent again (a `repeat` delivery, status `'resent'`) the first time it is raised by a release first seen later than the release it was last sent from: once per release, with no `(key, release)` table of your own. The release is the app's `release` (`release.env`); each process records it in `pipework_alert_releases` with the time it was first seen, so a rollback to an older release, or two releases live at once (canary and stable), never re-send. With no release configured the option has no effect. Independent of `resendAfterMs`: either may send. An acknowledged alert never sends; a resolved one reopens as usual, and the reopening release becomes the last sent. Can be set per raise. The release is recorded automatically when the manifold starts (`start()`) or a script runs, if blueprint `alerts` is set (a failure only logs a warning), and again by a tick or a raise if that did not happen, so an older release that is still running and has not raised is not mistaken for a newer one. A later send for another reason (`resendAfterMs`) never moves the last-sent release back to an older one. Existing alerts with no recorded release send once on their next raise from a release.
|
|
1952
1954
|
- `maxAttempts` (default 10) and `backoffMs` (default 5000, doubling per attempt, capped at one hour) govern retries; a row that reaches `maxAttempts`, or names a sink no longer configured, is marked `failed_at` and logged at error.
|
|
1953
1955
|
- `sources` — built-in conditions evaluated on every tick (below). `database` — default the default database.
|
|
1954
1956
|
|
|
@@ -1956,7 +1958,7 @@ Every write goes through `pipe.system()`, outside the request's transaction, so
|
|
|
1956
1958
|
|
|
1957
1959
|
### Methods
|
|
1958
1960
|
|
|
1959
|
-
- `raise(key, { severity, message, subject?, resendAfterMs?, resolveAfterQuietMs? })` — `severity` is `info | warning | error | critical`; `subject` is `{ tenantId?, entity?, entityId? }`. Returns `{ status }`: `'opened'` (new, or reopened after a resolve: count restarts at 1, one `raise` delivery), `'grouped'` (already open: count, last seen, latest message and trace id updated, nothing sent), or `'resent'` (open, `resendAfterMs` passed since the last send: one `repeat` delivery carrying the count). One atomic statement decides it, so 20 processes raising one new key open it once and send once.
|
|
1961
|
+
- `raise(key, { severity, message, subject?, resendAfterMs?, resendOnNewRelease?, resolveAfterQuietMs? })` — `severity` is `info | warning | error | critical`; `subject` is `{ tenantId?, entity?, entityId? }`. Returns `{ status }`: `'opened'` (new, or reopened after a resolve: count restarts at 1, one `raise` delivery), `'grouped'` (already open: count, last seen, latest message and trace id updated, nothing sent), or `'resent'` (open, `resendAfterMs` passed since the last send or `resendOnNewRelease` and a newer release: one `repeat` delivery carrying the count). One atomic statement decides it, so 20 processes raising one new key open it once and send once.
|
|
1960
1962
|
- `resolve(key)` — `true` and one `resolve` delivery if the alert was open; `false` and nothing otherwise.
|
|
1961
1963
|
- `job` — the handler for `jobType`. Add it to the worker's `jobs` and schedule it (every minute with `schedules: [{ job: 'pipework.alerts', cron: '* * * * *' }]`). Each run resolves alerts quiet for their period, evaluates the sources, and sends due deliveries. The schedule is also the safety net: deliveries left by a crash are sent by the next run on any process. Two runs at once send each delivery once, and the deliveries of one alert to one sink go in order.
|
|
1962
1964
|
- `tick()` — what one run does, for tests. Returns `{ resolved, delivered, retried, failed }`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-script.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"run-script.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAatD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iGAAiG;IACjG,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;QAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAkCZ"}
|
|
@@ -5,6 +5,7 @@ import { isTracingEnabled } from '../../trace/entry/tracing-enabled.js';
|
|
|
5
5
|
import { openTrace } from '../../trace/entry/open-trace.js';
|
|
6
6
|
import { parentTraceRef } from '../../trace/entry/parent-trace.js';
|
|
7
7
|
import { closeTrace } from '../../trace/entry/close-trace.js';
|
|
8
|
+
import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js';
|
|
8
9
|
import { stageProcessStart } from '../../trace/entry/process-start.js';
|
|
9
10
|
const SCRIPT_TRANSACTION_TIMEOUT_MS = 5000;
|
|
10
11
|
/**
|
|
@@ -17,6 +18,8 @@ const SCRIPT_TRANSACTION_TIMEOUT_MS = 5000;
|
|
|
17
18
|
* The trace close is awaited, so the row is written before the caller closes the pool.
|
|
18
19
|
*/
|
|
19
20
|
export async function runScript(instance, fn, options = {}) {
|
|
21
|
+
if (options.process?.phase === 'script')
|
|
22
|
+
await recordAlertReleaseAtStart(instance);
|
|
20
23
|
const tenant = options.tenant ?? null;
|
|
21
24
|
const auth = options.auth ?? null;
|
|
22
25
|
const jobType = options.jobType ?? 'script';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-script.js","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,6BAA6B,GAAG,IAAI,CAAA;AAU1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAkB,EAClB,EAAwB,EACxB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAA;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAA;IAC3C,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;YACV,QAAQ;YACR,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,cAAc,EAAE;YACxB,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,CAAC,CAAC,IAAI,CAAA;IACR,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpD,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACvG,MAAM,GAAG,GAAG,KAAK,IAAgB,EAAE,CAAC,EAAE,EAAE,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI;YAC5B,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACxF,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAC1C,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"run-script.js","sourceRoot":"","sources":["../../../src/async/jobs/run-script.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,6BAA6B,GAAG,IAAI,CAAA;AAU1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAkB,EAClB,EAAwB,EACxB,UAA4B,EAAE;IAE9B,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,KAAK,QAAQ;QAAE,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAA;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAA;IAC3C,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;YACV,QAAQ;YACR,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,cAAc,EAAE;YACxB,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,CAAC,CAAC,IAAI,CAAA;IACR,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpD,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACvG,MAAM,GAAG,GAAG,KAAK,IAAgB,EAAE,CAAC,EAAE,EAAE,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI;YAC5B,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACxF,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAC1C,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAS7C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiExG"}
|
|
@@ -3,6 +3,7 @@ import { sql } from '../../data/db/sql.js';
|
|
|
3
3
|
import { getBaseLogger } from '../logging/index.js';
|
|
4
4
|
import { runScript } from '../../async/jobs/run-script.js';
|
|
5
5
|
import { getContext } from '../../request/context/store.js';
|
|
6
|
+
import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js';
|
|
6
7
|
import { TRACE_PARTITION_HOOK_NAME } from '../../trace/partition/startup-hook.js';
|
|
7
8
|
import { projectStepError } from '../../trace/runtime/step-error.js';
|
|
8
9
|
import { serializeForTrace } from '../../trace/capture/bounded-serializer.js';
|
|
@@ -11,6 +12,7 @@ export async function orchestrateStartup(instance, options = {}) {
|
|
|
11
12
|
const timeoutMs = options.timeoutMs ?? 30000;
|
|
12
13
|
const doStartupWork = async () => {
|
|
13
14
|
await verifyDatabases(instance, logger);
|
|
15
|
+
await recordAlertReleaseAtStart(instance);
|
|
14
16
|
if (options.hooks) {
|
|
15
17
|
// The partition hook creates today's trace partition, so it runs first and outside the trace.
|
|
16
18
|
const partition = options.hooks.filter(h => h.name === TRACE_PARTITION_HOOK_NAME);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAO7E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAkB,EAAE,UAA0B,EAAE;IACvF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;IAE5C,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/core/lifecycle/startup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-definitions.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"internal-definitions.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmKlC"}
|
|
@@ -73,11 +73,12 @@ export async function loadInternalDefinitions(blueprint, options) {
|
|
|
73
73
|
result['__pipework_crawl_resource'] = crawlResources;
|
|
74
74
|
}
|
|
75
75
|
if (blueprint.alerts !== undefined) {
|
|
76
|
-
const { alerts, alertOccurrences, alertDeliveries, alertSourceState, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js');
|
|
76
|
+
const { alerts, alertOccurrences, alertDeliveries, alertSourceState, alertReleases, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js');
|
|
77
77
|
result['__pipework_alerts'] = alerts;
|
|
78
78
|
result['__pipework_alert_occurrences'] = alertOccurrences;
|
|
79
79
|
result['__pipework_alert_deliveries'] = alertDeliveries;
|
|
80
80
|
result['__pipework_alert_source_state'] = alertSourceState;
|
|
81
|
+
result['__pipework_alert_releases'] = alertReleases;
|
|
81
82
|
result['__pipework_unit_faults'] = unitFaults;
|
|
82
83
|
result['__pipework_loop_beats'] = loopBeats;
|
|
83
84
|
result['__pipework_faults'] = faults;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-definitions.js","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"internal-definitions.js","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,14 @@ export interface AlertsConfig {
|
|
|
17
17
|
readonly jobType?: string;
|
|
18
18
|
/** Send again while an alert stays open and is raised again after this long since the last send. Default `null`: never. */
|
|
19
19
|
readonly resendAfterMs?: number | null;
|
|
20
|
+
/**
|
|
21
|
+
* Send an open, unacknowledged alert again the first time it is raised by a release first seen later than the
|
|
22
|
+
* release it was last sent from, once per release. Releases are detected, not configured: each process records its
|
|
23
|
+
* `release` (from `release.env`) with the time it was first seen. A rollback to an older release, or two releases
|
|
24
|
+
* live at once, never re-send. Without a configured release it has no effect. Independent of `resendAfterMs`:
|
|
25
|
+
* either may send. Default `false`; a raise can override it.
|
|
26
|
+
*/
|
|
27
|
+
readonly resendOnNewRelease?: boolean;
|
|
20
28
|
/** Resolve an open alert nobody raised for this long, on the job's tick. Default `null`: only `resolve`. */
|
|
21
29
|
readonly resolveAfterQuietMs?: number | null;
|
|
22
30
|
/** Delivery attempts before a row is given up on; default 10. A delivery given up raises `pipework.alerts.undeliverable:<sink>` through the other sinks. */
|
|
@@ -68,6 +76,8 @@ export interface RaiseOptions {
|
|
|
68
76
|
readonly context?: Readonly<Record<string, JsonValue>>;
|
|
69
77
|
/** Overrides the handle's `resendAfterMs` for this alert; `null`: this alert is never re-sent. */
|
|
70
78
|
readonly resendAfterMs?: number | null;
|
|
79
|
+
/** Overrides the handle's `resendOnNewRelease` for this alert. */
|
|
80
|
+
readonly resendOnNewRelease?: boolean;
|
|
71
81
|
/** Overrides the handle's `resolveAfterQuietMs` for this alert; `null`: only `resolve` closes it. */
|
|
72
82
|
readonly resolveAfterQuietMs?: number | null;
|
|
73
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { getContext } from '../../request/context/store.js';
|
|
|
5
5
|
import { getBaseLogger } from '../../core/logging/index.js';
|
|
6
6
|
import { __flowStep } from '../../trace/runtime/flow-step.js';
|
|
7
7
|
import { auditAlert } from './audit.js';
|
|
8
|
+
import { insertAlertRelease } from './release.js';
|
|
8
9
|
import { ALERT_SEVERITIES, ALERT_STATUSES } from './schema.js';
|
|
9
10
|
import { encodeCursor, decodeCursor } from '../../request/fixture/paginate.js';
|
|
10
11
|
import { checkRetention, createOutbox, hourlySweep } from '../outbox/core.js';
|
|
@@ -147,6 +148,7 @@ export function createAlerts(config) {
|
|
|
147
148
|
const backoffMs = config.backoffMs ?? 5000;
|
|
148
149
|
const defaultResend = config.resendAfterMs ?? null;
|
|
149
150
|
const defaultQuiet = config.resolveAfterQuietMs ?? null;
|
|
151
|
+
const defaultOnRelease = config.resendOnNewRelease ?? false;
|
|
150
152
|
const sources = config.sources ?? [];
|
|
151
153
|
const database = config.database;
|
|
152
154
|
const redactExtra = config.redact ?? [];
|
|
@@ -164,6 +166,17 @@ export function createAlerts(config) {
|
|
|
164
166
|
throw new Error(`[pipework] alerts.raise: ${name} must be a non-negative integer or null, got ${String(value)}.`);
|
|
165
167
|
return value;
|
|
166
168
|
}
|
|
169
|
+
// Each release this process raises from is recorded once (first writer wins) before any resend decision reads it.
|
|
170
|
+
const recorded = new Map();
|
|
171
|
+
function recordRelease(release) {
|
|
172
|
+
let p = recorded.get(release);
|
|
173
|
+
if (p === undefined) {
|
|
174
|
+
p = insertAlertRelease(db(), release).then(() => undefined);
|
|
175
|
+
p.catch(() => recorded.delete(release));
|
|
176
|
+
recorded.set(release, p);
|
|
177
|
+
}
|
|
178
|
+
return p;
|
|
179
|
+
}
|
|
167
180
|
// The alert and its deliveries move in one statement, so a crash cannot leave one without the other.
|
|
168
181
|
const payloadSql = (kind, environment) => sql `jsonb_build_object(
|
|
169
182
|
'kind', ${kind}, 'key', up.key, 'severity', up.severity, 'message', up.message, 'subject', up.subject,
|
|
@@ -182,6 +195,10 @@ export function createAlerts(config) {
|
|
|
182
195
|
if (!SEVERITIES.has(options.severity))
|
|
183
196
|
throw new Error(`[pipework] alerts.raise: severity must be info, warning, error or critical, got "${String(options.severity)}".`);
|
|
184
197
|
const resendStored = storedMs('resendAfterMs', options.resendAfterMs);
|
|
198
|
+
const onReleaseStored = options.resendOnNewRelease ?? null;
|
|
199
|
+
const release = getContext()?.instance.config.release ?? null;
|
|
200
|
+
if (release !== null)
|
|
201
|
+
await recordRelease(release);
|
|
185
202
|
const quietStored = storedMs('resolveAfterQuietMs', options.resolveAfterQuietMs);
|
|
186
203
|
const traceId = getContext()?.trace?.id ?? null;
|
|
187
204
|
const traceArray = traceId === null ? '{}' : textArrayParam([traceId]);
|
|
@@ -195,16 +212,20 @@ export function createAlerts(config) {
|
|
|
195
212
|
const sendsSql = sql `(a.status <> 'acknowledged' AND (a.status = 'resolved' OR a.last_sent_at IS NULL
|
|
196
213
|
OR (NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) IS NOT NULL
|
|
197
214
|
AND EXCLUDED.last_sent_at - a.last_sent_at
|
|
198
|
-
>= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')
|
|
215
|
+
>= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')
|
|
216
|
+
OR (${release}::text IS NOT NULL
|
|
217
|
+
AND COALESCE(EXCLUDED.resend_on_new_release, a.resend_on_new_release, ${defaultOnRelease}::boolean)
|
|
218
|
+
AND (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
|
|
219
|
+
> COALESCE((SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release), '-infinity'::timestamptz))))`;
|
|
199
220
|
const kindSql = sql `CASE WHEN up.inserted THEN 'raise' WHEN up.reopened THEN 'reopen' ELSE 'repeat' END`;
|
|
200
221
|
const rows = await db().execute(sql `
|
|
201
222
|
WITH up AS (
|
|
202
223
|
INSERT INTO pipework_alerts AS a
|
|
203
224
|
(key, status, severity, message, subject, owner, runbook, context, count, first_seen_at, last_seen_at, last_sent_at,
|
|
204
|
-
trace_ids, resend_after_ms, resolve_after_quiet_ms, updated_at)
|
|
225
|
+
trace_ids, resend_after_ms, resend_on_new_release, last_sent_release, resolve_after_quiet_ms, updated_at)
|
|
205
226
|
SELECT ${key}, 'open', ${options.severity}, ${message}, ${subject}::jsonb,
|
|
206
227
|
${options.owner ?? null}::text, ${options.runbook ?? null}::text, ${context}::jsonb, 1, c.ts, c.ts, c.ts,
|
|
207
|
-
${traceArray}::text[], ${resendStored}::int, ${quietStored}::int, c.ts
|
|
228
|
+
${traceArray}::text[], ${resendStored}::int, ${onReleaseStored}::boolean, ${release}::text, ${quietStored}::int, c.ts
|
|
208
229
|
FROM (SELECT clock_timestamp() AS ts) c
|
|
209
230
|
ON CONFLICT (key) DO UPDATE SET
|
|
210
231
|
status = CASE WHEN a.status = 'acknowledged' THEN 'acknowledged' ELSE 'open' END,
|
|
@@ -227,6 +248,13 @@ export function createAlerts(config) {
|
|
|
227
248
|
WHEN ${traceId}::text IS NULL THEN a.trace_ids
|
|
228
249
|
ELSE (EXCLUDED.trace_ids || array_remove(a.trace_ids, ${traceId}::text))[1:10] END,
|
|
229
250
|
resend_after_ms = COALESCE(EXCLUDED.resend_after_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_after_ms END),
|
|
251
|
+
resend_on_new_release = COALESCE(EXCLUDED.resend_on_new_release, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_on_new_release END),
|
|
252
|
+
last_sent_release = CASE WHEN NOT ${sendsSql} THEN a.last_sent_release
|
|
253
|
+
WHEN a.status = 'resolved' THEN ${release}::text
|
|
254
|
+
WHEN ${release}::text IS NULL OR a.last_sent_release IS NULL THEN COALESCE(${release}::text, a.last_sent_release)
|
|
255
|
+
WHEN (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
|
|
256
|
+
> (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release)
|
|
257
|
+
THEN ${release}::text ELSE a.last_sent_release END,
|
|
230
258
|
resolve_after_quiet_ms = COALESCE(EXCLUDED.resolve_after_quiet_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resolve_after_quiet_ms END),
|
|
231
259
|
last_sent_at = CASE WHEN ${sendsSql} THEN ${seenSql} ELSE a.last_sent_at END,
|
|
232
260
|
updated_at = EXCLUDED.updated_at
|
|
@@ -552,6 +580,9 @@ export function createAlerts(config) {
|
|
|
552
580
|
log.error({ err }, 'alert delivery sweep failed');
|
|
553
581
|
});
|
|
554
582
|
async function runTick() {
|
|
583
|
+
const running = getContext()?.instance.config.release ?? null;
|
|
584
|
+
if (running !== null)
|
|
585
|
+
await recordRelease(running);
|
|
555
586
|
let resolved = await autoResolve();
|
|
556
587
|
resolved += await runSources();
|
|
557
588
|
await pruneOccurrences();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../src/infra/alerts/handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DB } from '../../data/db/index.js';
|
|
2
|
+
import type { Manifold } from '../../core/pipework.js';
|
|
3
|
+
export declare function insertAlertRelease(db: DB, release: string): Promise<unknown>;
|
|
4
|
+
/** No-op without blueprint `alerts` or a release. A failure logs a warning and never throws. */
|
|
5
|
+
export declare function recordAlertReleaseAtStart(instance: Manifold): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/release.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGtD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5E;AAID,gGAAgG;AAChG,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Records the release a process runs in `pipework_alert_releases`, first writer wins, so `resendOnNewRelease` can order
|
|
2
|
+
// releases by when each was first seen. Done at manifold start and script start when blueprint `alerts` is set; a
|
|
3
|
+
// raise and a tick record it too if this did not.
|
|
4
|
+
import { sql } from '../../data/db/sql.js';
|
|
5
|
+
import { getBaseLogger } from '../../core/logging/index.js';
|
|
6
|
+
export function insertAlertRelease(db, release) {
|
|
7
|
+
return Promise.resolve(db.execute(sql `INSERT INTO pipework_alert_releases ("release", first_seen_at)
|
|
8
|
+
VALUES (${release}::text, clock_timestamp()) ON CONFLICT ("release") DO NOTHING`));
|
|
9
|
+
}
|
|
10
|
+
const recorded = new WeakSet();
|
|
11
|
+
/** No-op without blueprint `alerts` or a release. A failure logs a warning and never throws. */
|
|
12
|
+
export async function recordAlertReleaseAtStart(instance) {
|
|
13
|
+
const release = instance.config.release;
|
|
14
|
+
if (instance.config.raw.alerts === undefined || release === null || recorded.has(instance))
|
|
15
|
+
return;
|
|
16
|
+
try {
|
|
17
|
+
const db = instance.pool.getOrCreate(instance.config.database(instance.config.defaultDatabaseName())).drizzle;
|
|
18
|
+
await insertAlertRelease(db, release);
|
|
19
|
+
recorded.add(instance);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
getBaseLogger().warn({ release, err }, 'Could not record the release for alerts at start; the first tick or raise will');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/infra/alerts/release.ts"],"names":[],"mappings":"AAAA,wHAAwH;AACxH,kHAAkH;AAClH,kDAAkD;AAElD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,MAAM,UAAU,kBAAkB,CAAC,EAAM,EAAE,OAAe;IACxD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;cACzB,OAAO,+DAA+D,CAAC,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAY,CAAA;AAExC,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,QAAkB;IAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAA;IACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAM;IAClG,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QAC7G,MAAM,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACrC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,gFAAgF,CAAC,CAAA;IAC1H,CAAC;AACH,CAAC"}
|
|
@@ -114,6 +114,16 @@ export declare const alerts: import("../../data/domain/types.js").DefinedTable<{
|
|
|
114
114
|
}> & import("../../data/domain/field.js").FieldModifiers<number | null, {
|
|
115
115
|
nullable: true;
|
|
116
116
|
}>;
|
|
117
|
+
resendOnNewRelease: import("../../data/domain/types.js").FieldDescriptor<boolean | null, {
|
|
118
|
+
nullable: true;
|
|
119
|
+
}> & import("../../data/domain/field.js").FieldModifiers<boolean | null, {
|
|
120
|
+
nullable: true;
|
|
121
|
+
}>;
|
|
122
|
+
lastSentRelease: import("../../data/domain/types.js").FieldDescriptor<string | null, {
|
|
123
|
+
nullable: true;
|
|
124
|
+
}> & import("../../data/domain/field.js").FieldModifiers<string | null, {
|
|
125
|
+
nullable: true;
|
|
126
|
+
}>;
|
|
117
127
|
resolveAfterQuietMs: import("../../data/domain/types.js").FieldDescriptor<number | null, {
|
|
118
128
|
nullable: true;
|
|
119
129
|
}> & import("../../data/domain/field.js").FieldModifiers<number | null, {
|
|
@@ -125,6 +135,18 @@ export declare const alerts: import("../../data/domain/types.js").DefinedTable<{
|
|
|
125
135
|
hasDefault: true;
|
|
126
136
|
}>;
|
|
127
137
|
}, "pipework_alerts">;
|
|
138
|
+
export declare const alertReleases: import("../../data/domain/types.js").DefinedTable<{
|
|
139
|
+
release: import("../../data/domain/types.js").FieldDescriptor<string, {
|
|
140
|
+
primaryKey: true;
|
|
141
|
+
}> & import("../../data/domain/field.js").FieldModifiers<string, {
|
|
142
|
+
primaryKey: true;
|
|
143
|
+
}>;
|
|
144
|
+
firstSeenAt: import("../../data/domain/types.js").FieldDescriptor<Date, {
|
|
145
|
+
hasDefault: true;
|
|
146
|
+
}> & import("../../data/domain/field.js").FieldModifiers<Date, {
|
|
147
|
+
hasDefault: true;
|
|
148
|
+
}>;
|
|
149
|
+
}, "pipework_alert_releases">;
|
|
128
150
|
export declare const alertOccurrences: import("../../data/domain/types.js").DefinedTable<{
|
|
129
151
|
id: import("../../data/domain/types.js").FieldDescriptor<string, {
|
|
130
152
|
defaultRandom: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,+CAAgD,CAAA;AAC3E,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AACjF,eAAO,MAAM,oBAAoB,6DAA8D,CAAA;AAE/F,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,+CAAgD,CAAA;AAC3E,eAAO,MAAM,gBAAgB,mDAAoD,CAAA;AACjF,eAAO,MAAM,oBAAoB,6DAA8D,CAAA;AAE/F,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAiCjB,CAAA;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;6BAGxB,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAa3B,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmB1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;iCAG3B,CAAA;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAWrB,CAAA;AAGF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;yBAMpB,CAAA;AAGF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAWjB,CAAA"}
|
|
@@ -33,6 +33,8 @@ export const alerts = define('pipework_alerts', {
|
|
|
33
33
|
issueUrl: field.text().nullable(),
|
|
34
34
|
traceIds: field.custom(schema.col.text('trace_ids').array(), schema.check.array(schema.check.string())).default('{}'),
|
|
35
35
|
resendAfterMs: field.integer().nullable(),
|
|
36
|
+
resendOnNewRelease: field.boolean().nullable(),
|
|
37
|
+
lastSentRelease: field.text().nullable(),
|
|
36
38
|
resolveAfterQuietMs: field.integer().nullable(),
|
|
37
39
|
updatedAt: field.timestamp().default('now'),
|
|
38
40
|
}, {
|
|
@@ -40,6 +42,11 @@ export const alerts = define('pipework_alerts', {
|
|
|
40
42
|
byStatus: index('idx_pipework_alerts_status').on(t['status']),
|
|
41
43
|
}),
|
|
42
44
|
});
|
|
45
|
+
// One row per release a process running alerts has recorded, with when it was first seen; `resendOnNewRelease` compares these.
|
|
46
|
+
export const alertReleases = define('pipework_alert_releases', {
|
|
47
|
+
release: field.text().primaryKey(),
|
|
48
|
+
firstSeenAt: field.timestamp().default('now'),
|
|
49
|
+
});
|
|
43
50
|
// One row per raise, kept for `occurrenceRetentionMs`.
|
|
44
51
|
export const alertOccurrences = define('pipework_alert_occurrences', {
|
|
45
52
|
id: field.uuid().defaultRandom().primaryKey(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/infra/alerts/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,6 +6,7 @@ import { isTracingEnabled } from '../../trace/entry/tracing-enabled.js'
|
|
|
6
6
|
import { openTrace } from '../../trace/entry/open-trace.js'
|
|
7
7
|
import { parentTraceRef } from '../../trace/entry/parent-trace.js'
|
|
8
8
|
import { closeTrace } from '../../trace/entry/close-trace.js'
|
|
9
|
+
import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js'
|
|
9
10
|
import { stageProcessStart } from '../../trace/entry/process-start.js'
|
|
10
11
|
|
|
11
12
|
const SCRIPT_TRANSACTION_TIMEOUT_MS = 5000
|
|
@@ -32,6 +33,7 @@ export async function runScript<T>(
|
|
|
32
33
|
fn: () => T | Promise<T>,
|
|
33
34
|
options: RunScriptOptions = {},
|
|
34
35
|
): Promise<T> {
|
|
36
|
+
if (options.process?.phase === 'script') await recordAlertReleaseAtStart(instance)
|
|
35
37
|
const tenant = options.tenant ?? null
|
|
36
38
|
const auth = options.auth ?? null
|
|
37
39
|
const jobType = options.jobType ?? 'script'
|
|
@@ -5,6 +5,7 @@ import type { StartupHook } from './types.js'
|
|
|
5
5
|
import { getBaseLogger } from '../logging/index.js'
|
|
6
6
|
import { runScript } from '../../async/jobs/run-script.js'
|
|
7
7
|
import { getContext } from '../../request/context/store.js'
|
|
8
|
+
import { recordAlertReleaseAtStart } from '../../infra/alerts/release.js'
|
|
8
9
|
import { TRACE_PARTITION_HOOK_NAME } from '../../trace/partition/startup-hook.js'
|
|
9
10
|
import { projectStepError } from '../../trace/runtime/step-error.js'
|
|
10
11
|
import { serializeForTrace } from '../../trace/capture/bounded-serializer.js'
|
|
@@ -20,6 +21,7 @@ export async function orchestrateStartup(instance: Manifold, options: StartupOpt
|
|
|
20
21
|
|
|
21
22
|
const doStartupWork = async () => {
|
|
22
23
|
await verifyDatabases(instance, logger)
|
|
24
|
+
await recordAlertReleaseAtStart(instance)
|
|
23
25
|
|
|
24
26
|
if (options.hooks) {
|
|
25
27
|
// The partition hook creates today's trace partition, so it runs first and outside the trace.
|
|
@@ -92,11 +92,12 @@ export async function loadInternalDefinitions(
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
if (blueprint.alerts !== undefined) {
|
|
95
|
-
const { alerts, alertOccurrences, alertDeliveries, alertSourceState, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js')
|
|
95
|
+
const { alerts, alertOccurrences, alertDeliveries, alertSourceState, alertReleases, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js')
|
|
96
96
|
result['__pipework_alerts'] = alerts
|
|
97
97
|
result['__pipework_alert_occurrences'] = alertOccurrences
|
|
98
98
|
result['__pipework_alert_deliveries'] = alertDeliveries
|
|
99
99
|
result['__pipework_alert_source_state'] = alertSourceState
|
|
100
|
+
result['__pipework_alert_releases'] = alertReleases
|
|
100
101
|
result['__pipework_unit_faults'] = unitFaults
|
|
101
102
|
result['__pipework_loop_beats'] = loopBeats
|
|
102
103
|
result['__pipework_faults'] = faults
|
|
@@ -7,6 +7,7 @@ import type { Queue } from '../../async/jobs/queue.js'
|
|
|
7
7
|
import type { Handler } from '../../request/di/types.js'
|
|
8
8
|
import { __flowStep } from '../../trace/runtime/flow-step.js'
|
|
9
9
|
import { auditAlert } from './audit.js'
|
|
10
|
+
import { insertAlertRelease } from './release.js'
|
|
10
11
|
import { ALERT_SEVERITIES, ALERT_STATUSES } from './schema.js'
|
|
11
12
|
import { encodeCursor, decodeCursor } from '../../request/fixture/paginate.js'
|
|
12
13
|
import { checkRetention, createOutbox, hourlySweep } from '../outbox/core.js'
|
|
@@ -34,6 +35,14 @@ export interface AlertsConfig {
|
|
|
34
35
|
readonly jobType?: string
|
|
35
36
|
/** Send again while an alert stays open and is raised again after this long since the last send. Default `null`: never. */
|
|
36
37
|
readonly resendAfterMs?: number | null
|
|
38
|
+
/**
|
|
39
|
+
* Send an open, unacknowledged alert again the first time it is raised by a release first seen later than the
|
|
40
|
+
* release it was last sent from, once per release. Releases are detected, not configured: each process records its
|
|
41
|
+
* `release` (from `release.env`) with the time it was first seen. A rollback to an older release, or two releases
|
|
42
|
+
* live at once, never re-send. Without a configured release it has no effect. Independent of `resendAfterMs`:
|
|
43
|
+
* either may send. Default `false`; a raise can override it.
|
|
44
|
+
*/
|
|
45
|
+
readonly resendOnNewRelease?: boolean
|
|
37
46
|
/** Resolve an open alert nobody raised for this long, on the job's tick. Default `null`: only `resolve`. */
|
|
38
47
|
readonly resolveAfterQuietMs?: number | null
|
|
39
48
|
/** Delivery attempts before a row is given up on; default 10. A delivery given up raises `pipework.alerts.undeliverable:<sink>` through the other sinks. */
|
|
@@ -82,6 +91,8 @@ export interface RaiseOptions {
|
|
|
82
91
|
readonly context?: Readonly<Record<string, JsonValue>>
|
|
83
92
|
/** Overrides the handle's `resendAfterMs` for this alert; `null`: this alert is never re-sent. */
|
|
84
93
|
readonly resendAfterMs?: number | null
|
|
94
|
+
/** Overrides the handle's `resendOnNewRelease` for this alert. */
|
|
95
|
+
readonly resendOnNewRelease?: boolean
|
|
85
96
|
/** Overrides the handle's `resolveAfterQuietMs` for this alert; `null`: only `resolve` closes it. */
|
|
86
97
|
readonly resolveAfterQuietMs?: number | null
|
|
87
98
|
}
|
|
@@ -354,6 +365,7 @@ export function createAlerts(config: AlertsConfig): Alerts {
|
|
|
354
365
|
const backoffMs = config.backoffMs ?? 5000
|
|
355
366
|
const defaultResend = config.resendAfterMs ?? null
|
|
356
367
|
const defaultQuiet = config.resolveAfterQuietMs ?? null
|
|
368
|
+
const defaultOnRelease = config.resendOnNewRelease ?? false
|
|
357
369
|
const sources = config.sources ?? []
|
|
358
370
|
const database = config.database
|
|
359
371
|
const redactExtra = config.redact ?? []
|
|
@@ -372,6 +384,18 @@ export function createAlerts(config: AlertsConfig): Alerts {
|
|
|
372
384
|
return value
|
|
373
385
|
}
|
|
374
386
|
|
|
387
|
+
// Each release this process raises from is recorded once (first writer wins) before any resend decision reads it.
|
|
388
|
+
const recorded = new Map<string, Promise<void>>()
|
|
389
|
+
function recordRelease(release: string): Promise<void> {
|
|
390
|
+
let p = recorded.get(release)
|
|
391
|
+
if (p === undefined) {
|
|
392
|
+
p = insertAlertRelease(db(), release).then(() => undefined)
|
|
393
|
+
p.catch(() => recorded.delete(release))
|
|
394
|
+
recorded.set(release, p)
|
|
395
|
+
}
|
|
396
|
+
return p
|
|
397
|
+
}
|
|
398
|
+
|
|
375
399
|
// The alert and its deliveries move in one statement, so a crash cannot leave one without the other.
|
|
376
400
|
const payloadSql = (kind: ReturnType<typeof sql>, environment: string) => sql`jsonb_build_object(
|
|
377
401
|
'kind', ${kind}, 'key', up.key, 'severity', up.severity, 'message', up.message, 'subject', up.subject,
|
|
@@ -390,6 +414,9 @@ export function createAlerts(config: AlertsConfig): Alerts {
|
|
|
390
414
|
if (key.trim() === '') throw new Error('[pipework] alerts.raise needs a non-empty key.')
|
|
391
415
|
if (!SEVERITIES.has(options.severity)) throw new Error(`[pipework] alerts.raise: severity must be info, warning, error or critical, got "${String(options.severity)}".`)
|
|
392
416
|
const resendStored = storedMs('resendAfterMs', options.resendAfterMs)
|
|
417
|
+
const onReleaseStored = options.resendOnNewRelease ?? null
|
|
418
|
+
const release = getContext()?.instance.config.release ?? null
|
|
419
|
+
if (release !== null) await recordRelease(release)
|
|
393
420
|
const quietStored = storedMs('resolveAfterQuietMs', options.resolveAfterQuietMs)
|
|
394
421
|
const traceId = getContext()?.trace?.id ?? null
|
|
395
422
|
const traceArray = traceId === null ? '{}' : textArrayParam([traceId])
|
|
@@ -403,16 +430,20 @@ export function createAlerts(config: AlertsConfig): Alerts {
|
|
|
403
430
|
const sendsSql = sql`(a.status <> 'acknowledged' AND (a.status = 'resolved' OR a.last_sent_at IS NULL
|
|
404
431
|
OR (NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) IS NOT NULL
|
|
405
432
|
AND EXCLUDED.last_sent_at - a.last_sent_at
|
|
406
|
-
>= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')
|
|
433
|
+
>= NULLIF(COALESCE(EXCLUDED.resend_after_ms, a.resend_after_ms, ${defaultResend}::int), -1) * interval '1 millisecond')
|
|
434
|
+
OR (${release}::text IS NOT NULL
|
|
435
|
+
AND COALESCE(EXCLUDED.resend_on_new_release, a.resend_on_new_release, ${defaultOnRelease}::boolean)
|
|
436
|
+
AND (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
|
|
437
|
+
> COALESCE((SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release), '-infinity'::timestamptz))))`
|
|
407
438
|
const kindSql = sql`CASE WHEN up.inserted THEN 'raise' WHEN up.reopened THEN 'reopen' ELSE 'repeat' END`
|
|
408
439
|
const rows = await db().execute(sql`
|
|
409
440
|
WITH up AS (
|
|
410
441
|
INSERT INTO pipework_alerts AS a
|
|
411
442
|
(key, status, severity, message, subject, owner, runbook, context, count, first_seen_at, last_seen_at, last_sent_at,
|
|
412
|
-
trace_ids, resend_after_ms, resolve_after_quiet_ms, updated_at)
|
|
443
|
+
trace_ids, resend_after_ms, resend_on_new_release, last_sent_release, resolve_after_quiet_ms, updated_at)
|
|
413
444
|
SELECT ${key}, 'open', ${options.severity}, ${message}, ${subject}::jsonb,
|
|
414
445
|
${options.owner ?? null}::text, ${options.runbook ?? null}::text, ${context}::jsonb, 1, c.ts, c.ts, c.ts,
|
|
415
|
-
${traceArray}::text[], ${resendStored}::int, ${quietStored}::int, c.ts
|
|
446
|
+
${traceArray}::text[], ${resendStored}::int, ${onReleaseStored}::boolean, ${release}::text, ${quietStored}::int, c.ts
|
|
416
447
|
FROM (SELECT clock_timestamp() AS ts) c
|
|
417
448
|
ON CONFLICT (key) DO UPDATE SET
|
|
418
449
|
status = CASE WHEN a.status = 'acknowledged' THEN 'acknowledged' ELSE 'open' END,
|
|
@@ -435,6 +466,13 @@ export function createAlerts(config: AlertsConfig): Alerts {
|
|
|
435
466
|
WHEN ${traceId}::text IS NULL THEN a.trace_ids
|
|
436
467
|
ELSE (EXCLUDED.trace_ids || array_remove(a.trace_ids, ${traceId}::text))[1:10] END,
|
|
437
468
|
resend_after_ms = COALESCE(EXCLUDED.resend_after_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_after_ms END),
|
|
469
|
+
resend_on_new_release = COALESCE(EXCLUDED.resend_on_new_release, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resend_on_new_release END),
|
|
470
|
+
last_sent_release = CASE WHEN NOT ${sendsSql} THEN a.last_sent_release
|
|
471
|
+
WHEN a.status = 'resolved' THEN ${release}::text
|
|
472
|
+
WHEN ${release}::text IS NULL OR a.last_sent_release IS NULL THEN COALESCE(${release}::text, a.last_sent_release)
|
|
473
|
+
WHEN (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = ${release}::text)
|
|
474
|
+
> (SELECT r.first_seen_at FROM pipework_alert_releases r WHERE r."release" = a.last_sent_release)
|
|
475
|
+
THEN ${release}::text ELSE a.last_sent_release END,
|
|
438
476
|
resolve_after_quiet_ms = COALESCE(EXCLUDED.resolve_after_quiet_ms, CASE WHEN a.status = 'resolved' THEN NULL ELSE a.resolve_after_quiet_ms END),
|
|
439
477
|
last_sent_at = CASE WHEN ${sendsSql} THEN ${seenSql} ELSE a.last_sent_at END,
|
|
440
478
|
updated_at = EXCLUDED.updated_at
|
|
@@ -750,6 +788,8 @@ export function createAlerts(config: AlertsConfig): Alerts {
|
|
|
750
788
|
})
|
|
751
789
|
|
|
752
790
|
async function runTick(): Promise<TickResult> {
|
|
791
|
+
const running = getContext()?.instance.config.release ?? null
|
|
792
|
+
if (running !== null) await recordRelease(running)
|
|
753
793
|
let resolved = await autoResolve()
|
|
754
794
|
resolved += await runSources()
|
|
755
795
|
await pruneOccurrences()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Records the release a process runs in `pipework_alert_releases`, first writer wins, so `resendOnNewRelease` can order
|
|
2
|
+
// releases by when each was first seen. Done at manifold start and script start when blueprint `alerts` is set; a
|
|
3
|
+
// raise and a tick record it too if this did not.
|
|
4
|
+
|
|
5
|
+
import { sql } from '../../data/db/sql.js'
|
|
6
|
+
import type { DB } from '../../data/db/index.js'
|
|
7
|
+
import type { Manifold } from '../../core/pipework.js'
|
|
8
|
+
import { getBaseLogger } from '../../core/logging/index.js'
|
|
9
|
+
|
|
10
|
+
export function insertAlertRelease(db: DB, release: string): Promise<unknown> {
|
|
11
|
+
return Promise.resolve(db.execute(sql`INSERT INTO pipework_alert_releases ("release", first_seen_at)
|
|
12
|
+
VALUES (${release}::text, clock_timestamp()) ON CONFLICT ("release") DO NOTHING`))
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const recorded = new WeakSet<Manifold>()
|
|
16
|
+
|
|
17
|
+
/** No-op without blueprint `alerts` or a release. A failure logs a warning and never throws. */
|
|
18
|
+
export async function recordAlertReleaseAtStart(instance: Manifold): Promise<void> {
|
|
19
|
+
const release = instance.config.release
|
|
20
|
+
if (instance.config.raw.alerts === undefined || release === null || recorded.has(instance)) return
|
|
21
|
+
try {
|
|
22
|
+
const db = instance.pool.getOrCreate(instance.config.database(instance.config.defaultDatabaseName())).drizzle
|
|
23
|
+
await insertAlertRelease(db, release)
|
|
24
|
+
recorded.add(instance)
|
|
25
|
+
} catch (err) {
|
|
26
|
+
getBaseLogger().warn({ release, err }, 'Could not record the release for alerts at start; the first tick or raise will')
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -36,6 +36,8 @@ export const alerts = define('pipework_alerts', {
|
|
|
36
36
|
issueUrl: field.text().nullable(),
|
|
37
37
|
traceIds: field.custom(schema.col.text('trace_ids').array(), schema.check.array(schema.check.string())).default('{}'),
|
|
38
38
|
resendAfterMs: field.integer().nullable(),
|
|
39
|
+
resendOnNewRelease: field.boolean().nullable(),
|
|
40
|
+
lastSentRelease: field.text().nullable(),
|
|
39
41
|
resolveAfterQuietMs: field.integer().nullable(),
|
|
40
42
|
updatedAt: field.timestamp().default('now'),
|
|
41
43
|
}, {
|
|
@@ -44,6 +46,12 @@ export const alerts = define('pipework_alerts', {
|
|
|
44
46
|
}),
|
|
45
47
|
})
|
|
46
48
|
|
|
49
|
+
// One row per release a process running alerts has recorded, with when it was first seen; `resendOnNewRelease` compares these.
|
|
50
|
+
export const alertReleases = define('pipework_alert_releases', {
|
|
51
|
+
release: field.text().primaryKey(),
|
|
52
|
+
firstSeenAt: field.timestamp().default('now'),
|
|
53
|
+
})
|
|
54
|
+
|
|
47
55
|
// One row per raise, kept for `occurrenceRetentionMs`.
|
|
48
56
|
export const alertOccurrences = define('pipework_alert_occurrences', {
|
|
49
57
|
id: field.uuid().defaultRandom().primaryKey(),
|