-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Introduce new flags for Jaeger OTEL components #2246
Comments
The deprecated flags would be removed later in the future e.g. |
Agree with the approach. Although, as migration from existing Jaeger components to the OTelCollector based components may not happen immediately, we probably will need to leave them in for longer than a couple of minor releases. Would it also be possible to have use of deprecated flags reported as a warning? To act as a reminder to update. |
Yes, that would be ideal. Viper exposes |
Since the new flags won't satisfy the drop-in replacement requirement, do we even need them? As I understand the real OTEL collector doesn't support flags, only config file. Could we just go with their approach as well? |
This might be controversial since we provide the default configuration the flags make it easy to run without the config file. For instance in agent use case just specify the reporter's endpoint. If we eventually remove all flags and still use the default configuration users will have to provide the config file but just fill in the important parts and not the full pipeline e.g.: exporters:
jaeger:
endpoint: jaeger:14250 |
I think OTEL also provides the notion of default configuration. So it's really the question of overriding just very small portions, like a single address. I don't have a strong opinion. It seems that config-only approach is pretty common, e.g. Prometheus also uses it afaik, not just OTC. But then both OTC and Prometheus are just single binaries, whereas Jaeger components need to be connected together, which is harder with configs (e.g. how to bring the full stack in docker-compose?) |
Could you provide more details? I don't think there is a default configuration in the sense that OTEL will use a set of components if the config is not provided. |
Basing it purely on remembering seeing functions like "getDefaultConfig". You may be right that the selection of components is not defaulted. |
What is preventing it from being a drop-in replacement? |
Here are some docs https://www.jaegertracing.io/docs/1.18/opentelemetry/#compatibility |
This? If so, then the flags people are currently using should just work with the new components (except for health check port), right? That's pretty minor, IMO. |
Correct, although it's worth documenting all the changes and then compile that to a migration guide. Also not all flags are supported in the OTEL build. |
At the moment Jaeger OTEL collector exposes legacy Jaeger flags. This was a priority to make migration as easy as possible (almost drop-in replacement). However in the context of the OTEL collector these flags are hard to understand because they are not properly scoped under appropriate OTEL components (receiver, exporter etc.).
Therefore I propose to keep legacy flags as deprecated and introduce a set of new flags that will be better aligned with OTEL components. For instance, Jaeger receiver flags could have prefix
--recevier.jaeger
and exporter--exporter.jaeger
. We can discuss other naming conventions.Current set of flags exposed by Jaeger OTEL components
Jaeger exporter flags and receiver for sampling strategies(to retrieve sampling strategies from remote collector):
Jaeger receiver flags:
Attribute processor tags:
Other flags:
cc) @jaegertracing/jaeger-maintainers
The text was updated successfully, but these errors were encountered: