summaryrefslogtreecommitdiff
path: root/docs/advanced
diff options
context:
space:
mode:
authorLibravatar Tsuribori <30933799+Tsuribori@users.noreply.github.com>2023-11-20 17:43:55 +0200
committerLibravatar GitHub <noreply@github.com>2023-11-20 16:43:55 +0100
commit1ba3e14b36c8f00475bdd41cd4a487ef7636836e (patch)
tree17405b2de75bb6faaefb9bbfc6487fd7a5efc35a /docs/advanced
parent[bugfix] self-referencing collection pages for status replies (#2364) (diff)
downloadgotosocial-1ba3e14b36c8f00475bdd41cd4a487ef7636836e.tar.xz
[feature] Initial Prometheus metrics implementation (#2334)
* feat: Initial OTEL metrics * docs: add metrics documentation * fix: metrics endpoint conditional check * feat: metrics endpoint basic auth * fix: make metrics-auth-enabled default false * fix: go fmt helpers.gen.go * fix: add metric-related env vars to envparsing.sh * fix: metrics docs * fix: metrics related stuff in envparsing.sh * fix: metrics docs * chore: metrics docs wording * fix: metrics stuff in envparsing? * bump otel versions --------- Co-authored-by: Tsuribori <user@acertaindebian> Co-authored-by: Tsuribori <none@example.org> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
Diffstat (limited to 'docs/advanced')
-rw-r--r--docs/advanced/index.md1
-rw-r--r--docs/advanced/metrics.md37
2 files changed, 38 insertions, 0 deletions
diff --git a/docs/advanced/index.md b/docs/advanced/index.md
index 351190227..81773801f 100644
--- a/docs/advanced/index.md
+++ b/docs/advanced/index.md
@@ -14,3 +14,4 @@ We consider these topics advanced because applying them incorrectly does have th
* [Process sandboxing](security/sandboxing.md)
* [Firewall configuration](security/firewall.md)
* [Tracing](tracing.md)
+* [Metrics](metrics.md)
diff --git a/docs/advanced/metrics.md b/docs/advanced/metrics.md
new file mode 100644
index 000000000..6c1cddd61
--- /dev/null
+++ b/docs/advanced/metrics.md
@@ -0,0 +1,37 @@
+# Metrics
+
+GoToSocial comes with [OpenTelemetry][otel] based metrics built-in with pull-style Prometheus exporter. Currently the following metrics are collected:
+
+* Go performance and runtime metrics
+* Gin (HTTP) metrics
+* Bun (database) metrics
+
+How to configure metrics is explained in the [Observability configuration reference][obs].
+
+For a quickstart, add the following to your GoToSocial configuration and restart your instance:
+
+```yaml
+metrics-enabled: true
+metrics-auth-enabled: true
+metrics-auth-username: some_username
+metrics-auth-password: some_password
+```
+
+This will expose the metrics under the endpoint `/metrics`, protected with HTTP Basic Authentication.
+
+A following is an example how to configure a job for collecting the metrics in Prometheus `scrape_configs`:
+
+```yaml
+ - job_name: gotosocial
+ metrics_path: /metrics
+ scheme: https
+ basic_auth:
+ username: some_username
+ password: some_password
+ static_configs:
+ - targets:
+ - example.org
+```
+
+[otel]: https://opentelemetry.io/
+[obs]: ../configuration/observability.md \ No newline at end of file