Hello!
I'm integrating Arize into an Elixir application that already uses OpenTelemetry to trace web requests, DB queries, background jobs, and almost everything else.
So I have 2 OpenTelemetry exporters in my app. Which means Arize is getting all of the traces (web, db, ...).
Is there a way to tell Arize to ignore those?? I know I could set up a local collector and use a span filter, but I don't want to spin up a new Docker container for this.
for reference, my config:
resource_attributes = %{
"service.name" => "specialist",
"service.version" => app_version,
"deployment.environment" => env!("MIX_ENV", :string, "dev"),
"model_id" => arize_project_name
}
# Arize headers
arize_headers = [
{"api_key", arize_api_key},
{"space_id", arize_space_key},
{"model_id", arize_project_name}
]
config :opentelemetry,
resource: resource_attributes,
sampler: {:otel_sampler_always_on, %{}},
resource_detectors: [:otel_resource_env_var, :otel_resource_app_env],
text_map_propagators: [:baggage, :trace_context],
processors: [
otel_batch_processor: %{
name: :company_processor,
exporter: {
:opentelemetry_exporter,
%{
protocol: :http_protobuf,
endpoints: [company_endpoint]
}
}
},
otel_batch_processor: %{
name: :arize_processor,
exporter: {
:opentelemetry_exporter,
%{
protocol: :http_protobuf,
endpoints: ["https://otlp.arize.com"],
headers: arize_headers
}
}
}
]