Boson

Blog

Metrics without an SDK

If you own the request path, latency and status codes are already there. Instrumenting every app is optional — owning :443 is not.

The SDK tax

Application performance monitoring usually starts with a library. Add OpenTelemetry, wrap handlers, ship spans, pray sampling is sane. It works — until you have five languages, a legacy PHP app, and a weekend deploy that forgot the middleware.

The deeper issue is philosophical: you are reconstructing the request path from inside the process. The process is the least reliable narrator. It crashes. It gets OOM-killed. It never sees the TLS handshake that failed at the edge.

Own the edge instead

Platforms like Vercel get “free” observability because traffic already flows through infrastructure they operate. Route, status, and timing fall out of the edge, not from a vendor SDK in your repo.

Boson applies the same idea to a VPS you own. The gateway keeps 80 and 443. App containers stay unpublished on the host network path that matters. Every successful and failed request that hits the edge is visible in access logs before it becomes an application concern.

What we keep vs what we discard

Raw log rows are noisy and expensive. The interesting product is aggregation close to the source: per-route latency percentiles, status classes, error bursts — rolled up on the box, then retained in ClickHouse for the window your plan allows.

That means you can answer “is /checkout slow?” without wiring a tracer into the checkout service on day one. When you do want deep spans later, you still can. The gateway metrics are the floor, not the ceiling.

Why unpublished containers matter

If every app publishes its own host port, you recreate the PaaS problem badly: port collisions, ad-hoc TLS, and a request path that bypasses the thing that was supposed to observe it.

Keeping containers off the public edge forces a single front door. That front door is also your metrics source. Deploy and observe stop being two separate products glued together with hope.

Honest limits

Gateway metrics will not replace profiling. They will not tell you which SQL query locked a table. They will tell you that p95 on /api/orders jumped after the last deploy — which is usually the question you needed at 2 a.m.

They also assume the gateway is correctly in the path. Misconfigure DNS or publish the app port publicly “just for a minute,” and you have quietly opted out of the model.

The Boson bet

We would rather make the boring request path correct than ask every application to become observant. The agent gets you onto the machine. The gateway makes the machine behave like a platform at the edge.

Metrics without an SDK is not a slogan. It is what happens when deploy and the request path share ownership — even when the hardware stays yours.