Home
Pricing
Platform Blog About Contact FAQ Partners
Sign in Start free
Distributed Tracing

Follow every request
across every service.

Spans, a latency waterfall, and automatic service maps. Find the slow service in a single request that touched a dozen, then read the log lines that carry the same trace ID without switching tools.

Free tier included No credit card 2-minute setup
Site Qwality logs explorer with timeline and facets

One trace, the whole story.

A single slow request can touch a dozen services before it returns. Distributed tracing follows every hop, records every span, and renders the complete latency waterfall, so you know which service added 580ms and exactly why.

End-to-end request tracing

Follow a single request from the edge through every microservice, database call, and external API. Every hop is captured as a named span.

Latency waterfall view

The waterfall timeline shows every span in order, with start time and duration drawn to scale against the whole request, so the slow hop stands out.

Automatic service maps

Service dependency graphs are inferred from trace data, with no configuration required. See which of your instrumented services call which, and how often those calls fail.

Trace search and filtering

Filter by service, operation name, duration range and status, match exact span attribute values, or search the text of attribute values, to find the request you are after across thousands of traces.

OpenTelemetry native

Accepts traces over OTLP/HTTP, in protobuf or JSON, so any OTel-instrumented application can point its exporter at Site Qwality with no SDK changes.

Correlate with logs

Log lines that carry a trace ID are listed under that trace, so the context for a slow request sits right below its waterfall.

Find the bottleneck

Stop guessing which service
is the slow one.

The latency waterfall makes it obvious. Each span shows its own contribution to total request time. Scroll to the widest bar and that's your bottleneck. Drill into the span for its attributes and events, and see the child spans it spawned nested beneath it.

  • Every span drawn to scale against the whole request
  • Span attributes expose DB query text, HTTP target, and custom metadata
  • P50 / P95 / P99 trace latency and error counts charted over time
app.siteqwality.com / traces / GET-product
GET /product/:id · trace HealthyLIVE
TOTAL DURATION394ms
SPANS8
SLOWEST SPAN320ms
router12ms
auth-middleware18ms
product-svc24ms
cache-check9ms
db-query320ms
OTel in minutes

Already instrumented?
You're already done.

Site Qwality speaks OTLP natively. If your services already export OpenTelemetry traces (with the OTel SDK, auto-instrumentation, or an agent), set a few environment variables and traces start arriving. No proprietary SDK, no vendor lock-in.

  • OTLP/HTTP, protobuf or JSON
  • Works with any OTel SDK that exports over HTTP: Go, Java, Python, Node.js, .NET, Ruby
  • Bring your existing instrumentation: no code changes needed
configure OTLP exporter# Set in your service environment
OTEL_SERVICE_NAME=payment-service
OTEL_TRACES_EXPORTER=otlp
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://traces.siteqwality.com/v1/traces
OTEL_EXPORTER_OTLP_TRACES_HEADERS="Authorization=YOUR_API_KEY"
OTEL_METRICS_EXPORTER=none
OTEL_LOGS_EXPORTER=none
# Restart your service; traces show up within a minute
14

spans captured per typical checkout request

30d

longest trace retention we sell today

0

proprietary agents: standard OTLP only

$0

free tier, no credit card needed to start

FAQ

Point your OpenTelemetry exporter at https://traces.siteqwality.com/v1/traces over OTLP/HTTP and send your API key in the Authorization header. Restart your service and traces show up within a minute. No proprietary SDK required.

Any OpenTelemetry SDK that can export OTLP over HTTP, in protobuf or JSON: Go, Java, Python, Node.js, .NET, Ruby, PHP, and more. Auto-instrumentation libraries handle most frameworks without code changes. If your SDK defaults to gRPC, set its protocol to http/protobuf.

Yes. Add the trace ID to your log entries as a trace_id field (many logging libraries can read it from the active OpenTelemetry context) and the trace view lists the matching log lines, with the span ID when your logs carry one.

The service dependency graph is automatically derived from span parent-child relationships in your trace data. No manual topology definition is required. It draws a link wherever a span in one instrumented service calls a span in another, so it reflects your actual traffic.

3 days on the free tier, 15 days on the 50 GB telemetry pack, and 30 days on the 200 GB and 1 TB packs. The same window covers your logs and metrics. High-volume services can use head-based or tail-based sampling in the SDK or an OpenTelemetry Collector to keep volume down.

For OpenTelemetry traces, yes: any OTLP/HTTP exporter works, and traces share a telemetry pack with logs and metrics. Datadog APM lists at $31 per host a month billed annually with Infrastructure attached, and sits inside a much larger product that also covers hosts, containers and Kubernetes, which we do not. The Datadog alternative page lays out both with dated prices.

Start free. No credit card.

Uptime, cron, synthetic, logs, RUM, incidents, and status pages. Free tier on every product.