Move from a percentile to the slow requests
Use PromQL for service-level trends and TraceQL for the exact spans behind a regression
Send application metrics, logs, traces and profiles over OpenTelemetry. Keep instrumentation portable and let PulsusDB expose the query languages already used by your dashboards and engineers
PulsusDB keeps the collection and query surfaces open. The ClickHouse database handles high-volume storage and analytical execution while the signal-specific query language preserves the workflow your team already knows
Use PromQL for service-level trends and TraceQL for the exact spans behind a regression
Use trace and span identifiers in structured logs to move between a failed request and its application output
Signal-specific schemas, compression codecs and object storage tiering reduce the cost of keeping detailed history
PulsusDB compiles familiar observability queries into efficient database work, pushes filters and aggregation toward the ClickHouse database tier and returns only the result needed by the client
sum(rate(http_server_request_duration_seconds_count{http_response_status_code=~"5.."}[5m]))
/
sum(rate(http_server_request_duration_seconds_count[5m])) Calculate a service error ratio using the same PromQL dashboards already expect
{service_name="checkout",
deployment_environment="production"}
| json
| level="error" Parse structured application logs after the service stream has been resolved
{ resource.service.name = "checkout"
&& status = error }
| by(.service.name) Search failed request paths while retaining service boundaries
Metrics, logs, traces and profiles do not have the same read path. PulsusDB gives each one a purpose-built physical model, then exposes a consistent OpenTelemetry ingest layer and familiar query APIs above it
Explore the architecture →Ordering keys, indexes, codecs and projections follow the dominant query shape for each signal
Scale ingest and query processes independently while durable state remains in the database tier
Compression, materialised rollups and object storage tiering reduce the cost of detailed operational history
Use OpenTelemetry for ingest and PromQL, LogQL or TraceQL for investigation
Start with the workload in front of you, then add the rest of the estate without adding another observability backend