Performance Tuning

Optimization for observability infrastructure.


Collector Tuning

Batch Processor

1
2
3
4
5
processors:
  batch:
    timeout: 1s
    send_batch_size: 1024
    send_batch_max_size: 2048

Memory Limiter

1
2
3
4
5
processors:
  memory_limiter:
    check_interval: 1s
    limit_mib: 512
    spike_limit_mib: 128

Sampling Strategies

Head Sampling

1
2
3
from opentelemetry.sdk.trace.sampling import TraceIdRatioBased

sampler = TraceIdRatioBased(0.1)  # 10% sampling

Tail Sampling (Collector)

1
2
3
4
5
6
7
8
9
10
processors:
  tail_sampling:
    decision_wait: 10s
    policies:
      - name: errors
        type: status_code
        status_code: {status_codes: [ERROR]}
      - name: slow
        type: latency
        latency: {threshold_ms: 1000}

Cardinality Control

Attribute Cardinality Action
sea.domain Low ✅ Keep
sea.concept Medium ✅ Keep
user.id High ❌ Remove
order.id High ⚠️ Traces only

Resource Allocation

Component CPU Memory
OTel Collector 0.5 512Mi
OpenObserve 2.0 4Gi

Last Updated: January 2026