diff options
Diffstat (limited to 'doc/jaegertracing/index.rst')
-rw-r--r-- | doc/jaegertracing/index.rst | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/doc/jaegertracing/index.rst b/doc/jaegertracing/index.rst new file mode 100644 index 000000000..725b3f986 --- /dev/null +++ b/doc/jaegertracing/index.rst @@ -0,0 +1,131 @@ +JAEGER- DISTRIBUTED TRACING +=========================== + +Jaeger provides ready-to-use tracing services for distributed systems. + +BASIC ARCHITECTURE AND TERMINOLOGY +---------------------------------- + +* TRACE: A trace shows the data/execution path through a system. +* SPAN: A single unit of a trace. A data structure that stores information such + as the operation name, timestamps, and the ordering within a trace. +* JAEGER CLIENT: Language-specific implementations of the OpenTracing API. +* JAEGER AGENT: A daemon that listens for spans sent over User Datagram + Protocol. The agent is meant to be placed on the same host as the + instrumented application. (The Jaeger agent acts like a sidecar listener.) +* JAEGER COLLECTOR: A daemon that receives spans sent by the Jaeger agent. The + Jaeger collector then stitches the spans together to form a trace. (A databse + can be enabled to persist a database for these traces). +* JAEGER QUERY AND CONSOLE FRONTEND: The UI-based frontend that presents + reports of the jaeger traces. Accessible at http://<jaeger frontend host>:16686. + +Read more about jaeger tracing:. + + https://www.jaegertracing.io/docs/ + +JAEGER DEPLOYMENT +----------------- + +Jaeger can be deployed using cephadm, or manually. + +CEPHADM BASED DEPLOYMENT AS A SERVICE +------------------------------------- + +`Cephadm Jaeger Services Deployment <../cephadm/services/tracing/>`_ + + +MANUAL TEST DEPLOYMENT FOR JAEGER OPENTELEMETRY ALL IN ONE CONTAINER +-------------------------------------------------------------------- + +For single node testing Jaeger opentelemetry can be deployed using: + +.. prompt:: bash $ + + docker run -d --name jaeger \ + -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ + -e COLLECTOR_OTLP_ENABLED=true \ + -p 6799:6799/udp \ + -p 6832:6832/udp \ + -p 5778:5778 \ + -p 16686:16686 \ + -p 4317:4317 \ + -p 4318:4318 \ + -p 14250:14250 \ + -p 14268:14268 \ + -p 14269:14269 \ + -p 9411:9411 \ + jaegertracing/all-in-one:latest --processor.jaeger-compact.server-host-port=6799 + + +`Jaeger Deployment <https://www.jaegertracing.io/docs/1.25/deployment/>`_ + +`Jaeger Performance Tuning <https://www.jaegertracing.io/docs/1.25/performance-tuning/>`_ + +.. note:: + + The Jaeger agent must be running on each host (and not running in all-in-one + mode). This is because spans are sent to the local Jaeger agent. Spans of + hosts that do not have active Jaeger agents will be lost. + + The default configured port for Jaeger agent differs from the official default + 6831, since Ceph tracers are configured to send tracers to agents that listen + to port the configured 6799. Use the option "--processor.jaeger-compact.server-host-port=6799" for manual Jaeger + deployments. + + +HOW TO ENABLE TRACING IN CEPH +----------------------------- + +Tracing in Ceph is disabled by default. + +Tracing can be enabled globally, and tracing can also be enabled separately for +each entity (for example, for rgw). + +Enable tracing globally: + +.. prompt:: bash $ + + ceph config set global jaeger_tracing_enable true + + +Enable tracing for each entity: + +.. prompt:: bash $ + + ceph config set <entity> jaeger_tracing_enable true + + +TRACES IN RGW +------------- + +Traces run on RGW can be found under the Service `rgw` in the Jaeger Frontend. + +REQUESTS +^^^^^^^^ +Every user request is traced. Each trace contains tags for `Operation name`, +`User id`, `Object name` and `Bucket name`. + +There is also an `Upload id` tag for Multipart upload operations. + +The names of request traces have the following format: `<command> <transaction +id>`. + +MULTIPART UPLOAD +^^^^^^^^^^^^^^^^ +There is a kind of trace that consists of a span for each request made by a +multipart upload, and it includes all `Put Object` requests. + +The names of multipart traces have the following format: `multipart_upload +<upload id>`. + + +rgw service in Jaeger Frontend: + +.. image:: ./rgw_jaeger.png + :width: 400 + + +osd service in Jaeger Frontend: + +.. image:: ./osd_jaeger.png + :width: 400 |