From a556e79623cfa3670f843fc16b22d000b5ee01cf Mon Sep 17 00:00:00 2001 From: Tigran Najaryan Date: Fri, 30 Jul 2021 09:21:42 +0400 Subject: [PATCH] Change OTLP/HTTP port from 4317 to 4318 Related to https://github.com/open-telemetry/opentelemetry-specification/issues/1816 Fixes https://github.com/open-telemetry/opentelemetry-specification/issues/1835 Some historical context: we wanted to make grpc and http use the same port and we had an open issue in the Collector to do so: https://github.com/open-telemetry/opentelemetry-collector/issues/1256 The conclusion appears to be that there are technical hurdles that make it unfeasible: https://github.com/open-telemetry/opentelemetry-collector/issues/1256#issuecomment-880048833 Because of that we need to keep grpc and http ports separate. I believe this means we need to change the spec to say that otlp/http uses port 4318. Once this PR is merged we will also neeed to submit for port 4318 registration with IANA like we did previously with 4317 (https://github.com/open-telemetry/opentelemetry-specification/issues/1148#issuecomment-725067404). --- specification/protocol/exporter.md | 2 +- specification/protocol/otlp.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index c386707f2b9..3a4d3922cce 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -10,7 +10,7 @@ The following configuration options MUST be available to configure the OTLP expo | Configuration Option | Description | Default | Env variable | | -------------------- | ------------------------------------------------------------ | ----------------- | ------------------------------------------------------------ | -| Endpoint (OTLP/HTTP) | Target to which the exporter is going to send spans or metrics. The endpoint MUST be a valid URL with scheme (http or https) and host, and MAY contain a port and path. A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters SHOULD follow the collector convention of appending the version and signal to the path (e.g. `v1/traces` or `v1/metrics`), if not present already. The per-signal endpoint configuration options take precedence and can be used to override this behavior. See the [OTLP Specification][otlphttp-req] for more details. | `https://localhost:4317` | `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | +| Endpoint (OTLP/HTTP) | Target to which the exporter is going to send spans or metrics. The endpoint MUST be a valid URL with scheme (http or https) and host, and MAY contain a port and path. A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters SHOULD follow the collector convention of appending the version and signal to the path (e.g. `v1/traces` or `v1/metrics`), if not present already. The per-signal endpoint configuration options take precedence and can be used to override this behavior. See the [OTLP Specification][otlphttp-req] for more details. | `https://localhost:4318` | `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | | Endpoint (OTLP/gRPC) | Target to which the exporter is going to send spans or metrics. The endpoint SHOULD accept any form allowed by the underlying gRPC client implementation. Additionally, the endpoint MUST accept a URL with a scheme of either `http` or `https`. A scheme of `https` indicates a secure connection and takes precedence over the `insecure` configuration setting. If the gRPC client implementation does not support an endpoint with a scheme of `http` or `https` then the endpoint SHOULD be transformed to the most sensible format for that implementation. | `https://localhost:4317` | `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | | Insecure | Whether to enable client transport security for the exporter's gRPC connection. This option only applies to OTLP/gRPC - OTLP/HTTP always uses the scheme provided for the `endpoint`. Implementations MAY choose to not implement the `insecure` option if it is not required or supported by the underlying gRPC client implementation. | `false` | `OTEL_EXPORTER_OTLP_INSECURE` `OTEL_EXPORTER_OTLP_SPAN_INSECURE` `OTEL_EXPORTER_OTLP_METRIC_INSECURE` | | Certificate File | The trusted certificate to use when verifying a server's TLS credentials. Should only be used for a secure connection. | n/a | `OTEL_EXPORTER_OTLP_CERTIFICATE` `OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE` `OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE` | diff --git a/specification/protocol/otlp.md b/specification/protocol/otlp.md index 6c83e2dc571..16ffe30fd14 100644 --- a/specification/protocol/otlp.md +++ b/specification/protocol/otlp.md @@ -473,7 +473,7 @@ connections SHOULD be configurable. #### OTLP/HTTP Default Port -The default network port for OTLP/HTTP is 4317. +The default network port for OTLP/HTTP is 4318. ## Implementation Recommendations