Can this break my product?
It is a library, not a gateway, and capture is asynchronous. Nothing is proxied, so
an outage on our side cannot fail your call or add latency to it. Enforcement for
canary and promotion rides a dynamic-config value the SDK polls, with the same
semantics as any feature flag you already run.
What does it do to my call sites?
Nothing. You wrap the client object once at construction. Your call sites, your
types and your error handling are untouched, and uninstalling is deleting the wrap.
How does attribution survive a bundler?
In Python the SDK walks the stack, so you get module:function for free,
and @metergraph.track pins an explicit one. In TypeScript minification
destroys function names, so you wrap with track("stable.name", fn) and put
the name first. Either way route() groups call sites into the product
surface you actually reason about.
Do you see my prompts and completions?
On the self-hosted server, no, and the reason is structural: ingest runs a column
allowlist, so there is no content column for it to land in. The
hosted service captures scrubbed request and response text by default, with
credentials and transport headers removed and a 100 KiB cap per side. Turn it off with
METERGRAPH_CAPTURE_TEXT=0 or a per-route opt-out.
Whose provider keys does shadow replay spend?
Yours, on your own accounts, inside your allow-lists, residency rules and unit-cost
ceilings. The tokens spent on judging and scoring are ours.
I already run OpenTelemetry.
Then point it at us. The server accepts OpenTelemetry spans on
/v1/traces without the SDK, though you give up automatic function
attribution and have to set route names yourself.
How do I get the data back out?
It is your Postgres if you self-host. Eval sets are committed to your repo as code,
and routes, traces and scorecards are queryable over MCP. Switching between self-hosted
and hosted is METERGRAPH_INGEST_URL, in either direction.
What is actually open source?
The capture SDKs on PyPI and npm, plus the server and dashboard, all Apache-2.0.
No account, no token ceiling, no features held back on the tracking layer.