# Observability

URL: /code/platform/observability · Id: `capability:observability`

> Observability captures logs, traces and errors from every request and Action, and opens an Incident when a check fails.

Observability captures logs, traces and errors from every request and [Action](/business/nouns/action). When a check fails, it opens an [Incident](/business/nouns/incident) for the agents on duty.

## Contract
- Every Action carries its parent, so one request traces end to end through [Workflows](/business/nouns/workflow), sandboxes, browser sessions and model calls.
- Errors group by fingerprint. Each group opens an [Issue](/business/nouns/issue) tied to the [Version](/business/nouns/version) that introduced it.
- Logs are kept forever. Telemetry may be sampled; errors never are.
- [Metrics](/business/nouns/metric) derive from declared [Events](/business/nouns/event), never from typed-in numbers.
- [Monitors](/business/nouns/monitor) probe what runs outside on a schedule. A failed probe or a missed check-in opens an Incident.
- Outside services send traces and logs over `OTLP` and join the same trace.
- No person carries a pager. Engineering agents triage, fix and roll back; a rollback redeploys the last good Version.

## Verbs
| Verb | Object | Event |
| --- | --- | --- |
| [Incident.create](/business/nouns/incident/create) | [Incident](/business/nouns/incident) | `Incident.created` |
| [Issue.triage](/business/nouns/issue/triage) | [Issue](/business/nouns/issue) | [`Issue.triaged`](/business/events/Issue.triaged) |

## Interfaces
- [API](/code/api/reference)
- [SDK](/code/sdk/reference)
- [CLI](/code/cli/reference)
- [MCP](/code/mcp/reference)

## Example
```bash
# loomandlark.shop sells handwoven throws. Checkout errors rose after version v42 shipped.
npx startup-builder logs tail --level error --route /checkout
npx startup-builder do Issue.triage --json '{"issue":"issue_318"}'
npx startup-builder do Version.deploy --json '{"version":"v41"}'
```