summaryrefslogtreecommitdiff
path: root/docs/advanced
diff options
context:
space:
mode:
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