From 477b1fb13e3a9f5c422f24b51d32b78eaeb485b7 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). --- CHANGELOG.md | 3 +++ specification/protocol/exporter.md | 2 +- specification/protocol/otlp.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfd544ed5ac..89d72d9d41d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,9 @@ release. - Adding requirement to implement at least one of two transports: `grpc` or `http/protobuf`. ([#1790](/~https://github.com/open-telemetry/opentelemetry-specification/pull/1790/files)) +- Change OTLP/HTTP port from 4317 to 4318. + ([#](/~https://github.com/open-telemetry/opentelemetry-specification/pull/)) + ### SDK Configuration ## v1.5.0 (2021-07-08) 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