Skip to main content
AgentVista accepts standard OTLP/HTTP for traces, metrics, and logs. If a service is already instrumented with OpenTelemetry, you can point it at AgentVista without writing any AgentVista-specific code.
AI agent spans recorded with the AgentVista SDK and infrastructure spans sent over OTLP appear together in a single unified trace. This is the core value of the platform: one view of what your agents and your infrastructure did during the same request.

Endpoints

SignalMethodURL
TracesPOSThttps://api.agentvista.dev/api/v1/otlp/v1/traces
MetricsPOSThttps://api.agentvista.dev/api/v1/otlp/v1/metrics
LogsPOSThttps://api.agentvista.dev/api/v1/otlp/v1/logs
All endpoints require an Authorization: Bearer av_... header. The service.name resource attribute on each incoming payload is used to identify the service or agent in the AgentVista UI. Set it to a meaningful name so your services appear correctly in the service map and trace views.

Configuration

Configure the OTLP exporter to point at AgentVista when you set up your tracer provider:
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.resources import Resource

resource = Resource.create({"service.name": "payments-api"})

exporter = OTLPSpanExporter(
    endpoint="https://api.agentvista.dev/api/v1",
    headers={"Authorization": "Bearer av_xxxxx"},
)

provider = TracerProvider(resource=resource)
provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(provider)
From this point, any span created via trace.get_tracer(__name__) is automatically exported to AgentVista. No other changes to your service are needed.For metrics, use OTLPMetricExporter from opentelemetry.exporter.otlp.proto.http.metric_exporter with the same endpoint and headers. For logs, use OTLPLogExporter from opentelemetry.exporter.otlp.proto.http._log_exporter.

Correlating agents with infrastructure

When both the AgentVista SDK and OTLP data flow into the platform, traces can span your entire stack in a single waterfall view — from the user request through the agent orchestrator, through every LLM call, all the way down to the database query that determined the result.
Once you have both sources flowing, open any agent trace in the AgentVista dashboard and look for the correlated infrastructure spans. You can follow a slow agent run directly to the downstream service or database query that caused it — without switching tools or correlating timestamps by hand.

How correlation works

The AgentVista SDK injects a W3C traceparent header on outbound requests via agentvista.inject_traceparent(headers). Any downstream service instrumented with standard OpenTelemetry will automatically propagate this header and include it in the spans it exports. When those OTLP spans arrive at AgentVista they are stitched into the same trace by trace_id.
import httpx
import agentvista

with agentvista.run("order-processor") as r:
    # Propagate the trace into the downstream payments service
    headers = {}
    agentvista.inject_traceparent(headers)

    response = httpx.post(
        "https://payments-api/charge",
        headers=headers,
        json={"amount": 99.00},
    )
    r.set_outcome(success=response.status_code == 200)
If the payments-api is instrumented with the OpenTelemetry Python SDK (or any OTel-compatible library), its spans automatically appear as children of the order-processor trace in AgentVista — no additional configuration needed.