Back to Documentation
Developer Specs · Observability

OTLP & Observability Integration

Standard OTLP/HTTP JSON and Protobuf trace contracts allow seamless integration with your existing Grafana, Datadog, Honeycomb, and Jaeger monitoring stacks.

Unified Distributed Trace Tree

Native gateway spans and client OTLP spans are reconciled into a single distributed trace tree.

Standard Ingest & Export

Full support for standard OTLP/HTTP JSON and Protobuf export by trace, prompt ID, or workspace.

APM Ecosystem Native Integration

Directly integrate with Grafana Tempo, Datadog, Honeycomb, and Jaeger without custom adapters.

Semantic Conventions

OpenTelemetry GenAI Semantic Attributes

Standardized trace span attributes automatically injected on every BatchIn inference call.

AttributeTypeExampleDescription
gen_ai.systemstring"batchin"Identifies the AI gateway system
gen_ai.request.modelstring"deepseek-ai/DeepSeek-V4-Pro"Target model identifier requested
gen_ai.usage.prompt_tokensint412Number of input tokens consumed
gen_ai.usage.completion_tokensint185Number of completion tokens generated
gen_ai.response.latency_msfloat624.5Total gateway turnaround latency (ms)
gen_ai.response.ttft_msfloat92.0Time to first token generation (ms)
gen_ai.vaas.record_idstring"rec_98bf12"Cryptographic VaaS audit record ID
gen_ai.vaas.merkle_rootstring"0x3a4f...e109"Base L2 Merkle tree batch commitment root
gen_ai.agent.run_idstring"run_prod_agent_77"Autonomous agent multi-step run ID
gen_ai.agent.step_idstring"step_tool_fallback_03"Step identifier within the agent loop
Production Blueprint

OpenTelemetry Collector Configuration

Copy-pasteable configuration for forwarding BatchIn traces to Grafana Tempo and Datadog.

OTLP gRPC: 4317 | HTTP: 4318
# otel-collector-config.yaml
# Production OpenTelemetry Collector for BatchIn Inference Gateway

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

processors:
  batch:
    timeout: 1s
    send_batch_size: 256
  memory_limiter:
    check_interval: 1s
    limit_percentage: 80
    spike_limit_percentage: 20

exporters:
  # 1. Export to Grafana Tempo / Honeycomb
  otlp/tempo:
    endpoint: tempo.internal:4317
    tls:
      insecure: true

  # 2. Export to Datadog LLM Observability
  datadog:
    api:
      key: "${DD_API_KEY}"
      site: datadoghq.com

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [otlp/tempo, datadog]