Add OpenTracing documentation (#1345)

* Add OpenTracing documentation

Closes #274

* Reshuffle

* Update setup.md
This commit is contained in:
Kegsay 2020-08-27 10:24:56 +01:00 committed by GitHub
parent 42183bef50
commit 421b6b2313
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 0 deletions

View file

@ -302,6 +302,8 @@ user_api:
conn_max_lifetime: -1 conn_max_lifetime: -1
# Configuration for Opentracing. # Configuration for Opentracing.
# See https://github.com/matrix-org/dendrite/tree/master/docs/tracing for information on
# how this works and how to set it up.
tracing: tracing:
enabled: false enabled: false
jaeger: jaeger:

BIN
docs/tracing/jaeger.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

49
docs/tracing/setup.md Normal file
View file

@ -0,0 +1,49 @@
## OpenTracing Setup
![Trace when sending an event into a room](/docs/tracing/jaeger.png)
Dendrite uses [Jaeger](https://www.jaegertracing.io/) for tracing between microservices.
Tracing shows the nesting of logical spans which provides visibility on how the microservices interact.
This document explains how to set up Jaeger locally on a single machine.
### Set up the Jaeger backend
The [easiest way](https://www.jaegertracing.io/docs/1.18/getting-started/) is to use the all-in-one Docker image:
```
$ docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
-p 5775:5775/udp \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14268:14268 \
-p 14250:14250 \
-p 9411:9411 \
jaegertracing/all-in-one:1.18
```
### Configuring Dendrite to talk to Jaeger
Modify your config to look like: (this will send every single span to Jaeger which will be slow on large instances, but for local testing it's fine)
```
tracing:
enabled: true
jaeger:
serviceName: "dendrite"
disabled: false
rpc_metrics: true
tags: []
sampler:
type: const
param: 1
```
then run the monolith server with `--api true` to use polylith components which do tracing spans:
```
$ ./dendrite-monolith-server --tls-cert server.crt --tls-key server.key --config dendrite.yaml --api true
```
### Checking traces
Visit http://localhost:16686 to see traces under `DendriteMonolith`.