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