How does Tracing Work?
Last updated
Last updated
Copyright © 2023 Arize AI, Inc
There are four key components within tracing - Instrumentation, Exporter, Protocol, and Collector. We've built all four of these within our tracing tool so it is easy to start troubleshooting your application and surfacing issues.
In order for an application to emit traces for analysis, the application must be instrumented. Your application can be manually or automatically instrumented.
Many of our auto-instrumentation plugins will collect spans for you with just a few lines of code. All of these instrumentors are managed via a single repository called OpenInference.
We support a simplified register OTEL code that sets up tracig automatically:
The above code sets up your span processors, exporters and endpoints automatically.
If you would like more control over the OTEL instrumentation the full boiler plate is here:
There are 2 main span processors:
Batch Processor - Used for product deployments, this is non-blocking for your application. We default to batch for register otel
SimpleSpanProcessor - This is a synchronous logging instrumentation where the log call is blocking, delays in collector will back up into your application. Used for debugging setups
An exporter takes the spans created via instrumentation and exports them to a collector. In simple terms, it just sends the data to Arize.
The exporter used for Arize is the GRPC exporter.
OpenTelemetetry Protocol (or OTLP for short) is the means by which traces arrive from your application to the Arize collector. Arize currently supports OTLP over GRPC.
The Arize server is a collector and a UI that helps you troubleshoot your application in real time. Arize receives your logs and visualizes them on our dashboard. We use many technologies under the hood to ensure we can support millions of traces and return you aggregations and insights on your data.