objstore
objstore copied to clipboard
Add separate modules for metrics and tracing wrappers
The specific libraries and mechanisms used for metrics and tracing can be quite opinionated and a library meant as an abstraction for object storage providers should not force a dependency of one or the other system onto downstream users. As such I think that the:
- prometheus wrapper (already exists)
- opentracing wrapper (already exists)
- opentelemetry wrapper (does not exist yet)
Should be served by separate modules.
Agree, there is a simpler idea, though: Just abstract away the metrics and opentracing as much as possible - but maybe overkill.
OpenTracing has been deprecated for nearly a year; why wouldn't you just switch to OpenTelemetry? Adding abstractions over abstractions seems like an antipattern to me.
There is a bridge for anyone who needs OpenTracing.
I agree I wouldn’t want yet another abstraction, but for me it was important people choose to adopt the dependency, not us force it onto people.
Maybe if you include "no dependency" as an option that becomes clearer? I.e. the abstraction would include a no-op tracer.
I'm not exactly sure what you're proposing.