Observability platform in active development

The observability
data platform

One open source platform for logs, metrics, traces and profiles. Ingest with OpenTelemetry, keep PromQL, LogQL and TraceQL, and let PulsusDB turn them into SQL for the ClickHouse® database.

Rust end to end AGPLv3 Built by digitalis.io
query.pipeline live
OPEN TELEMETRY
logs12.8k/s
metrics48.2k/s
traces6.4k/s
profiles1.7k/s
PulsusDB compile + plan
CLICKHOUSE SQL SELECT service, count() FROM log_samples PREWHERE ts BETWEEN … GROUP BY service
query completed42 ms
SPEAKS YOUR STACK
OpenTelemetry PromQL LogQL TraceQL ClickHouse database
One platform built from the query backwards

Observability data is not one shape

PulsusDB brings logs, metrics, traces and profiles into one observability platform without pretending they behave the same. Each signal gets a purpose-built ClickHouse schema, ordering strategy and read path, all behind APIs your tools already understand.

Explore the architecture →
01

Read-path first

Schema and planner decisions begin with the dashboard, search and drilldown queries they must serve.

02

Shard-aware by design

Resolve labels without broadcasting every lookup across every shard.

03

Spend fewer reads

Use time filters, ClickHouse indexes and rollups where the query can stay exact.

04

See the plan

X-Pulsus-Explain: 1 exposes generated SQL, routing and planner stages when you need to know what the query actually did.

One platform for the languages you already use

No new query dialect to learn

Write the queries your team already knows. PulsusDB parses, plans and compiles them for the ClickHouse database.

logs.queryLogQL
{service_name="checkout"} |= "timeout"

Resolve labels first. Word indexes prune indexable terms; substring-only filters scan the selected streams.

generated.sqlCLICKHOUSE
SELECT ts, labels, body
FROM log_samples
PREWHERE ts BETWEEN $start AND $end
AND fingerprint IN (…)
WHERE body LIKE '%timeout%'
ORDER BY ts DESC LIMIT 100
primary key pruned4,096 rows read
Prometheus HTTP API Product-neutral query APIs Optional compatibility endpoints WebSocket live tail
Simple where it should be

Stateless in the middle
ClickHouse database underneath

Run everything in one process, or scale ingestion and query independently. Every durable byte remains in the ClickHouse database.

SHIP
OTel CollectorOTLP + remote write
logsmetricstracesprofiles
TRANSLATE
PulsusDBsingle Rust binary
STATELESS
writerparse + batch
readerquery + plan
modeallwriterreader
STORE
ClickHouse databasedurable state + distributed compute
One binary

Start small with all mode and a single ClickHouse node.

Independent scale

Split writer and reader modes as the workload grows.

No new state tier

Restart and load-balance PulsusDB freely; caches are rebuildable.

An observability platform that meets you where you are

Keep the dashboards
Leave the lock-in

Keep the observability workflows your teams already know. PulsusDB’s product-neutral APIs are always on, with compatibility endpoints for existing datasources and dashboards.

PULSUS_COMPAT_ENDPOINTS=true
Open source. Built in the open.

Follow the work,
shape the platform

PulsusDB is an AGPLv3 digitalis.io product under active development. The architecture, compatibility work and implementation decisions are documented in public.

pulsusdb / main

$ git clone digitalis-io/pulsusdb

Cloning into 'pulsusdb'...

$ cd pulsusdb

$

RUSTAGPL-3.0API REFERENCE ↗