Instrumentiert
im Moment, in dem du es schreibst.
Du verdrahtest kein Tracing — die Runtime tut es. Jede Mutation, Query, Subscription, jeder Workflow, Webhook und AI-Call emittiert automatisch einen OpenTelemetry-Span und speist die Metrik-Registry. Lies es im In-App-Dashboard oder exportiere es in das, was du schon betreibst.
// nothing to wire — every primitive emits a span
// posts.create.mutation.server.ts
export default async (input, ctx) =>
ctx.store.insert('posts', input)
// └─ auto span: mutation.posts.create
// + voltro_rpc_* metrics, one traceId
// from the browser through the API
// export: OTEL_EXPORTER_OTLP_ENDPOINT=… → OTLP
// or add @voltro/plugin-prometheus → /metricsWas du bekommst, ohne irgendetwas zu instrumentieren.
OpenTelemetry-native Spans
Jede Primitive emittiert automatisch einen Span — ein Wasserfall pro Request, den du ohne einen einzigen Tracer-Call lesen kannst. Modi: console, otlp (aus OTEL_*-Env auto-erkannt) oder off, mit einem Always-on-Buffer für das In-App-Dashboard.
Eine Metrik-Registry, eingebaut
voltro_rpc_*, voltro_http_*, voltro_ai_* und mehr landen in einer Effect-MetricRegistry — Request-Counts, Latenzen, Error-Rates, AI-Token-Spend — bereit zum Export oder Scrapen.
In-App-Traces & Time-Travel
Der Always-on-Buffer treibt ein Traces-Dashboard in der App — inspiziere den Span-Baum eines Requests und spiele ihn erneut ab, kein externes Backend nötig, um zu starten.
Verteiltes Tracing
Eine traceId fließt vom Browser durch die API und zurück, sodass eine langsame Interaktion ein einziger Trace end-to-end ist — nicht vier zusammenhanglose Logs, die du von Hand korrelieren musst.
Überallhin exportieren
plugin-prometheus exponiert GET /metrics; plugin-datadog pusht Metriken, Logs und Traces; plugin-sentry sendet trace-korrelierte Errors; plugin-logship shippt strukturierte Logs zu Better Stack / Axiom / Loki / jedem JSON-Intake.
CLI + DevTools-Inspektion
voltro logs und voltro traces streamen aus dem Terminal; das DevTools-Dashboard zeigt Routes, RPC, Workflows, Schedules, Cache, Logs, Traces und Pro-Plugin-Panels über /_voltro/inspect/*.
Standardmäßig an, per Seam erweiterbar.
Auch Plugins tragen Observability bei
Observability wird nicht am Ende drangeschraubt — sie wird von der Runtime und jedem First-Party-Plugin emittiert, und ein contributeObservability-Seam lässt deine eigenen Plugins Spans und Metriken auf dieselbe Weise ergänzen. Dreh es für Produktion auf OTLP, lass es in Dev auf console, oder lies das In-App-Dashboard so oder so.
Observability spannt sich über die ganze Runtime.
Öffne das Framework. Schau es dir selbst an.
Jede Primitive auf dieser Seite ist heute im Framework. Klone den Starter, lass `voltro dev` laufen, in zwei Minuten ist es auf dem Bildschirm.