Conversation
2052007 to
4bf0ead
Compare
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
4bf0ead to
dc58b11
Compare
beeme1mr
left a comment
There was a problem hiding this comment.
Nice, thanks for getting this started. I left a few comments and hopefully others will weigh in soon now that the holidays are wrapping up.
I could go either way on the requirement numbering. However, I have a slight preference for leaving the ordering as is.
… no-op Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
|
Hey @lukas-reining - sorry for a slow response from my part on this. I will be reviewing this first thing on Monday. |
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com> Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
d3d4b1e to
fed54fb
Compare
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com> Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
|
I wouldn't consider myself a polyglot developer, so I have some concerns about how this could be implemented in languages like Rust and Go. Perhaps we should change RFC-2119 keyword to "SHOULD" or "MAY" to avoid requiring a feature that can't reasonably be implemented in some technologies. @sheepduke what are your thoughts from Rust perspective? |
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com> Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
|
@beeme1mr wrote #227 (comment):
I'm relatively new to Go, but to me this sounds quite comparable to how OTel trace and baggage propagation works, i.e., via the For example, if I want to start a child trace in Go, I can write: const scopeName = "github.com/some-repo/some-module"
func someFunc(ctx context.Context) error {
// create a new child span from the incoming ctx, and overwrite/shadow it with a new ctx
ctx, span := trace.SpanFromContext(ctx).TracerProvider().Tracer(scopeName).Start(ctx, "some_func")
defer span.End()
// do stuff covered by the child span
// ...
// ...
// now call into someOtherFunc, passing the overwritten/shadowed ctx
return someOtherFunc(ctx)
}
func someOtherFunc(ctx context.Context) error {
ctx, span := trace.SpanFromContext(ctx).TracerProvider().Tracer(scopeName).Start(ctx, "some_other_function")
defer span.End()
// do stuff covered by the child (grandchild?) span
// ...
// ...
return nil
}With the resulting span looking something like: or if the caller to Related
|
Yes exactly, this is how it was meant. |
I would be fine with this, but my feeling is that there should be a way in all languages. But to be sure we could also just go for |
@beeme1mr If we go for |
|
I would just add a short blurb in the non-normative section. |
I think you could do a single condition and put everything under that if you want, but I also think you could get away without one. You could use a should/may and then just say "the transaction propagation implementation must..." and I think people would probably interpret that as not applicable. |
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
I chose to add a condition now @toddbaert @beeme1mr. It feels the cleanest to me this way. The only concern I have is the deep nesting, something like 3.3.1.2.1 feels pretty heavy but it feels better than having conditions or assumptions in the spec sentences. |
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
c77e5d3 to
98030e8
Compare
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
I'm OK with the deep nesting. I hope we never have to go deeper than 5, but I think it's fine. |
|
As said in the community meeting we have enough approvals now and it seems that we have a consensus. |
This PR
Adds context propagation as described in #81.
To me it looks like this should be implementable in all the current languages.
The following things I am not sure on:
Related Issues
Fixes #81