Skip to content

Observability

ctower treats observability as part of correctness, not an optional dashboard layer. CP3-B implements the authenticated stored health response and its durability, scheduler, outbox, projection, backup, anchor, object, and synthetic contributor vocabulary. The broader collector/dashboard runtime described below remains a target contract.

Three-dimensional health

Health has three independent dimensions:

Dimension Question
Availability Can the service accept and process work?
Completeness Are required events, traces, receipts, and projections present?
Correctness / integrity Do durable records, proofs, fences, and external observations agree?

“All clear” is allowed only when all three are green for the requested scope. A healthy HTTP endpoint cannot hide exporter loss, projection lag, an unknown effect outcome, or a broken audit chain.

Telemetry contract

The authored cross-process context is contracts/observability/telemetry-context.schema.json. Application composition roots own SDK and exporter wiring; domain Modules depend only on typed context and stable log records. Asynchronous durable work uses trace links rather than pretending it is one synchronous call stack.

Public Interfaces and real adapter wrappers are expected to emit:

  • structured typed logs with stable event names;
  • OpenTelemetry-compatible spans across process and provider boundaries;
  • low-cardinality operational and business metrics;
  • explicit health signals for durability, reconciliation, projections, and evidence freshness.

Collector or exporter failure must never roll back a valid Record transaction, but it must make telemetry completeness visibly unhealthy.

Unsupported CP3-B contributors report STATE_UNKNOWN with an explicit not-applicable-in-cp3-b reason; they never inherit another contributor's watermark. A Board GET is read-only and cannot repair lag. Poison recovery requires an authenticated append-only retry or tombstone disposition, while the poison and its deduplicated Attention finding remain immutable evidence.

Redaction and cardinality

Never place prompts, secrets, user content, artifact bytes, bearer values, credential-bearing URLs, or raw high-cardinality identifiers in metric labels. Raw execution output belongs in access-controlled, content-addressed artifacts, not application logs.

Protected effects, authorization denials, proof/gate denials, incidents, rollbacks, stale fences, and reconciliation failures retain complete audit records. Public documentation and example dashboards must use synthetic identifiers only.

Operational evidence

Each dashboard and alert must identify the exact telemetry contract revision, the failure condition it represents, and a named recovery role. Operational readiness is proven through failure injection and restore drills, not the existence of a dashboard screenshot.