Zipkin Integration
Ingest Zipkin spans with zero SDK changes. Correlate traces with infrastructure metrics and logs, derive RED metrics automatically, and get AI-powered latency anomaly detection.
How It Works
Point Your Reporter to TigerOps
Configure your Zipkin reporter (Java, Go, Python, or JS) to send spans to the TigerOps Zipkin-compatible HTTP endpoint. No code changes beyond the reporter URL.
Enable B3 Header Propagation
TigerOps accepts both single-header (B3) and multi-header B3 propagation formats. Existing Zipkin instrumentation works without any modification.
View Service Dependency Maps
TigerOps builds service dependency graphs from Zipkin parent-child span relationships. Identify bottlenecks and high-fan-out services from the first trace.
Correlate with Metrics and Logs
TigerOps links trace IDs in log lines to Zipkin spans and overlays span timelines on metric charts. Full incident context without switching tools.
What You Get Out of the Box
Zipkin HTTP Endpoint Compatibility
TigerOps exposes a Zipkin v2 JSON API endpoint. Point any Zipkin reporter at https://zipkin.ingest.atatus.net/api/v2/spans and spans begin flowing immediately.
B3 Single and Multi-Header Support
Accept both X-B3-TraceId/SpanId multi-header format and the single-header B3 format. Mixed deployments with both formats are handled transparently.
RED Metrics Derivation
Compute Rate, Errors, and Duration metrics per service and operation from Zipkin span data. Use them for SLO dashboards without adding Prometheus instrumentation.
Trace Search & Filtering
Search traces by service name, span name, tag value, duration range, and time window. Drill from a service error alert directly into the offending traces.
Span Annotation Timeline
Zipkin annotations (cs, cr, ss, sr and custom annotations) are rendered on a timeline view alongside infrastructure metrics for precise root cause identification.
AI Latency Baselining
TigerOps learns P99 latency baselines per Zipkin operation. Deviations fire alerts with the specific spans contributing to the latency regression highlighted.
Zipkin Reporter Pointing to TigerOps
Configure your Zipkin reporter in Java, Go, or Node.js to send spans to TigerOps.
# Java (Brave / Spring Cloud Sleuth)
# application.properties:
spring.zipkin.base-url=https://zipkin.ingest.atatus.net
spring.zipkin.enabled=true
spring.sleuth.sampler.probability=1.0
# Add API key header:
spring.zipkin.extra-headers.Authorization=Bearer ${TIGEROPS_API_KEY}
# Go (openzipkin/zipkin-go)
import (
zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http"
)
reporter := zipkinhttp.NewReporter(
"https://zipkin.ingest.atatus.net/api/v2/spans",
zipkinhttp.Header("Authorization", "Bearer "+os.Getenv("TIGEROPS_API_KEY")),
)
# Node.js (zipkin-transport-http)
const { Tracer, ExplicitContext } = require('zipkin')
const { HttpLogger } = require('zipkin-transport-http')
const tracer = new Tracer({
ctxImpl: new ExplicitContext(),
recorder: new BatchRecorder({
logger: new HttpLogger({
endpoint: 'https://zipkin.ingest.atatus.net/api/v2/spans',
headers: { 'Authorization': `Bearer ${process.env.TIGEROPS_API_KEY}` }
})
}),
localServiceName: 'my-service'
})
# Python (py-zipkin)
from py_zipkin.transport import BaseTransportHandler
import requests
class TigerOpsTransport(BaseTransportHandler):
def send(self, encoded_span):
requests.post(
'https://zipkin.ingest.atatus.net/api/v2/spans',
data=encoded_span,
headers={'Authorization': f'Bearer {TIGEROPS_API_KEY}'}
)Common Questions
Does TigerOps support Zipkin v1 (Thrift) spans?
TigerOps natively supports Zipkin v2 JSON format. For Zipkin v1 Thrift spans, use the OpenTelemetry Collector with a zipkin receiver (which handles both v1 and v2) and export to TigerOps via OTLP.
Can I use TigerOps as a Zipkin storage backend?
Yes. TigerOps implements the Zipkin HTTP API, including /api/v2/spans for ingestion and /api/v2/services, /api/v2/spans (GET), and /api/v2/trace/:traceId for the Zipkin UI queries. The Zipkin UI can be pointed at TigerOps directly.
How do I migrate from a self-hosted Zipkin server to TigerOps?
Change the reporter endpoint URL from your Zipkin server address to https://zipkin.ingest.atatus.net. No SDK changes are required. Run both endpoints in parallel during your evaluation period by using a reporter that supports multiple endpoints.
Does TigerOps support Brave (Java Zipkin library) and OpenZipkin SDKs?
Yes. Any SDK that supports the Zipkin v2 HTTP reporter works with TigerOps. This includes Brave (Java), zipkin-go, zipkin-js, py-zipkin, and the OpenZipkin C++ library.
Can TigerOps handle 100% trace sampling from a high-traffic service?
Yes, but we recommend tail-based sampling for high-traffic services. TigerOps supports configurable per-service sampling policies — keep 100% of error traces, 100% of high-latency traces, and a user-defined percentage of normal traces.
Upgrade Your Zipkin Traces to Full Observability
Cross-signal correlation, RED metrics, and AI anomaly detection from your existing Zipkin instrumentation.