diff options
author | Omri Zeneva <ozeneva@redhat.com> | 2022-08-24 15:57:11 +0200 |
---|---|---|
committer | Yuval Lifshitz <ylifshit@redhat.com> | 2024-02-06 09:01:42 +0100 |
commit | 320a2179a3c6c1981a0fd2494938515997c1bfad (patch) | |
tree | 0c083b5c8ed3c467f99952346dda7abfad5a5f19 /cmake | |
parent | Merge pull request #54311 from gabriel-samfira/do-not-escape-slash (diff) | |
download | ceph-320a2179a3c6c1981a0fd2494938515997c1bfad.tar.xz ceph-320a2179a3c6c1981a0fd2494938515997c1bfad.zip |
tracer/osd/librados/build/rgw: rgw and osd end2end tracing using opentelemetry
* 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>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/BuildOpentelemetry.cmake | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/cmake/modules/BuildOpentelemetry.cmake b/cmake/modules/BuildOpentelemetry.cmake index ba2edaa0932..48b219e9c0f 100644 --- a/cmake/modules/BuildOpentelemetry.cmake +++ b/cmake/modules/BuildOpentelemetry.cmake @@ -82,4 +82,5 @@ function(build_opentelemetry) PROPERTIES INTERFACE_LINK_LIBRARIES "${opentelemetry_deps}" INTERFACE_INCLUDE_DIRECTORIES "${opentelemetry_include_dir}") + include_directories(SYSTEM "${opentelemetry_include_dir}") endfunction() |