Observability — full-stack visibility, built in
Every request in LedgerFlow is traceable end to end — no extra setup, no external subscription.
Traces, metrics, logs and continuous profiling ship with the platform, start with it, and are surfaced in a single pane. Operators see exactly where time goes on any call; integrators can measure their own API requests against the real system.
Most platforms treat this as your problem — a separate project, a separate vendor, a separate bill, and months before anyone can answer "why was that slow". Here it is working on day one.
Four signals, one pane of glass
Every component emits standard telemetry to a single collector, which fans it out to purpose-built backends — all viewed together.
- Traces — one request followed across the entire path, from the edge through the API to the
query that served it, including AI and background-worker paths. Trace context propagates end to end
using the W3C
traceparentstandard. - Metrics — every component scraped on a fixed interval: core data health and connection use, request and error rates and latency across both API channels, edge metrics, and background workers (queue depth, processing time, retries). Rate, Errors and Duration are derived from the traces themselves.
- Logs — structured logs from every component, aggregated centrally and stamped with trace IDs.
- Continuous profiling — CPU, memory and allocation behaviour over time, so a performance regression can be traced to the exact function responsible.
One click between signals
Collecting four signals is common. Correlating them is where the time actually goes — and that is the part that is already done here:
- trace → logs — every log line for a span
- trace → metrics — that component's dashboard
- trace → profile — the flame graph for a span
- metric → trace — click a latency spike, land on a representative trace
- log → trace — follow one log line back to the full request
"Why was this transaction slow?" goes from a dashboard, to the offending trace, to its logs, to the profile of the responsible function — in clicks, not in an afternoon of lining up timestamps across four tools.
What's instrumented
Everything. Not a sampled subset, and not just the easy parts:
- Edge — creates the root span for each request, propagates trace context, exposes connection and throughput metrics.
- API layer — connection, cache and authentication metrics; preserves trace continuity; returns
a
Server-Timingresponse header breaking down the server-side phases of your call. - Operations console — a span tree per page render, correlated with data-layer timing.
- Core data layer — connection, replication and statement-level metrics, plus plans for slow queries.
- Background workers and AI services — fully traced, metered and profiled, with trace-to-profile correlation.
Business-level visibility
The same layer surfaces business metrics — transaction throughput, queue depth, reconciliation match rates, API latency percentiles — on dashboards that are provisioned for you.
Because processing, queuing and scheduling all happen within the platform core, operational and business signals come from one consistent source. There is no reconciling of numbers between a broker's dashboard, a scheduler's log and the ledger's own view of what happened.
Self-hosted, configurable, yours
- Zero-config to start — comes up with the platform.
- Self-hosted — telemetry stays inside your deployment. Nothing is shipped to a third party, which matters when your logs contain financial activity.
- Tunable — retention and storage location for each signal are configuration values: modest on a laptop, generous in production.
- Standards-based — OpenTelemetry throughout. Your telemetry is portable to your own central observability platform, so adopting LedgerFlow does not mean adopting our monitoring choices.
Measure your own integration
Because the platform is fully instrumented, you can measure your own calls instead of
guessing at them. Send a request, read the returned trace identifier and the Server-Timing
response header for a server-side phase breakdown, and — with operator access — open the matching
end-to-end trace to see precisely how the call was handled.
This changes the shape of a production incident. Instead of a support ticket arguing about whether the problem is your side or ours, both parties look at the same trace. Latency has a source you can point to.