-
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
[WIP] Implement spans exporting for ClickHouse storage in Jaeger V2 #4941
base: main
Are you sure you want to change the base?
Conversation
@yurishkuro This still needs some supplements and a lot of cleanups and tests. I'm still working on them. But could you take an initial look to see if I'm going the right way? Thanks! |
063ac74
to
4608c16
Compare
👍 I've been waiting clickhouse support for a long time. Is there anything I can help you with? |
@k0zl Sure! For this PR (spans exporting), the remaining parts are:
After finishing with spans exporting, we'll move to spans reading,... Also, since clickhouse storage is supported in Jaeger v2, to make this realeased you could also help with Jaeger v2 roadmap, in the issue I linked above. Please choose whatever interests you. Thanks! |
@haanhvu it would be useful to write a design doc / roadmap documenting what we're doing and what tasks need to be done, are you up for that? You can model it after the Jaeger V2 document. |
Yeah I'll create an issue for supporting clickhouse in jaeger v2 tomorrow |
7010d65
to
5b69530
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4941 +/- ##
==========================================
- Coverage 96.38% 95.78% -0.60%
==========================================
Files 329 333 +4
Lines 16060 16199 +139
==========================================
+ Hits 15479 15517 +38
- Misses 404 492 +88
- Partials 177 190 +13
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
31cc9b7
to
d780080
Compare
@yurishkuro Could you take a look at the failed all-in-one build? |
I am seeing error
|
@yurishkuro This error didn't come up in my |
This test doesn't just run on its own, it expects the binary running, so how are you starting the binary? For example, this works: # terminal 1
$ go run -tags=ui ./cmd/jaeger
# terminal 2
$ SKIP_SAMPLING=true make all-in-one-integration-test But this is running with default aio config for OTEL, whereas you need to provide your own config in order to test the same against CH. |
Ah, I ran the binary with |
The So now I'll have to run clickhouse server, make my own jaeger v2 config (that exports to clickhouse) and |
@yurishkuro I ran the binary with my config.yaml, spans were exported successfully to clickhouse: Should we add an e2e test now, or wait until spans reading are implemented? Also, can you check the unit tests? I just have one Pls check if there's anything else you think we should test in this PR. |
You wouldn't be able to do e2e without reading, that's how the tests verify that traces are saved. |
08a4534
to
bf165e2
Compare
@yurishkuro I rebased and made a little change following what we're having with other V2 storage. I checked the change locally and it worked: There's one goleak failure in unit tests. However, the goleak failure is in Also, the code coverage is a bit skewed. Seems like codecov checks per file or per package and crossed-files and cross-packages function calls are not counted. Do you want to rearrange the files/packages so that code coverage is more accurate? |
We shouldn't ignore leaks. Most likely it's from not closing resources in tests properly, you can see which goroutine is remaining running and understand where it starts. There are rare cases where libraries introduce unsolvable leaks (like glog), but I am skeptical database/sql would be such lib. The codecov for storage is usually combined from unit tests and e2e tests. Note that V2 Storage API already exists, and we have an adapter to v1 that will be used by the |
Yeah I saw the conflicts in |
Signed-off-by: haanhvu <[email protected]>
Signed-off-by: haanhvu <[email protected]>
Signed-off-by: haanhvu <[email protected]>
Signed-off-by: haanhvu <[email protected]>
Signed-off-by: haanhvu <[email protected]>
Signed-off-by: haanhvu <[email protected]>
Which problem is this PR solving?
Part of #5058