Performance and Observability
Reaktor links runtime health and performance evidence to graph ownership, exact artifacts and runtime instances. Monitoring, profiling and benchmarking are distinct disciplines: metrics reveal a symptom, profiles explain resource use, and controlled workloads establish comparable performance.
This overview belongs to Operations & Reliability. Detailed contracts now live on focused pages; existing product analytics and Reaktor service evidence continue to use ClickHouse.
Source-grounded starting state
Reviewed 1 October 2026 against the current working tree and the 13–14 September infrastructure receipts. This is not a fresh remote health check.
| Area | Present | Remaining qualification/integration |
|---|---|---|
| Shared observability | Alloy/Prometheus/Loki/Tempo/Grafana configuration and dated JVM/Worker ingestion readback | Complete client ingestion, cross-runtime context and graph/release attribution |
| Framework telemetry | Real SDK installation, port interception/semantics, plan teardown, bounded export and health counters | Durable replay capture, backoff and faithful events/links export |
| Local workbench | Real SDK spans in a bounded ledger | Remote delivery/read adapters and exact graph/source join |
| Mobile | Crashlytics adapters and native DevTools frame/memory/startup probes; legacy debug Measure integration pending removal | Release/symbol qualification, session/trace joins and bounded client evidence per Crashlytics; separate Firebase Performance coverage and pinned-device budgets; deep heap/native-leak attribution |
| Browser | Implemented web observations | Qualify published-vitals semantics; current CLS/INP calculations include approximations |
| Performance reports | Budgets, normalized reports, required-measurement manifest | Release-owned probes/baselines and wired gates |
| Profiling/benchmarks | October FlexBuffer ledger, JMH/Chrome/physical-mobile results, and profiling scripts | Actual artifact and comparability evidence per target; codec timings do not measure FFI hops or mutable execution |
| Shadow analytics | Selected WAE + Pipelines/Iceberg design | Implement and qualify paired observations and evidence retrieval |
The earlier claim that every OTel host is noop, that no completed port spans export, or that mobile probes are universally absent is obsolete. Infrastructure ingestion also does not prove all application wiring. Implementation references distinguish source and dated deployment evidence.
Operating paths
| Question | Canonical page |
|---|---|
| Where do runtime signals, comparisons and replay artifacts land? | Shared observability |
| Which graph/source/release produced a measurement? | Graph evidence |
| How large is the app, how many processes/threads exist, and is memory leaking? | Instance diagnostics |
| What explains CPU, waits, allocation, GC or retained/native growth? | Profiling |
| Can the candidate meet realistic demand and recover from faults? | Load & resilience |
| How does a failure become a repeatable regression case? | Shadow verification |
| What should be built and qualified next? | Instrumentation Plan, Delivery gates |
Evidence and budgets
Retain the full original profile/capture plus a small normalized ReaktorPerformanceReport. A Perfetto-compatible trace is useful where supported; a JFR or Instruments artifact requires explicit conversion and coverage, not an extension change. Profiles are attachment facts with target, time, workload, tool/settings, symbols and perturbation.
The implemented required-measurement manifest distinguishes passed, exceeded, no collector and measurement failed. Release requirements name target/revision, metric, unit and collector. Gates must call the manifest path; a legacy budget checker that skips an absent metric cannot establish a pass.
Keep warmup, cold and steady-state intervals separate. Record repetitions and uncertainty, real dependency/capacity equivalence and generator health. An enum entry, script filename or declared collector is not qualification. The September five-platform harness claims were corrected after script failures; each current target still needs a real capture receipt before a broad parity claim.
Graph, privacy and lifecycle
Metrics need quantitative cardinality limits; stable node/snapshot IDs are not automatically bounded labels. Payload values are off by default, client ingestion is authenticated and server-side secrets stay on the server. Heap/profile/replay artifacts have narrower access and explicit deletion/retention policy.
Instrumentation has scope, bounded duration, cancellation and owned teardown. A graph-selected capture reports dropped/unknown boundaries and excludes its own export path. Instance disposal is a verification concern: repeated attach/detach, reconnect and live update must release listeners, jobs, timers, native handles and buffers.
Supporting documents
Analytics + Telemetry owns event catalogs and runtime conventions; DevTools owns live-device inspection; Tooling owns probes and acquisition; Connected panes owns structural navigation. The pre-rewrite design and reviews remain in Performance design history.
Earlier section links
Earlier section anchors remain available here. Their dated source text is in the archive; the reading map above points to the current topic pages.
- Earlier
summarysection. - Earlier
currentsection. - Earlier
lighthousesection. - Earlier
principlessection. - Earlier
modelsection. - Earlier
architecturesection. - Earlier
androidsection. - Earlier
iossection. - Earlier
websection. - Earlier
desktopsection. - Earlier
client-driverssection. - Earlier
jvm-serversection. - Earlier
workerssection. - Earlier
server-driverssection. - Earlier
postgressection. - Earlier
memgraphsection. - Earlier
sqlitesection. - Earlier
telemetry-pipelinesection. - Earlier
prod-slossection. - Earlier
blueprintsection. - Earlier
aisection. - Earlier
bestbudssection. - Earlier
plansection. - Earlier
riskssection.