-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
Component(s)
extension/storage, extension/storage/filestorage, receiver/filelog
Is your feature request related to a problem? Please describe.
Currently, the collector operates in a stateless mode by default, with stateful components storing offsets in memory. However, stateful components should persist their state during shutdown if a storage extension is available.
At present, enabling stateful behavior involves a somewhat lengthy process:
- Adding a
filestorage
entry to theextensions
stanza in the configuration. - Including
filestorage
underservice::extensions
. - Ensuring that the storage directory exists.
- Adding
storage: file_storage/xyz
to individual components.
It would be beneficial to simplify this process by introducing a feature gate or a single configuration option. With this approach, users could enable stateful mode with a single setting, and the necessary steps would be handled automatically, achieving the same effect as the manual steps described.
Describe the solution you'd like
Here’s one way to tackle the enhancement:
- Introduce a new configuration provider that provides us with a default
filestorage
extension.- We might also consider including some commonly used extensions, such as
healtcheck
,pprof
,memorylimitter
, etc.
- We might also consider including some commonly used extensions, such as
- Inject this new configuration.
- Enable stateful receivers to automatically utilize the storage extension when the feature flag is turned on.
This is a high-level overview, and I expect it will require multiple pull requests to implement.
Describe alternatives you've considered
Please share if you have any thoughts!
Additional context
My solution would require open-telemetry/opentelemetry-collector#11046 to be merged or a similar workaround to be implemented to combine lists in config.