Skip to content
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 for Zipkin Protobuf spans over HTTP #1695

Merged
merged 35 commits into from
Aug 16, 2019

Conversation

jan25
Copy link
Contributor

@jan25 jan25 commented Jul 26, 2019

Which problem is this PR solving?

Short description of the changes

Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Copy link
Member

@yurishkuro yurishkuro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am concerned by importing zipkin-go that brings with it dependencies on protobuf with potentially conflicting versions. Why can't we just use the zipkin proto file and generate the model ourselves? As far as I can tell there is no dependency on any other logic from zipkin-go.

cmd/collector/app/zipkin/protov2.go Outdated Show resolved Hide resolved
@jan25
Copy link
Contributor Author

jan25 commented Jul 27, 2019

@yurishkuro Thanks!
Logic-wise, no difference except the type definitions changing a little. I thought zipkin-go is officially supported/made for different collector like Jaeger.

You have a fair point about us having to control which proto version we want to support. I can update this PR to use proto file directly and generate code, and jaeger-idl looks like ideal place to put this proto file.

@yurishkuro
Copy link
Member

Yes, the proto file can go to jaeger-idl

@pavolloffay
Copy link
Member

Manual test the v2 endpoint with zipkin proto spans

Have a look at xdock tests, there are already tests for zipkin thrift and v2 json. We could leverage the same approach and add proto. It will require adding support for proto reporter in https://github.com/jaegertracing/xdock-zipkin-brave

Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
@jan25 jan25 changed the title [WIP] Support for Zipkin Protobuf spans over HTTP Support for Zipkin Protobuf spans over HTTP Aug 7, 2019
@jan25 jan25 marked this pull request as ready for review August 7, 2019 21:03
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
@codecov
Copy link

codecov bot commented Aug 10, 2019

Codecov Report

❗ No coverage uploaded for pull request base (master@581f9be). Click here to learn what that means.
The diff coverage is 97.61%.

Impacted file tree graph

@@           Coverage Diff            @@
##             master   #1695   +/-   ##
========================================
  Coverage          ?   98.3%           
========================================
  Files             ?     194           
  Lines             ?    9521           
  Branches          ?       0           
========================================
  Hits              ?    9360           
  Misses            ?     126           
  Partials          ?      35
Impacted Files Coverage Δ
model/ids.go 100% <ø> (ø)
cmd/collector/app/zipkin/http_handler.go 100% <100%> (ø)
cmd/collector/app/zipkin/protov2.go 97.16% <97.16%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 581f9be...e5168bb. Read the comment docs.

Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
@jan25
Copy link
Contributor Author

jan25 commented Aug 10, 2019

I missed make install-tools, thanks for the fix!

Copy link
Member

@pavolloffay pavolloffay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please also enable the xdock tests here?

cmd/collector/app/zipkin/protov2.go Outdated Show resolved Hide resolved
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
Signed-off-by: Abhilash Gnan <abhilashgnan@gmail.com>
@jan25
Copy link
Contributor Author

jan25 commented Aug 13, 2019

@pavolloffay thanks! Added them now. I think we should merge jaegertracing/xdock-zipkin-brave#13 to go forward with this main PR.

@pavolloffay
Copy link
Member

@jan25 I have added there one comment, otherwise it looks good to me.

@pavolloffay pavolloffay mentioned this pull request Aug 14, 2019
1 task
Copy link
Member

@yurishkuro yurishkuro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like crossdock failed on the new test (as well as on e2e test, but that one could be a bit flaky)

otherwise lgtm

return tSpan, nil
}

func traceIDFromBytes(tid []byte) (model.TraceID, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps incorporate this into func (t *TraceID) Unmarshal(data []byte) error instead. In which case the *BytesLen constants can remain private

@pavolloffay pavolloffay merged commit a016891 into jaegertracing:master Aug 16, 2019
@pavolloffay
Copy link
Member

thanks @jan25

@jan25
Copy link
Contributor Author

jan25 commented Aug 16, 2019

Thanks for all the help! @yurishkuro I was working on your comment in the review :) but this is already merged, will open different PR when i have that refactored.

@pavolloffay
Copy link
Member

I have considered it as fixed due to 👍 mark on the comment. thanks @jan25

@pavolloffay
Copy link
Member

@jan25 are you using Jaeger in booking.com? If yes could you please add an entry to https://github.com/jaegertracing/jaeger/blob/master/ADOPTERS.md or at least comment in #207

@jan25
Copy link
Contributor Author

jan25 commented Aug 16, 2019

@pavolloffay Not yet, But noted the links from your previous comment to update them when booking.com does :) thanks!

@pavolloffay
Copy link
Member

thanks @jan25 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for Zipkin Protobuf spans over HTTP
3 participants