jaegertracing / jaeger

CNCF Jaeger, a Distributed Tracing Platform
https://www.jaegertracing.io/
Apache License 2.0
20.41k stars 2.44k forks source link

[jaeger-v2] Rethink components configuration to align with OTEL #5229

Closed yurishkuro closed 1 week ago

yurishkuro commented 8 months ago

Right now several PRs that are trying to add support for standard storage backends to v2 are reusing the same configuration for storage as we had in v1. Now is a good time to rethink that configuration, in particular:

Scope

Tasks / outcomes

For each of the above components, we need to ensure

How to work on this meta-issue

mahadzaryab1 commented 2 months ago

@yurishkuro What is the status of this issue? Is there anything I can help with?

yurishkuro commented 2 months ago

yes, plenty. I just updated the description.

mahadzaryab1 commented 2 months ago

@yurishkuro are the configs for v1 supposed to be in plugin/storage/*/options.go and the configs for v2 supposed to be in pkg/*/config.go?

yurishkuro commented 2 months ago

yes, that's accurate

mahadzaryab1 commented 2 months ago

@yurishkuro how come some stores still have the v2 configuration living in plugin/storage/*? do we want to move those over?

yurishkuro commented 2 months ago

We are in the transition period. Moving them doesn't solve anything, having configs side by side is actually convenient. The long term goal is to only have v2 configurations.

Wwe started v2 by just wrapping v1 configs. For some backends we did preliminary work of cleaning up and making v2 the "primary" config, i.e. the Factory uses v2 config directly, but v1 config still drives the v1 cli flags and can be transformed into v2. We could continue using this pattern. The reason we want v2 configs to be primary is to ensure that all their settings are actually used by the storage implementation - there's less guarantee of that if v1 is primary and v2 is translated into v1.

But overall this ticket is about what v2 config look like, rather than where they are located.

mahadzaryab1 commented 2 months ago

@yurishkuro sounds good! and where should the migration doc be created? is any public google doc fine? Or do we want to have them in a README in this repo?

yurishkuro commented 2 months ago

yes a google doc is fine

mahadzaryab1 commented 2 months ago

@yurishkuro PR for memory storage component at https://github.com/jaegertracing/jaeger/pull/5925

mahadzaryab1 commented 2 months ago

@yurishkuro PR for badger storage component at https://github.com/jaegertracing/jaeger/pull/5927

mahadzaryab1 commented 1 month ago

@yurishkuro PR for Cassandra component ready for review at https://github.com/jaegertracing/jaeger/pull/5949.

mahadzaryab1 commented 1 month ago

@yurishkuro PR for Query Service ready for review at https://github.com/jaegertracing/jaeger/pull/5998

mahadzaryab1 commented 1 month ago

@yurishkuro we can link the following PRs to the issue description for badger:

mahadzaryab1 commented 1 month ago

@yurishkuro what is the Collector-specific config checklist item referring to?

yurishkuro commented 1 month ago

what is the Collector-specific config checklist item referring to?

if you run SPAN_STORAGE_TYPE=memory go run ./cmd/collector help there are a bunch of collector-specific flags printed that are not related to storage but to the collector itself. Most of them are related to http/grpc endpoints, but some could control the overall collector's behavior. Ideally we need to create a gdoc mapping all these flags to the corresponding OTEL config locations and if any are not supported decide what to do about them.

mahadzaryab1 commented 1 month ago

what is the Collector-specific config checklist item referring to?

if you run SPAN_STORAGE_TYPE=memory go run ./cmd/collector help there are a bunch of collector-specific flags printed that are not related to storage but to the collector itself. Most of them are related to http/grpc endpoints, but some could control the overall collector's behavior. Ideally we need to create a gdoc mapping all these flags to the corresponding OTEL config locations and if any are not supported decide what to do about them.

@yurishkuro Got it! So for this part we just need to create a migration guide? No code changes?

yurishkuro commented 1 month ago

Perhaps, depends on what the comparison would show.

mahadzaryab1 commented 1 month ago

@yurishkuro Thanks! Would you also be able to help me understand how to solve Utilize env var defaults one OTEL supports them in 0.110 ? How do we determine which things need to be defaulted? As well, where do these defaults needs to be utilized? Is it just in the docker compose setups?

yurishkuro commented 1 month ago

We had a number of nasty workarounds because we couldn't use defaults. For instance, Kafka e2e test needs to physically rewrite the config because we can't just have a var for encoding without default (it makes the config invalid by default). I think it's sufficient to just fix that to close the item, since we can add more vars/defaults incrementally as the needs arise.

mahadzaryab1 commented 1 month ago

@yurishkuro we can link the following issues to the issue description as they are complete / in-review:

yurishkuro commented 1 month ago

For Kafka, we have this document.

mahadzaryab1 commented 1 month ago

For Kafka, we have this document.

@yurishkuro Did you want me to link this somewhere?

yurishkuro commented 1 month ago

no - I keep all links in the v2 RFC doc.

mahadzaryab1 commented 1 month ago

@yurishkuro can link https://github.com/jaegertracing/jaeger/issues/6041 for grpc storage in the issue description

mahadzaryab1 commented 1 month ago

@yurishkuro looks like we're pretty close to finishing this issue - do you know what the status is of https://github.com/jaegertracing/jaeger/pull/5790? any help needed there?

yurishkuro commented 4 weeks ago

do you know what the status is of #5790? any help needed there?

I had some comments that the author did not respond to. We can ping the author on the issue - if they don't have time to continue, we could take over that PR, it was nearly done iirc.

JaredTan95 commented 4 weeks ago

do you know what the status is of #5790? any help needed there?

I had some comments that the author did not respond to. We can ping the author on the issue - if they don't have time to continue, we could take over that PR, it was nearly done iirc.

Sorry for the late reply. After @yurishkuro reivew and adjustment, I feel that the logic here is rather complicated for me. I can no longer make the changes at present, and hope to get more help from the maintainer or take over directly.

mahadzaryab1 commented 4 weeks ago

do you know what the status is of #5790? any help needed there?

I had some comments that the author did not respond to. We can ping the author on the issue - if they don't have time to continue, we could take over that PR, it was nearly done iirc.

Sorry for the late reply. After @yurishkuro reivew and adjustment, I feel that the logic here is rather complicated for me. I can no longer make the changes at present, and hope to get more help from the maintainer or take over directly.

@JaredTan95 no worries! I can try picking up your PR and try addressing the feedback.

mahadzaryab1 commented 3 weeks ago

do you know what the status is of #5790? any help needed there?

I had some comments that the author did not respond to. We can ping the author on the issue - if they don't have time to continue, we could take over that PR, it was nearly done iirc.

Sorry for the late reply. After @yurishkuro reivew and adjustment, I feel that the logic here is rather complicated for me. I can no longer make the changes at present, and hope to get more help from the maintainer or take over directly.

@JaredTan95 @yurishkuro I've opened a new PR at https://github.com/jaegertracing/jaeger/pull/6060 since I didn't have permission to modify the existing ones. I've addressed most of the feedback that was left on the original PR. Please take a look and let me know if you have any other feedback.

mahadzaryab1 commented 2 weeks ago

@yurishkuro The elasticsearch configurations are now complete as well. Any other items we want to address here? Otherwise, I think we can close this issue out.

yurishkuro commented 2 weeks ago

Did you already update the google doc with the mapping?

mahadzaryab1 commented 2 weeks ago

@yurishkuro Yes - the migration guide can be viewed here.

yurishkuro commented 1 week ago

I think this is completed - huge thanks to @mahadzaryab1 🚀 , this is a critical milestone for v2.