squid: tracer/osd/librados/build/rgw: rgw and osd end2end tracing using open…#55625
Merged
yuriw merged 3 commits intoceph:squidfrom Mar 26, 2024
Merged
squid: tracer/osd/librados/build/rgw: rgw and osd end2end tracing using open…#55625yuriw merged 3 commits intoceph:squidfrom
yuriw merged 3 commits intoceph:squidfrom
Conversation
Contributor
Author
|
This is the squid backport of #52114. |
Contributor
Author
|
Known make check failure: |
Contributor
Author
|
jenkins test make check |
…telemetry * build: add opentelemetry to cmake system crimson targets that uses Message.cc/h are built before opentelemetry (o-tel), so we need to build o-tel eralier so we also add the library to the include path earlier this shoud work for WITH_JAEGER flag both the ON/OFF cases, and for librados where the compilation flag is ignored * msg/tracer: add o-tel trace to Messages with decode/encode function in tracer.h some files that uses Message.cc/h just need the encode/decode functions and not all others functions. some crimson targets does not link with ceph_context (common) which is required for tracer.cc file. so we just need to include that functions * librados: Add opentelemtry trace param for aio_operate and operate methods in order to propagate the trace info I added the otel-trace as an extra param. in some places, there already was a blkin trace info, and since it is not used in other places we can safely change it to o-tel trace info. this will be done in another commit, so the cleanup of blkin trace will be in a dedicated commit * osd: use the o-tel trace of the msg as a parent span of the osd trace if there is a valid span in the msg, we will add this op to the request trace, otherwise it will start a new trace for the OSD op * rgw: pass put obj trace info to librados in order to make it possible, I saved the trace info inside the sal::Object, so we can use it later when writing the object to rados it could be used also later for read ops. note the trace field of req_state is initalized only in rgw_process, so it's also required in librgw request flow * prevent breaking channges to kSize. make sure that changes between components built with different versions of OTEL do not break message compatibility Signed-off-by: Omri Zeneva <ozeneva@redhat.com> (cherry picked from commit 320a217)
We aren't currently using jaeger tracing on Windows. The issue is that Windows hosts (or any other host that doesn't use jaeger) are experiencing message decoding failures after a recent change [1]. This change updates the tracer encoding so that messages from non-jaeger hosts may be decoded by services that use jaeger. [1] ceph#47457 Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com> This commit rebrings 3701ffa which got reverted due to an implicit dependency with other revert. Please see ceph#52114 (comment). Conflicts: src/common/tracer.h formatting conflict with 7179ac0 (cherry picked from commit e145264)
71bd31e to
c5c7d26
Compare
Contributor
Author
|
Linking the original PR: #52114. |
14 tasks
Contributor
|
@rzarzynski i really appreciate your help pushing this one through ❤️ i'm tracking an rgw regression from this pr on main in https://tracker.ceph.com/issues/64543. we'll need the fix from #55722 to get a clean rgw run for squid |
a recent regression from 320a217 causes aio_abstract() to recurse when given an empty optional_yield. this is exposed by the librgw_file tests Fixes: https://tracker.ceph.com/issues/64543 Signed-off-by: Casey Bodley <cbodley@redhat.com> (cherry picked from commit 0e223fd)
Contributor
|
@rzarzynski i've added that commit to this PR, i hope you don't mind |
Contributor
Contributor
|
jenkins test api |
cbodley
approved these changes
Feb 28, 2024
Contributor
|
@rzarzynski @ljflores does this need a rados suite run too? |
Contributor
Author
Contributor
|
@yuriw please make sure this one gets a rados suite (see https://tracker.ceph.com/issues/64973#note-14) |
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…telemetry
build: add opentelemetry to cmake system crimson targets that uses Message.cc/h are built before opentelemetry (o-tel), so we need to build o-tel eralier so we also add the library to the include path earlier this shoud work for WITH_JAEGER flag both the ON/OFF cases, and for librados where the compilation flag is ignored
msg/tracer: add o-tel trace to Messages with decode/encode function in tracer.h some files that uses Message.cc/h just need the encode/decode functions and not all others functions. some crimson targets does not link with ceph_context (common) which is required for tracer.cc file. so we just need to include that functions
librados: Add opentelemtry trace param for aio_operate and operate methods in order to propagate the trace info I added the otel-trace as an extra param. in some places, there already was a blkin trace info, and since it is not used in other places we can safely change it to o-tel trace info. this will be done in another commit, so the cleanup of blkin trace will be in a dedicated commit
osd: use the o-tel trace of the msg as a parent span of the osd trace if there is a valid span in the msg, we will add this op to the request trace, otherwise it will start a new trace for the OSD op
rgw: pass put obj trace info to librados in order to make it possible, I saved the trace info inside the sal::Object, so we can use it later when writing the object to rados it could be used also later for read ops.
note the trace field of req_state is initalized only in rgw_process, so it's also required in librgw request flow
prevent breaking channges to kSize. make sure that changes between components built with different versions of OTEL do not break message compatibility
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e