Observability — overview¶
Target
This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
Rewritten 2026-10-09 (design plan P8)
This page replaces the June-2026 overview with its telemetry, trace, log, metric and dashboard services. The 2026 design keeps traces, logs and raw metrics in OpenTelemetry backends and makes the Factory own what a backend cannot know — attribution, projections, objectives, alerts, evaluation evidence and the learning loop — as five modules of one host. The old page is archived under catalogs 2026-06.
Observability is where the Factory proves what it did, measures whether it was good, and learns without anything learning in place. Every run leaves a timeline; every release carries evaluation evidence; every objective has an error budget; and every improvement is a proposal a human reviews.
| Platform | PF-13 Observability (Trust & Operations) |
| Bounded contexts | BC-21, BC-22 |
| Services | 15 (1 hosts, 8 modules, 4 external, 2 later) — 6 modelled |
| Gateways | — |
| Status | target |
Purpose¶
- Projections, never truth. The run timeline (original handoff §51) joins Run Control's journal with model, tool, context and usage receipts; it is rebuilt from them whenever it disagrees (D30 restore order puts this store last).
- Objectives with budgets. The pilot NFR numbers (D30) are the platform baseline that tenants may only tighten; breaches are events.
- One place for operator attention. Alerts from objectives, health, uncertain tool effects, findings and metric conditions, deduplicated and routed through the Studio and connectors.
- Evaluation is a core capability (§47–49, D32). Suites per target, verdicts against thresholds and a baseline, waivers only with an approval of class publication, drift detection, immutable evidence read at the Published gate (ADR-0021).
- Governed learning (§32). Feedback, datasets of historical tasks and learning proposals — accepted proposals become releases, nothing else changes an asset.
- OpenTelemetry GenAI conventions. Spans, metrics and evaluation attributes follow the GenAI semantic conventions so any backend can read them (technology radar, D44).
Bounded contexts and services¶
| Context | Owns | Services (granularity) |
|---|---|---|
| BC-21 Operations Observability | Run timelines, overviews, objectives, health, alerts | DashboardService (module; agent telemetry row merged) · SloService (module; runtime health row merged) · AlertRuleService (module) |
| BC-22 Evaluation, Feedback & Learning | Suites, evaluation runs, verdicts, evidence, drift, feedback, datasets, proposals | QualityScoreService (module; knowledge quality row merged) · FeedbackService (module) |
| Host | Composition, inbox, backend connection | ObservabilityHost (standalone) |
| External canonical | Trace, log and metric storage and query | OpenTelemetry backend (Azure Monitor default; Jaeger, Seq on-prem) — LogQuery, MetricAggregation, TelemetryCorrelation, Trace rows |
| Later | Incidents, template analytics | IncidentService, TemplateAnalyticsService |
| Service | Context | Granularity | Status |
|---|---|---|---|
| AgentTelemetryService | BC-21 | module of host | unmodelled |
| AlertRuleService | BC-21 | module of host | target |
| DashboardService | BC-21 | module of host | target |
| FeedbackService | BC-22 | module of host | target |
| IncidentService | BC-21 | later stage | unmodelled |
| KnowledgeQualityService | BC-22 | module of host | unmodelled |
| LogQueryService | BC-21 | external / canonical | unmodelled |
| MetricAggregationService | BC-21 | external / canonical | unmodelled |
| ObservabilityHost | BC-21 | standalone host | target |
| QualityScoreService | BC-22 | module of host | target |
| RuntimeHealthService | BC-21 | module of host | unmodelled |
| SloService | BC-21 | module of host | target |
| TelemetryCorrelationService | BC-21 | external / canonical | unmodelled |
| TemplateAnalyticsService | BC-21 | later stage | unmodelled |
| TraceService | BC-21 | external / canonical | unmodelled |
Context¶
flowchart LR
subgraph P["Observability"]
ObservabilityHost["ObservabilityHost"]
end
P --> ConnectorRegistryService["ConnectorRegistryService"]
P --> StudioNotificationService["StudioNotificationService"]
P --> ext_otel_backend["ext-otel-backend"]
P --> RunControlService["RunControlService"]
P --> ArtifactService["ArtifactService"]
P --> AgentRegistryService["AgentRegistryService"]
P --> ModelRouterService["ModelRouterService"]
P --> MemoryPromotionService["MemoryPromotionService"]
P --> ControlPlaneApi["ControlPlaneApi"]
P --> ModelGatewayHost["ModelGatewayHost"]
P --> GovernanceHost["GovernanceHost"]
P --> KnowledgeHost["KnowledgeHost"]
P --> ext_identity_platform["ext-identity-platform"]
Containers¶
See microservices for the container view of hosts and modules.
What a run leaves behind¶
| Signal | Where it lives | Who owns it |
|---|---|---|
Spans, logs, raw metrics with GenAI attributes (gen_ai.*, connectsoft.factory.*) |
OpenTelemetry backend | the installation's backend |
| Run journal, approvals, usage states | Control plane stores | Run Control, Approval, Cost & Usage |
| Model, tool, context receipts | Their producers' stores and artifacts | Model router, Tool executor, Context builder |
| Timeline, overview, objectives, alerts | observability-sql |
this platform (rebuildable) |
| Evaluation evidence, dataset snapshots, proposals | observability-sql + artifact-blob |
this platform (immutable evidence) |
Metrics the platform computes (§51)¶
Task success rate · agent success rate · cost per task · latency per task · tokens per task · tool failure rate · model fallback rate · human intervention rate · sandbox failure rate · context retrieval quality · evaluation score — per tenant, project, agent, workflow, tool and model, per window.
| Metric | Service | Instrument | Dimensions |
|---|---|---|---|
connectsoft.factory.alerts.fired |
AlertRuleService | counter | tenant, sourceKind, severity |
connectsoft.factory.alerts.open |
AlertRuleService | updown | tenant, severity |
connectsoft.factory.alerts.time_to_acknowledge |
AlertRuleService | histogram | tenant, severity |
connectsoft.factory.operations.projection_lag |
DashboardService | gauge | tenant |
connectsoft.factory.operations.task_success_rate |
DashboardService | gauge | tenant, window |
connectsoft.factory.operations.human_intervention_rate |
DashboardService | gauge | tenant, window |
connectsoft.factory.operations.cost_per_task_usd |
DashboardService | gauge | tenant, window |
connectsoft.factory.learning.feedback |
FeedbackService | counter | tenant, kind |
connectsoft.factory.learning.proposals |
FeedbackService | updown | tenant, kind, state |
connectsoft.factory.learning.datasets |
FeedbackService | updown | tenant, target |
connectsoft.factory.observability.host.inbox_lag |
ObservabilityHost | gauge | module |
connectsoft.factory.observability.host.projection_lag |
ObservabilityHost | gauge | projection |
connectsoft.factory.evaluation.runs |
QualityScoreService | counter | tenant, target, verdict |
connectsoft.factory.evaluation.duration |
QualityScoreService | histogram | target |
connectsoft.factory.evaluation.cost_usd |
QualityScoreService | counter | tenant, target |
connectsoft.factory.evaluation.drift |
QualityScoreService | counter | tenant, metric |
connectsoft.factory.evaluation.waivers |
QualityScoreService | counter | tenant |
connectsoft.factory.slo.state |
SloService | gauge | tenant, subjectKind, kind, state |
connectsoft.factory.slo.error_budget_remaining |
SloService | gauge | tenant, subjectKind, kind |
connectsoft.factory.health.hosts |
SloService | updown | state |
Related¶
- Workflows · UI surfaces · Security · Observability of the platform · Deployment · Later capabilities
- Service pages: ObservabilityHost · DashboardService · SloService · AlertRuleService · QualityScoreService · FeedbackService
- Plane pages: Evaluation · FinOps · Observability foundations · Runtime telemetry requirements · Quality gates (ADR-0021) · NFR baseline