Skip to content

Remove deprecated batcher config and use sending_queue as default #42718

@lahsivjar

Description

@lahsivjar

Component(s)

exporter/elasticsearch

Is your feature request related to a problem? Please describe.

PR #41338 updated the used configuration to migrate to the new QueueBatch configuration and deprecated the batcher configuration. These changes were released in v0.132.0.

The Elasticsearch exporter should start using sending_queue as the default and remove its own internal batching+buffering logic.

Describe the solution you'd like

Remove batcher configuration and default to sending_queue#batch enabled. Choose the default configuration to be as close to the Elasticsearch exporter's internal async buffering as possible. Current defaults are:

  1. Exporter will batch data internally in an async manner and flush the data on maturity as per the defined configuration.
  2. The current default configurations are as follows:
      batcher:
        flush_timeout: 10s # This is not used
        sizer: "items"
        min_size: 5000
      flush:
        bytes: 5MB
        interval: 10s
      num_workers: runtime.NumCPU()
      timeout: 90s # This is defined using confighttp#ClientConfig and is used to define the flush timeout
    

sending_queue configuration closest to the default ES exporter configuration would be something like below:

sending_queue:
  enabled: true
  num_consumers: 10
  wait_for_result: false
  block_on_overflow: true
  sizer: requests
  queue_size: 10 # defined based on the size of the `items` buffered channel in async bulk indexer
  batch:
    flush_timeout: 10s # This is equivalent to flush interval
    min_size: 5e+6
    max_size: ?? (TBD)
    sizer: "bytes"

Note that the sending queue configuration does not use batcher or flush. Infact both these configs conflict with exporterhelper's configuration and cause confusion and maintenance overhead.

Describe alternatives you've considered

Alternatively, we can continue supporting both (ES exporter's internal batching and sending queue). This option creates maintenance overhead and difficulty to adapt the latest deveopments in exporterhelper.

Additional context

No response

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions