mirror of
https://github.com/matrix-org/dendrite.git
synced 2024-11-22 14:21:55 -06:00
Add OpenTracing documentation (#1345)
* Add OpenTracing documentation Closes #274 * Reshuffle * Update setup.md
This commit is contained in:
parent
42183bef50
commit
421b6b2313
|
@ -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
BIN
docs/tracing/jaeger.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 258 KiB |
49
docs/tracing/setup.md
Normal file
49
docs/tracing/setup.md
Normal 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`.
|
Loading…
Reference in a new issue