From b3131497a2279714f6ca62ec6360aeae6e09ae20 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 11 Jan 2024 21:01:16 +0100 Subject: [PATCH] docs: Add Jaeger and Prometheus + Grafana to example setup --- docs/assets/Jaeger-logo.svg | 39 +++++ ...-load-balancer-with-persistence.drawio.svg | 152 ++++++++++++------ docs/assets/grafana-logo.svg | 14 ++ docs/assets/prometheus-logo.png | Bin 0 -> 37061 bytes 4 files changed, 155 insertions(+), 50 deletions(-) create mode 100644 docs/assets/Jaeger-logo.svg create mode 100644 docs/assets/grafana-logo.svg create mode 100644 docs/assets/prometheus-logo.png diff --git a/docs/assets/Jaeger-logo.svg b/docs/assets/Jaeger-logo.svg new file mode 100644 index 0000000..1538bb0 --- /dev/null +++ b/docs/assets/Jaeger-logo.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/example-setups/ha-load-balancer-with-persistence.drawio.svg b/docs/assets/example-setups/ha-load-balancer-with-persistence.drawio.svg index 32e6e6d..068a6e9 100644 --- a/docs/assets/example-setups/ha-load-balancer-with-persistence.drawio.svg +++ b/docs/assets/example-setups/ha-load-balancer-with-persistence.drawio.svg @@ -1,19 +1,37 @@ - + - - - - - - - - - + + -
+
+
+
+ traces +
+
+
+ + + traces + + + + + + + + + + + + + + + +
persistence @@ -21,16 +39,34 @@
- + persistence - + + + + + +
+
+
+ scrapes +
+
+
+
+ + scrapes + +
+
+ -
+
trino-lb @@ -38,17 +74,17 @@
- + trino-lb - - + + -
+
executes @@ -58,17 +94,17 @@
- + executes... - - + + -
+
Trino client @@ -76,37 +112,37 @@
- + Trino... - + - - + + Trino 1 - + - - + + Trino 2 - + - - + + Trino 3 - + -
+
trino-lb 1 @@ -114,16 +150,16 @@
- + trino-lb 1 - + -
+
trino-lb 2 @@ -131,16 +167,16 @@
- + trino-lb 2 - + -
+
trino-lb 3 @@ -148,16 +184,16 @@
- + trino-lb 3 - + -
+
Redis cluster @@ -165,29 +201,45 @@
- + Redis cluster - + - + Redis 1 - + - + Redis 2 - + - + Redis 3 + + + + + + Jaeger tracing + + + + + + + + Grafana + + diff --git a/docs/assets/grafana-logo.svg b/docs/assets/grafana-logo.svg new file mode 100644 index 0000000..6b468ca --- /dev/null +++ b/docs/assets/grafana-logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/prometheus-logo.png b/docs/assets/prometheus-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8017d9113795fc3bb2a6525af22c9dad896fc0 GIT binary patch literal 37061 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 QFZfGARz;@p$?Nz34