-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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 Tail Based Sampling Processor From OTEL Collector Extension #5878
Support Tail Based Sampling Processor From OTEL Collector Extension #5878
Conversation
f9f80e0
to
9fd73c7
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #5878 +/- ##
==========================================
- Coverage 96.83% 96.82% -0.02%
==========================================
Files 342 342
Lines 16524 16525 +1
==========================================
- Hits 16001 16000 -1
- Misses 337 339 +2
Partials 186 186
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
I tested the binary sizes
I would suggest we only include tail sampler. That's the component that's most useful in the final collector, which needs to be Jaeger. But the upstream load balancing collectors can be just OTEL Collectors. |
84a9b93
to
929c409
Compare
01c9743
to
e15af38
Compare
@@ -170,6 +170,10 @@ index-cleaner-integration-test: docker-images-elastic | |||
index-rollover-integration-test: docker-images-elastic | |||
$(MAKE) storage-integration-test COVEROUT=cover-index-rollover.out | |||
|
|||
.PHONY: tail-sampling-integration-test | |||
tail-sampling-integration-test: | |||
SAMPLING=tail $(MAKE) jaeger-v2-storage-integration-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this runs go test
, but when do you start the docker compose environment?
All other e2e tests have a driver script that orchestrates all components of the test, e.g. scripts/es-integration-test.sh
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not using the docker-compose environment for my test. Calling e2eInitialize
is enough to start the Jaeger collector. You can simply run this test by calling make tail-sampling-integration-test
. Let me know if you want to change any of this setup though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough. However, it means that the new docker compose file will begin to rot since it's not being exercised by the CI, something we tried to avoid (e.g. see e2e spm test). So it would be good to actually combine using docker compose with e2e test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I see! What would you want this to look like? The current docker-compose set up generates load using tracegen which ideally we wouldn't want in the integration test so we can manually generate those. And the existing setup in the E2E tests does some nice things for us like flush the storage in between tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, that's why I was asking from the start what your plan would be. The way you are using e2e_integration framework is very lightweight, and I could easily see an alternative setup where everything is just orchestrated from a shell script
- run docker-compose with one config
- maybe don't include tracegen in compose, run it manually
- do a curl against query service to retrieve service names as JSON (trivial to write)
- shut down docker-compose (to clear the storage) and run again with different config
If you are interested to pursue this approach, I would suggest still merging this PR first so that we already have something in place. Can you finish the README?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yurishkuro That sounds good to me and I can pursue that approach in a follow-up PR. And yes, working on the README now. Will push it up soon.
make sure to do |
Thank you so much for doing this for me! |
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
ad40036
to
91ae10c
Compare
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
@yurishkuro the README and the rest of the PR is ready for review now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
@yurishkuro - there looks to be a failing test in the CI. Is it a flaky test? I don't believe its related to my changes. |
🎉 🎉 🎉 |
…35259) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/jaegertracing/jaeger](https://redirect.github.com/jaegertracing/jaeger) | `v1.60.0` -> `v1.61.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fjaegertracing%2fjaeger/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fjaegertracing%2fjaeger/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fjaegertracing%2fjaeger/v1.60.0/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fjaegertracing%2fjaeger/v1.60.0/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>jaegertracing/jaeger (github.com/jaegertracing/jaeger)</summary> ### [`v1.61.0`](https://redirect.github.com/jaegertracing/jaeger/releases/tag/v1.61.0): / v2.0.0-rc1 [Compare Source](https://redirect.github.com/jaegertracing/jaeger/compare/v1.60.0...v1.61.0) ##### Backend Changes This release contains an official pre-release candidate of Jaeger v2, as binary and Docker image `jaeger`. ##### ⛔ Breaking Changes - Remove support for cassandra 3.x and add cassandra 5.x ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5962](https://redirect.github.com/jaegertracing/jaeger/pull/5962)) ##### 🐞 Bug fixes, Minor Improvements - Fix: the 'tagtype' in es jaeger-span mapping tags.properties should be 'type' ([@​chinaran](https://redirect.github.com/chinaran) in [#​5980](https://redirect.github.com/jaegertracing/jaeger/pull/5980)) - Add readme for adaptive sampling ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5955](https://redirect.github.com/jaegertracing/jaeger/pull/5955)) - \[adaptive sampling] clean-up after previous refactoring ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5954](https://redirect.github.com/jaegertracing/jaeger/pull/5954)) - \[adaptive processor] remove redundant function ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5953](https://redirect.github.com/jaegertracing/jaeger/pull/5953)) - \[jaeger-v2] consolidate options and namespaceconfig for badger storage ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5937](https://redirect.github.com/jaegertracing/jaeger/pull/5937)) - Remove unused "namespace" field from badger config ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5929](https://redirect.github.com/jaegertracing/jaeger/pull/5929)) - Simplify bundling of ui assets ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5917](https://redirect.github.com/jaegertracing/jaeger/pull/5917)) - Clean up grpc storage config ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5877](https://redirect.github.com/jaegertracing/jaeger/pull/5877)) - Add script to replace apache headers with spdx ([@​thecaffeinedev](https://redirect.github.com/thecaffeinedev) in [#​5808](https://redirect.github.com/jaegertracing/jaeger/pull/5808)) - Add copyright/license headers to script files ([@​Zen-cronic](https://redirect.github.com/Zen-cronic) in [#​5829](https://redirect.github.com/jaegertracing/jaeger/pull/5829)) - Clearer output from lint scripts ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5820](https://redirect.github.com/jaegertracing/jaeger/pull/5820)) ##### 🚧 Experimental Features - \[jaeger-v2] add validation and comments to badger storage config ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5927](https://redirect.github.com/jaegertracing/jaeger/pull/5927)) - \[jaeger-v2] add validation and comments to memory storage config ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5925](https://redirect.github.com/jaegertracing/jaeger/pull/5925)) - Support tail based sampling processor from otel collector extension ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5878](https://redirect.github.com/jaegertracing/jaeger/pull/5878)) - \[v2] configure health check extension for all configs ([@​Wise-Wizard](https://redirect.github.com/Wise-Wizard) in [#​5861](https://redirect.github.com/jaegertracing/jaeger/pull/5861)) - \[v2] add legacy formats into e2e kafka integration tests ([@​joeyyy09](https://redirect.github.com/joeyyy09) in [#​5824](https://redirect.github.com/jaegertracing/jaeger/pull/5824)) - \[v2] configure healthcheck extension ([@​Wise-Wizard](https://redirect.github.com/Wise-Wizard) in [#​5831](https://redirect.github.com/jaegertracing/jaeger/pull/5831)) - Added \_total suffix to otel counter metrics. ([@​Wise-Wizard](https://redirect.github.com/Wise-Wizard) in [#​5810](https://redirect.github.com/jaegertracing/jaeger/pull/5810)) ##### 👷 CI Improvements - Release v2 cleanup 3 ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5984](https://redirect.github.com/jaegertracing/jaeger/pull/5984)) - Replace loopvar linter ([@​anishbista60](https://redirect.github.com/anishbista60) in [#​5976](https://redirect.github.com/jaegertracing/jaeger/pull/5976)) - Stop using v1 and v1.x tags for docker images ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5956](https://redirect.github.com/jaegertracing/jaeger/pull/5956)) - V2 repease prep ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5932](https://redirect.github.com/jaegertracing/jaeger/pull/5932)) - Normalize build-binaries targets ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5924](https://redirect.github.com/jaegertracing/jaeger/pull/5924)) - Fix integration test log dumping for storage backends ([@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) in [#​5915](https://redirect.github.com/jaegertracing/jaeger/pull/5915)) - Add jaeger-v2 binary as new release artifact ([@​renovate-bot](https://redirect.github.com/renovate-bot) in [#​5893](https://redirect.github.com/jaegertracing/jaeger/pull/5893)) - \[ci] add support for v2 tags during build ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5890](https://redirect.github.com/jaegertracing/jaeger/pull/5890)) - Add hardcoded db password and username to cassandra integration test ([@​Ali-Alnosairi](https://redirect.github.com/Ali-Alnosairi) in [#​5805](https://redirect.github.com/jaegertracing/jaeger/pull/5805)) - Define contents permissions on "dependabot validate" workflow ([@​mmorel-35](https://redirect.github.com/mmorel-35) in [#​5874](https://redirect.github.com/jaegertracing/jaeger/pull/5874)) - \[fix] print kafka logs on test failure ([@​joeyyy09](https://redirect.github.com/joeyyy09) in [#​5873](https://redirect.github.com/jaegertracing/jaeger/pull/5873)) - Pin github actions dependencies ([@​harshitasao](https://redirect.github.com/harshitasao) in [#​5860](https://redirect.github.com/jaegertracing/jaeger/pull/5860)) - Add go.mod for docker debug image ([@​hellspawn679](https://redirect.github.com/hellspawn679) in [#​5852](https://redirect.github.com/jaegertracing/jaeger/pull/5852)) - Enable lint rule: redefines-builtin-id ([@​ZXYxc](https://redirect.github.com/ZXYxc) in [#​5791](https://redirect.github.com/jaegertracing/jaeger/pull/5791)) - Require manual go version updates for patch versions ([@​wasup-yash](https://redirect.github.com/wasup-yash) in [#​5848](https://redirect.github.com/jaegertracing/jaeger/pull/5848)) - Clean up obselete 'version' tag from docker-compose files ([@​vvs-personalstash](https://redirect.github.com/vvs-personalstash) in [#​5826](https://redirect.github.com/jaegertracing/jaeger/pull/5826)) - Update expected codecov flags count to 19 ([@​yurishkuro](https://redirect.github.com/yurishkuro) in [#​5811](https://redirect.github.com/jaegertracing/jaeger/pull/5811)) ##### 📊 UI Changes Dependencies upgrades only. ##### 👏👏👏 New Contributors - [@​Nabil-Salah](https://redirect.github.com/Nabil-Salah) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5806](https://redirect.github.com/jaegertracing/jaeger/pull/5806) - [@​vvs-personalstash](https://redirect.github.com/vvs-personalstash) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5826](https://redirect.github.com/jaegertracing/jaeger/pull/5826) - [@​Zen-cronic](https://redirect.github.com/Zen-cronic) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5821](https://redirect.github.com/jaegertracing/jaeger/pull/5821) - [@​thecaffeinedev](https://redirect.github.com/thecaffeinedev) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5808](https://redirect.github.com/jaegertracing/jaeger/pull/5808) - [@​wasup-yash](https://redirect.github.com/wasup-yash) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5848](https://redirect.github.com/jaegertracing/jaeger/pull/5848) - [@​ZXYxc](https://redirect.github.com/ZXYxc) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5791](https://redirect.github.com/jaegertracing/jaeger/pull/5791) - [@​harshitasao](https://redirect.github.com/harshitasao) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5860](https://redirect.github.com/jaegertracing/jaeger/pull/5860) - [@​Ali-Alnosairi](https://redirect.github.com/Ali-Alnosairi) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5805](https://redirect.github.com/jaegertracing/jaeger/pull/5805) - [@​chinaran](https://redirect.github.com/chinaran) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5891](https://redirect.github.com/jaegertracing/jaeger/pull/5891) - [@​mahadzaryab1](https://redirect.github.com/mahadzaryab1) made their first contribution in [https://github.com/jaegertracing/jaeger/pull/5878](https://redirect.github.com/jaegertracing/jaeger/pull/5878) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Which problem is this PR solving?
Description of the changes
docker compose
to demonstrate usage of the tail-based sampling processor extension in jaeger.docker compose
setup describing the setup and usage of the new processorHow was this change tested?
Checklist
jaeger
:make lint test
jaeger-ui
:yarn lint
andyarn test