Your logs and traces. On your own box.
When something breaks, the answer is already in your telemetry. Bilis gets you from “something is wrong” to the exact log line — or the exact span — that explains it, in seconds, on hardware you own, with no per-gigabyte bill for the privilege. And it is only the start: Bilis is growing into a self-hosted observability stack where AI reads alongside you, spotting what matters and helping you fix it.
- INFO billing Invoice finalized for team acme-inc (amount: 4900)
- DEBUG api Cache miss for plan:pro — reading from SQLite
- INFO api POST /v1/subscriptions 201 in 91ms
- INFO worker Job "export-csv" restarted after OOM kill
- FATAL worker Out of memory processing job "export-csv" (2048MB limit)
- TRACE worker Heartbeat ok, queue depth 0
- INFO api GET /v1/logs?window=1h 200 in 142ms
- DEBUG auth Session refreshed for user 4821
- INFO worker Processed 1 job in 8ms (queue: default)
- ERROR api POST /v1/checkout 500: Undefined array key "currency"
- INFO ingest Accepted 247 log records for project acme-web
- WARN ingest Batch contained 3 malformed records, skipped
See the whole request.
Then find the line that explains it.
One trace id joins the waterfall and the stream. The investigation stays in one place, and each view is one click from the other.
Traces
Where the request spent its time
Every span in order, durations to scale, services separated, and the failure marked. Select a span to inspect its attributes or jump straight to its logs.
Logs
What the code said about it
Search every line, narrow by time, project, service or severity, and leave a live tail open while the deploy goes out. Every search is a URL you can share.
Works with the stack you already run.
If your tooling speaks OpenTelemetry — and most already does — sending logs and traces to Bilis is a configuration change, not a project. No agents to deploy, no SDK to adopt, nothing to rewrite.
Plain JSON covers everything else. Existing Sentry SDKs can report straight to Bilis too.
{"accepted":1,"skipped":0}
Ingest never blames the client: malformed records are skipped with a count rather than failing the batch. Writes are queued asynchronously, so a success means accepted, not yet durable.
Your coding agent counts too
Claude Code speaks OpenTelemetry out of the box. A few lines of configuration put every prompt, tool call, token and dollar it spends beside the application it is editing — no plugin, nothing in between.
Point Claude Code at Bilis →One key, one project
Revocable in a click, and useless for anything but writing telemetry to that project. Access stays under your thumb.
Keep the data.
Lose the telemetry tax.
Bilis is built for the team that owns the box, reads its own incidents, and does not want observability to become another platform to operate.
- Your data never leaves the building
- You own the box, so you own the logs — all of them, for as long as your disk allows. Retention costs storage you already pay for, not a metered bill that punishes a noisy deploy.
- Small enough to run yourself
- One app and one database is the entire deployment — a stack you can hold in your head, deploy in an afternoon, and keep healthy without a platform team.
- Open, so you're never stuck
- Standard OpenTelemetry in, standard tables underneath. Your scripts, queries and AI tools work on the data today, and walking away is a SELECT, not a migration. The code is public.
Logs. Traces.
Then software that acts.
Bilis keeps two signals on your box today, linked so each explains the other. The direction is metrics and AI that helps fix what the signals reveal. Self-hosting stays first-class through all of it.
In the product today
- OTLP, plain JSON, and Sentry-compatible ingest
- Fast full-text search across every log body
- Distributed traces drawn as a span waterfall
- Logs and traces linked in both directions
- Live tail, teams, projects, and revocable keys
- Open, portable telemetry tables
Where it is heading
- Metrics on the same box and open standards
- Alerting, so the stack tells you when to look
- Dashboards and saved searches
- AI that spots, explains, and helps fix errors
eBPF collection, S3 tiering, and replication stay a bigger platform's job.
Bilis is early.
The product is not hypothetical.
Run it on your own box today, or sign up on bilis.app — the Free plan has published limits and no card. Self-hosting stays the first-class way to use Bilis. See pricing.
The whole thing is open on GitHub, so you can read exactly what it does with your telemetry before you point anything at it.