Files
GoToSocial/docs/configuration/observability.md
Daenney ecbdc4227b [chore] Simplify the OTEL setup (#4110)
# Description

This simplifies our OTEL setup by:

* Getting rid of some deprecated things.
* Using `autoexport` and letting things get configured by the `OTEL_` environment variables.
* Removing all the unnecessary config options.

## Checklist

Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]`

If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want).

- [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md).
- [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
- [x] I/we have not leveraged AI to create the proposed changes.
- [x] I/we have performed a self-review of added code.
- [x] I/we have written code that is legible and maintainable by others.
- [ ] I/we have commented the added code, particularly in hard-to-understand areas.
- [x] I/we have made any necessary changes to documentation.
- [ ] I/we have added tests that cover new code.
- [x] I/we have run tests and they pass locally with the changes.
- [x] I/we have run `go fmt ./...` and `golangci-lint run`.

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4110
Reviewed-by: tobi <kipvandenbos@noreply.codeberg.org>
Co-authored-by: Daenney <daenney@noreply.codeberg.org>
Co-committed-by: Daenney <daenney@noreply.codeberg.org>
2025-05-05 16:22:45 +00:00

2.0 KiB

Observability

These settings let you tune and configure certain observability related behaviours.

GoToSocial uses OpenTelemetry. The metrics and trace exporters can be configured using the standard OpenTelemetry SDK environment variables. For a full reference, see the OpenTelemetry docs.

Metrics

Before enabling metrics, read the guide and ensure you've taken the appropriate security measures for your setup.

Tracing

To enable tracing, set tracing-enabled to true.

Valid values for OTEL_TRACES_EXPORTER are documented here.

Metrics

To enable metrics, set metrics-enabled to true. By default this'll use OTLP to push metrics to an OpenTelemetry receiver.

Valid values for OTEL_METRICS_EXPORTER are documented here

For Prometheus, set OTEL_METRICS_EXPORTER to prometheus. This will start a second HTTP server, bound for localhost:9464 with the OpenTelemetry metrics. You can change this using:

  • OTEL_EXPORTER_PROMETHEUS_HOST
  • OTEL_EXPORTER_PROMETHEUS_PORT

Authentication

If you want to expose the metrics with authentication, you'll need a reverse proxy. You can configure it to proxy to http://localhost:9464/metrics and handle authentication in your reverse proxy however you like.

Settings

##################################
##### OBSERVABILITY SETTINGS #####
##################################

# String. Header name to use to extract a request or trace ID from. Typically set by a
# loadbalancer or proxy.
# Default: "X-Request-Id"
request-id-header: "X-Request-Id"

# Bool. Enable OpenTelemetry based tracing support.
# Default: false
tracing-enabled: false

# Bool. Enable OpenTelemetry based metrics support.
# Default: false
metrics-enabled: false