# 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>
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