summaryrefslogtreecommitdiffstats
path: root/doc/dev/developer_guide/jaegertracing.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/dev/developer_guide/jaegertracing.rst')
-rw-r--r--doc/dev/developer_guide/jaegertracing.rst63
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/dev/developer_guide/jaegertracing.rst b/doc/dev/developer_guide/jaegertracing.rst
new file mode 100644
index 000000000..73a48ad83
--- /dev/null
+++ b/doc/dev/developer_guide/jaegertracing.rst
@@ -0,0 +1,63 @@
+JAEGER- DISTRIBUTED TRACING
+===========================
+
+Jaeger + Opentracing provides ready to use tracing services for distributed
+systems and is becoming the widely used standard because of their simplicity and
+standardization.
+
+We use a modified `jaeger-cpp-client
+<https://github.com/ceph/jaeger-client-cpp>`_ the backend provided to the
+Opentracing API, which is responsible for the collection of spans, these spans
+are made with the use of smart pointers that carry the timestamp, TraceID and other
+meta info like a specific tag/log associated with the span to uniquely identify
+it across the distributed system.
+
+
+BASIC ARCHITECTURE AND TERMINOLOGY
+----------------------------------
+
+refer to the `Ceph Tracing documentation <../../../jaegertracing/#basic-architecture-and-terminology>`_
+
+
+HOW TO GET STARTED USING TRACING?
+---------------------------------
+
+Enabling jaegertracing with Ceph needs deployment Jaeger daemons + compiling
+Ceph with Jaeger, orchestrated to be used in vstart cluster for developers, this
+uses a jaeger `all-in-one docker
+<https://www.jaegertracing.io/docs/1.22/getting-started/#all-in-one>`_ which
+isn't recommended for production, but for testing purposes. Let's look at all the
+steps needed:
+
+ 1. Update system with Jaeger dependencies, using install-deps::
+
+ $ WITH_JAEGER=true ./install-deps.sh
+
+ 2. Compile Ceph with Jaeger enabled:
+
+ - for precompiled build::
+
+ $ cd build
+ $ cmake -DWITH_JAEGER=ON ..
+
+ - for fresh compilation using do_cmake.sh::
+
+ $ ./do_cmake.sh -DWITH_JAEGER=ON && ninja vstart
+
+ 3. After successful compiling, start a vstart cluster with `--jaeger` which
+ will deploy `jaeger all-in-one <https://www.jaegertracing.io/docs/1.20/getting-started/#all-in-one>`_
+ using container deployment services(docker/podman)::
+
+ $ MON=1 MGR=0 OSD=1 ../src/vstart.sh --with-jaeger
+
+ if the deployment is unsuccessful, you can deploy `all-in-one
+ <https://www.jaegertracing.io/docs/1.20/getting- started/#all-in-one>`_
+ service manually and start vstart cluster without jaeger as well.
+
+
+ 4. Test the traces using rados-bench write::
+
+ $ bin/rados -p test bench 5 write --no-cleanup
+
+.. seealso::
+ `using-jaeger-cpp-client-for-distributed-tracing-in-ceph <https://medium.com/@deepikaupadhyay/using-jaeger-cpp-client-for-distributed-tracing-in-ceph-8b1f4906ca2>` \ No newline at end of file