From 1ba3e14b36c8f00475bdd41cd4a487ef7636836e Mon Sep 17 00:00:00 2001 From: Tsuribori <30933799+Tsuribori@users.noreply.github.com> Date: Mon, 20 Nov 2023 17:43:55 +0200 Subject: [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 Co-authored-by: Tsuribori Co-authored-by: tsmethurst --- docs/advanced/metrics.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/advanced/metrics.md (limited to 'docs/advanced/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 -- cgit v1.2.3