diff --git a/docs/environment-variables.md b/docs/environment-variables.md index aa87438eb..902066648 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -147,20 +147,45 @@ and outputs it to `rcmgr.json.gz` Default: disabled (not set) # Tracing +For advanced configuration (e.g. ratio-based sampling), see also: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md -## `IPFS_TRACING` -Enables OpenTelemetry tracing. +## `OTEL_TRACES_EXPORTER` +Specifies the exporters to use as a comma-separated string. Each exporter has a set of additional environment variables used to configure it. The following values are supported: + +- `otlp` +- `jaeger` +- `zipkin` +- `file` -- appends traces to a JSON file on the filesystem + +Setting this enables OpenTelemetry tracing. **NOTE** Tracing support is experimental: releases may contain tracing-related breaking changes. -Default: false +Default: "" (no exporters) -## `IPFS_TRACING_JAEGER` -Enables the Jaeger exporter for OpenTelemetry. +## `OTLP Exporter` +Unless specified in this section, the OTLP exporter uses the environment variables documented here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md -For additional Jaeger exporter configuration, see: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md#jaeger-exporter +### `OTEL_EXPORTER_OTLP_PROTOCOL` +Specifies the OTLP protocol to use, which is one of: -Default: false +- `grpc` +- `http/protobuf` + +Default: "grpc" + +## `Jaeger Exporter` + +See: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md#jaeger-exporter + +## `Zipkin Exporter` +See: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md#zipkin-exporter + +## `File Exporter` +### `OTEL_EXPORTER_FILE_PATH` +Specifies the filesystem path for the JSON file. + +Default: "$PWD/traces.json" ### How to use Jaeger UI @@ -177,6 +202,7 @@ $ docker run --rm -it --name jaeger \ -p 5778:5778 \ -p 16686:16686 \ -p 14268:14268 \ + -p 14268:14269 \ -p 14250:14250 \ -p 9411:9411 \ jaegertracing/all-in-one @@ -184,34 +210,7 @@ $ docker run --rm -it --name jaeger \ Then, in other terminal, start go-ipfs with Jaeger tracing enabled: ``` -$ IPFS_TRACING=1 IPFS_TRACING_JAEGER=1 ipfs daemon +$ OTEL_TRACES_EXPORTER=jaeger ipfs daemon ``` Finally, the [Jaeger UI](https://github.com/jaegertracing/jaeger-ui#readme) is available at http://localhost:16686 - - -## `IPFS_TRACING_OTLP_HTTP` -Enables the OTLP HTTP exporter for OpenTelemetry. - -For additional exporter configuration, see: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md - -Default: false - -## `IPFS_TRACING_OTLP_GRPC` -Enables the OTLP gRPC exporter for OpenTelemetry. - -For additional exporter configuration, see: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md - -Default: false - -## `IPFS_TRACING_FILE` -Enables the file exporter for OpenTelemetry, writing traces to the given file in JSON format. - -Example: "/var/log/ipfs-traces.json" - -Default: "" (disabled) - -## `IPFS_TRACING_RATIO` -The ratio of traces to export, as a floating point value in the interval [0, 1]. - -Default: 1.0 (export all traces)