-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support concurrent file storage extensions #10915
Comments
Bringing this to wider audience @djaglowski @tigrannajaryan |
Actually this was just a shortsighted way to make use of an extension. I was not aware at the time of how extension were typically specified to other components. I think your proposal generally makes sense but I wonder if it is necessary to require that the extension ID be specified. Could the previous behavior be allowed when 1) no extension id is specified on the component, and 2) only one storage extension is configured? I believe this would make this a non-breaking change and therefore be less disruptive to current users. |
On the previous behavior, I am pretty sure we should keep it at least for the intermediate period (to make the change non-breaking)
This was my understanding of what @bogdandrutu was proposing Though I am not sure if we want to deprecate it in favor of explicitly specifying the storage extension ID or we should keep it as alternative way when only one storage extension is defined |
I would be in favour of this. Not only it is backwards compatible, but I think it is also a good user experience to require minimal configuration. When there is only one storage extension enable, and a component needs a storage I think it is reasonable to choose the only available extension without explicit config setting. I don't think there is anything surprising in this behavior. Of course the user is also free to explicitly specify the storage extension to use even if only one is available. |
I think it's a fair point @tigrannajaryan @djaglowski And in case two file storage extensions are available we should fail with a message saying that user must select which one to choose for a given component using |
@pmm-sumo, that sounds correct to me. |
@pmm-sumo sounds good to me. |
Hi folks, I think my question is relevant to this issue, but please let me know if I should rather open a separate issue to discuss this: Question: How can the user disable persistence for a component that uses storage by default (like e.g. Filelog receiver)?
Context: In Przemek's exporterhelper pull request, persistence is not enabled by default, which is consistent with the behavior before this change. If I'm reading the code correctly, persistence is only enabled if the user sets The Filelog receiver is different in that it uses storage by default, as long as there is one configured. I assume in future the Filelog receiver should also provide the I'm just implementing persistence for another component and would like to use configuration that would be consistent across various OpenTelemetry components. |
I think this is the right way. We can use empty string and/or |
Based on additional discussion on (collector)#5784, I'm proposing that we standardize on Przemek's original proposal of requiring explicit configuration to attach a storage extension to another component. This means deprecating the current "autoattach" behavior on the stanza-based receivers. These are still marked as alpha, so a breaking change to configuration is technically allowable. |
A summary of a conversation about this topic in the Collector SIG today is here. |
Is your feature request related to a problem? Please describe.
The contrib has two storage extension implementations - dbstorage and filestorage, for which there are several use cases:
Currently, only one instance of the storage extension can be used, which is limiting the flexibility to have separate config for each of the purposes. The limitation is likely to avoid referencing the storage ID and instead relying on using the only available one (example) without the need to reference it, though it is also somewhat limiting
It was brought during the review of enabling persistent queue capability by default in the collector build. The proposal was to include additional property, where the specific instance could be references, e.g.
Describe the solution you'd like
Deprecate the current automated attachment of file storage extension to filelog receiver andProvide new configuration propertypersistent_storage_enabled
flag of queued_retry.storage
which could be used to specify which file storage extension should be used when more than one is available.The (draft) implementation for enabling persistent queue addresses this change for queued_retry
The text was updated successfully, but these errors were encountered: