Description
Today an incident scales configured rates, so metrics move together but no log or trace explains why. Model resources a request passes through (connection pools, concurrency limits, queues, quotas, dependency health, credentials) and faults that perturb them (exhausted pool, throttled concurrency, failing or slow dependency, expired credential, failing validation rule). Each request’s latency, outcome, status and error type follow from that state, and spans (status, exception events), logs (error class and message, trace correlation), span metrics, custom metrics and AWS and broker constructs all derive from the same per-request outcomes. Neighbours see timeouts, retries and upstream 5xx. Opt-in per blueprint.
Acceptance Criteria
- #1 A blueprint can declare resources and a fault whose effect is visible and consistent in traces, logs and metrics of the failing node and its callers, with an error message naming the cause
- #2 Blueprints that do not opt in produce unchanged output (inventory diff and -once -dump comparison)
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/