elastic / elastic/elastic-agent
[elastic-agent] Allow runtime specific Fleet configuration overrides
- Dominant language
- Go
- Stars
- 275
- Forks
- 264
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 312
Description
- Relates https://github.com/elastic/elastic-agent/pull/11524
Our use case for Fleet configuration overrides needs to be able to inject rate limits via an OTel collector processor. However, not all inputs inputs support the otel runtime and when this processor is unconditionally injected in a configuration that uses the process runtime for example with:
```yaml
outputs:
es-default-output-internal:
type: elasticsearch
ssl:
verification_mode: none
processors:
- ratelimiter/agentless
agent:
monitoring:
enabled: true
http:
enabled: true
host: 0.0.0.0
port: ${AGENT_MONITORING_PORT}
logging:
level: info
to_stderr: true
providers:
initial_default: false
fleet:
enabled: true
providers:
local:
enabled: true
processors:
ratelimiter/agentless:
burst: 300
rate: 300
strategy: records
throttle_behavior: delay
```
The result is the following error because the processor is defined but never associated with a pipeline.
```
invalid configuration: no receiver configuration specified in config; service::pipelines: service must have at least one pipeline
```
We need a way to make application of a runtime specific override easy to do.
Contributor guide
Research direction
Start by reading the related pull request 11524 and reproducing the configuration shown in the issue. Trace how the Fleet override reaches the process runtime and verify a runtime-specific override can avoid applying incompatible processors while still producing a valid pipeline configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- devops, observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100