Struct BatchSpanProcessorOptions

Struct Documentation

struct BatchSpanProcessorOptions

Struct to hold batch SpanProcessor options.

This is an aggregate type that supports C++20 designated initializers. Default values are read from environment variables when an instance is created:

  • OTEL_BSP_MAX_QUEUE_SIZE (default: 2048)

  • OTEL_BSP_SCHEDULE_DELAY (default: 5000ms)

  • OTEL_BSP_EXPORT_TIMEOUT (default: 30000ms)

  • OTEL_BSP_MAX_EXPORT_BATCH_SIZE (default: 512)

Usage notes:

  • If you use default initialization (e.g., BatchSpanProcessorOptions opts{}), all fields are set by reading the environment variables (or hardcoded defaults if unset).

  • If you use aggregate initialization with explicit values (positional or designated), those values override the environment variable defaults for the specified fields.

  • With C++20 designated initializers, you can override only specific fields; unspecified fields will use environment variables or hardcoded defaults.

Examples: // All fields use env vars or hardcoded defaults BatchSpanProcessorOptions opts1{};

// C++20: Only max_queue_size overridden, other fields read from env vars/defaults BatchSpanProcessorOptions opts3{.max_queue_size = 100};

Public Members

size_t max_queue_size = batch_span_processor_options_env::GetMaxQueueSizeFromEnv()

The maximum buffer/queue size. After the size is reached, spans are dropped.

std::chrono::milliseconds schedule_delay_millis = batch_span_processor_options_env::GetScheduleDelayFromEnv()
std::chrono::milliseconds export_timeout = batch_span_processor_options_env::GetExportTimeoutFromEnv()

The maximum time allowed to export data. It is not currently used by the SDK and the parameter is ignored. TODO: Implement the parameter in BatchSpanProcessor

size_t max_export_batch_size = batch_span_processor_options_env::GetMaxExportBatchSizeFromEnv()

The maximum batch size of every export. It must be smaller or equal to max_queue_size.