From 8bb9304425515c8b773f8ab1c25dd62b4e08d198 Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Tue, 4 Apr 2023 13:02:04 -0400 Subject: [PATCH] metrics and limits docs iteration (#283) --- .../guides/metrics-and-limits/_category_.json | 7 ++ .../metrics-and-limits/configuring-metrics.md | 11 +++ .../images/metrics-architecture-simple.drawio | 70 ++++++++++++++++++ .../images/metrics-architecture-simple.png | Bin 0 -> 33893 bytes .../images/metrics-architecture.drawio | 67 +++++++++++++++++ .../images/metrics-architecture.png | Bin 0 -> 36024 bytes 6 files changed, 155 insertions(+) create mode 100644 docs/guides/metrics-and-limits/_category_.json create mode 100644 docs/guides/metrics-and-limits/configuring-metrics.md create mode 100644 docs/guides/metrics-and-limits/images/metrics-architecture-simple.drawio create mode 100644 docs/guides/metrics-and-limits/images/metrics-architecture-simple.png create mode 100644 docs/guides/metrics-and-limits/images/metrics-architecture.drawio create mode 100644 docs/guides/metrics-and-limits/images/metrics-architecture.png diff --git a/docs/guides/metrics-and-limits/_category_.json b/docs/guides/metrics-and-limits/_category_.json new file mode 100644 index 00000000..f46ea994 --- /dev/null +++ b/docs/guides/metrics-and-limits/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Metrics and Limits", + "position": 40, + "link": { + "type": "generated-index" + } +} diff --git a/docs/guides/metrics-and-limits/configuring-metrics.md b/docs/guides/metrics-and-limits/configuring-metrics.md new file mode 100644 index 00000000..cc25e3f0 --- /dev/null +++ b/docs/guides/metrics-and-limits/configuring-metrics.md @@ -0,0 +1,11 @@ +# Configuring Metrics + +A fully configured, production-scale `zrok` service instance looks like this: + +![zrok Metrics Architecture](images/metrics-architecture.png) + +`zrok` metrics builds on top of the `fabric.usage` event type from OpenZiti. The OpenZiti controller has a number of way to emit events. The `zrok` controller has several ways to consume `fabric.usage` events. Smaller installations could be configured in these ways: + +![zrok simplified metrics architecture](images/metrics-architecture-simple.png) + +Environments that horizontally scale the `zrok` control plane with multiple controllers should use an AMQP-based queue to "fan out" the metrics workload across the entire control plane. Simpler installations that use a single `zrok` controller can collect `fabric.usage` events from the OpenZiti controller by "tailing" the events log file, or collecting them from the OpenZiti controller's websocket implementation. \ No newline at end of file diff --git a/docs/guides/metrics-and-limits/images/metrics-architecture-simple.drawio b/docs/guides/metrics-and-limits/images/metrics-architecture-simple.drawio new file mode 100644 index 00000000..2661aed5 --- /dev/null +++ b/docs/guides/metrics-and-limits/images/metrics-architecture-simple.drawio @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guides/metrics-and-limits/images/metrics-architecture-simple.png b/docs/guides/metrics-and-limits/images/metrics-architecture-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9fdf4114ef8aea501157edf3cacda4a09378a0 GIT binary patch literal 33893 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 QOyI-ZK0Bir_EdT%j literal 0 HcmV?d00001 diff --git a/docs/guides/metrics-and-limits/images/metrics-architecture.drawio b/docs/guides/metrics-and-limits/images/metrics-architecture.drawio new file mode 100644 index 00000000..13a39db8 --- /dev/null +++ b/docs/guides/metrics-and-limits/images/metrics-architecture.drawio @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guides/metrics-and-limits/images/metrics-architecture.png b/docs/guides/metrics-and-limits/images/metrics-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..063c33a7db422f8dd4d402d7fadf72b22de006e9 GIT binary patch literal 36024 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