Customize Auto Instrumentation

When the register_otel function does not offer enough customization for your needs, you can use the opentelemetry_sdk to control how you send traces.

Here is an example of all of the different customizations we offer using opentelemetry.

  • Set the authentication for sending data to Arize using environment variables

  • Set the model ID and model version as resource attributes

  • Add multiple locations for exporting data, including the console.

Below is some sample python code below on setting up the auto instrumentation before starting the OpenAI auto instrumentor.

import os

# Import open-telemetry dependencies
from opentelemetry import trace as trace_api
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk import trace as trace_sdk
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
from opentelemetry.sdk.resources import Resource

# Import the automatic instrumentor from OpenInference
from openinference.instrumentation.openai import OpenAIInstrumentor

# Set the Space and API keys as headers for authentication
headers = f"space_key={ARIZE_SPACE_KEY},api_key={ARIZE_API_KEY}"

# Set resource attributes for the name and version for your application
resource = Resource(
        "model_id":"openai-llm-tracing", # Set this to any name you'd like for your app
        "model_version":"1.0", # Set this to a version number string

# Define the desired endpoint URL to send traces
endpoint = ""

# Set the tracer provider
tracer_provider = trace_sdk.TracerProvider(resource=resource)

# Finish automatic instrumentation

Last updated

Copyright © 2023 Arize AI, Inc