Skip to main content

TraceConfig

The TraceConfig object allows you to configure trace behavior programmatically in your application code. This provides an alternative to setting environment variables and allows for dynamic configuration.

Overview

TraceConfig helps you modify the observability level of your tracing. You can:
  • Keep sensitive information from being logged for security reasons
  • Limit the size of base64 encoded images to reduce payload size
  • Control which parts of your LLM interactions are traced

Precedence Order

Configuration values are resolved in the following order:
  1. Values set in the TraceConfig object in code (highest priority)
  2. Environment variables
  3. Default values (lowest priority)

Python

Import

from openinference.instrumentation import TraceConfig

Usage

Create a TraceConfig instance and pass it to your instrumentor’s instrument() method:
from openinference.instrumentation import TraceConfig
from openinference.instrumentation.openai import OpenAIInstrumentor

config = TraceConfig(
    hide_llm_invocation_parameters=True,
    hide_inputs=False,
    hide_outputs=False,
    hide_input_messages=False,
    hide_output_messages=False,
    hide_input_images=True,
    hide_input_text=False,
    hide_output_text=False,
    hide_embeddings_vectors=False,
    hide_embeddings_text=False,
    base64_image_max_length=16000,
    hide_prompts=False,
    hide_choices=False,
)

OpenAIInstrumentor().instrument(
    tracer_provider=tracer_provider,
    config=config,
)

Parameters

ParameterTypeDefaultDescription
hide_llm_invocation_parametersboolFalseHides LLM invocation parameters
hide_inputsboolFalseHides input.value and all input messages
hide_outputsboolFalseHides output.value and all output messages
hide_input_messagesboolFalseHides all input messages (independent of HIDE_INPUTS)
hide_output_messagesboolFalseHides all output messages (independent of HIDE_OUTPUTS)
hide_input_imagesboolFalseHides images from input messages
hide_input_textboolFalseHides text from input messages
hide_output_textboolFalseHides text from output messages
hide_embedding_vectorsboolFalseDeprecated: Use hide_embeddings_vectors instead
hide_embeddings_vectorsboolFalseReplaces embedding vectors with "__REDACTED__"
hide_embeddings_textboolFalseReplaces embedding text with "__REDACTED__"
hide_promptsboolFalseHides LLM prompts (completions API)
hide_choicesboolFalseHides LLM choices (completions API outputs)
base64_image_max_lengthint32000Limits characters of a base64 encoding of an image

Example: Hiding Sensitive Data

# Hide all PII but keep structure visible
config = TraceConfig(
    hide_input_text=True,
    hide_output_text=True,
    hide_embeddings_text=True,
)

JavaScript

Import

import { OpenAIInstrumentation } from "@arizeai/openinference-instrumentation-openai"

Usage

Create a trace config object and pass it to your instrumentation constructor:
import { OpenAIInstrumentation } from "@arizeai/openinference-instrumentation-openai"

const traceConfig = {
  hideInputs: true,
  hideOutputs: false,
  hideInputImages: true,
  base64ImageMaxLength: 16000,
}

const instrumentation = new OpenAIInstrumentation({ traceConfig })

Parameters

ParameterTypeDefaultDescription
hideInputsbooleanfalseHides input.value and all input messages
hideOutputsbooleanfalseHides output.value and all output messages
hideInputMessagesbooleanfalseHides all input messages
hideOutputMessagesbooleanfalseHides all output messages
hideInputImagesbooleanfalseHides images from input messages
hideInputTextbooleanfalseHides text from input messages
hideOutputTextbooleanfalseHides text from output messages
hideEmbeddingVectorsbooleanfalseReplaces embedding vectors with "__REDACTED__"
hidePromptsbooleanfalseHides LLM prompts
base64ImageMaxLengthnumber32000Limits characters of a base64 encoding of an image

Example: Partial Configuration

// Only specify what you want to override
// Everything else falls back to environment variables, then defaults
const traceConfig = { hideInputs: true }

const instrumentation = new OpenAIInstrumentation({ traceConfig })

Java

Import

import com.arize.instrumentation.TraceConfig;

Usage

Use the builder pattern to create a TraceConfig instance:
import com.arize.instrumentation.TraceConfig;

TraceConfig config = TraceConfig.builder()
    .hideInputs(true)
    .hideOutputs(false)
    .hideInputImages(true)
    .hideInputText(false)
    .hideOutputText(false)
    .hideInputEmbeddings(false)
    .hideOutputEmbeddings(false)
    .hidePromptTemplate(false)
    .hidePromptTemplateVariables(false)
    .hideToolParameters(false)
    .base64ImageMaxLength("16000")
    .build();

Parameters

ParameterTypeDefaultDescription
hideInputsbooleanfalseHides input values
hideOutputsbooleanfalseHides output values
hideInputMessagesbooleanfalseHides all input messages
hideOutputMessagesbooleanfalseHides all output messages
hideInputImagesbooleanfalseHides images from input messages
hideOutputImagesbooleanfalseHides images from output messages
hideInputTextbooleanfalseHides text from input messages
hideOutputTextbooleanfalseHides text from output messages
hideInputAudiobooleanfalseHides audio from input messages
hideOutputAudiobooleanfalseHides audio from output messages
hideInputEmbeddingsbooleanfalseHides input embeddings
hideOutputEmbeddingsbooleanfalseHides output embeddings
hidePromptTemplatebooleanfalseHides prompt templates
hidePromptTemplateVariablesbooleanfalseHides prompt template variables
hidePromptTemplateVersionbooleanfalseHides prompt template version
hideToolParametersbooleanfalseHides tool parameters
base64ImageMaxLengthString"unlimited"Limits characters of a base64 encoding of an image

Example: Default Configuration

// Use all defaults
TraceConfig config = TraceConfig.getDefault();

Redacted Content

When content is hidden due to privacy configuration settings, the value "__REDACTED__" is used as a placeholder across all languages. This constant value allows consumers of the trace data to identify that content was intentionally hidden rather than missing or empty.

Next Steps

Build docs developers (and LLMs) love