From 61cd7a6bde6395241eb3357749802e9566854a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 26 Oct 2023 10:46:04 +0200 Subject: [PATCH 01/11] Clarify OTLP exporter configuration endpoints handling --- specification/protocol/exporter.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index a7d5a02fa21..7d6fdf24771 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -12,11 +12,11 @@ This document specifies the configuration options available to the OpenTelemetry The following configuration options MUST be available to configure the OTLP exporter. Each configuration option MUST be overridable by a signal specific option. -- **Endpoint (OTLP/HTTP)**: Target URL 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, MAY contain a port, SHOULD contain a path and MUST NOT contain other parts (such as query string or fragment). A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. +- **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. The option MUST accept be a valid URL with scheme (`http` or `https`) and host, MUST accept an optional port, MAY not accept a path that contains other parts (such as query string or fragment). A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. - Default: `http://localhost:4318` [1] - Env vars: `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` `OTEL_EXPORTER_OTLP_LOGS_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. A scheme of `http` indicates an insecure 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. +- **Endpoint (OTLP/gRPC)**: Target to which the exporter is going to send spans or metrics. The option SHOULD accept any form allowed by the underlying gRPC client implementation. Additionally, the option 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. A scheme of `http` indicates an insecure 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. - Default: `http://localhost:4317` [1] - Env vars: `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` From 98ae0e6d92dbd1d4a46b38e8208e6e1860135190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 26 Oct 2023 11:08:07 +0200 Subject: [PATCH 02/11] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 517e63ac1f1..f5c836a0eda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ release. - New exporter implementations do not need to support `OTEL_EXPORTER_OTLP_SPAN_INSECURE` and `OTEL_EXPORTER_OTLP_METRIC_INSECURE`. ([#3719](https://github.com/open-telemetry/opentelemetry-specification/pull/3719)) +- Clarify exporter's endpoints configuration options handling. + ([#3739](https://github.com/open-telemetry/opentelemetry-specification/pull/3739)) ### Compatibility From 61e46358b819fa818c72c84dcf85f532633bcacd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 31 Oct 2023 11:45:22 +0100 Subject: [PATCH 03/11] Update specification/protocol/exporter.md Co-authored-by: Georg Pirklbauer --- specification/protocol/exporter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 7d6fdf24771..2e38ccb0eac 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -12,7 +12,7 @@ This document specifies the configuration options available to the OpenTelemetry The following configuration options MUST be available to configure the OTLP exporter. Each configuration option MUST be overridable by a signal specific option. -- **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. The option MUST accept be a valid URL with scheme (`http` or `https`) and host, MUST accept an optional port, MAY not accept a path that contains other parts (such as query string or fragment). A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. +- **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. The option MUST accept a valid URL with scheme (`http` or `https`) and host, MUST accept an optional port, MAY not accept a path that contains other parts (such as query string or fragment). A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. - Default: `http://localhost:4318` [1] - Env vars: `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` From fccf5c8a217a47b323a32e8dd3ea5088931bbfcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 31 Oct 2023 11:57:23 +0100 Subject: [PATCH 04/11] Update exporter.md --- specification/protocol/exporter.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 2e38ccb0eac..6b82c2cc4e0 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -12,7 +12,16 @@ This document specifies the configuration options available to the OpenTelemetry The following configuration options MUST be available to configure the OTLP exporter. Each configuration option MUST be overridable by a signal specific option. -- **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. The option MUST accept a valid URL with scheme (`http` or `https`) and host, MUST accept an optional port, MAY not accept a path that contains other parts (such as query string or fragment). A scheme of https indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. +- **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. + The option: + - MUST accept be a valid URL with scheme (`http` or `https`) and host, + - MUST accept an optional port, + - MUST accept an optional path, + - MAY not accept a query string, + - MAY not accept a fragment. + + A scheme of `https` indicates a secure connection. + When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. - Default: `http://localhost:4318` [1] - Env vars: `OTEL_EXPORTER_OTLP_ENDPOINT` `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` From 22f3f45c883626453726ce7a778c9cb8e17de4f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 2 Nov 2023 15:57:01 +0100 Subject: [PATCH 05/11] Update exporter.md --- specification/protocol/exporter.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 0be651348b2..3ecae107743 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -16,7 +16,8 @@ Each configuration option MUST be overridable by a signal specific option. - **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. The option: - - MUST accept be a valid URL with scheme (`http` or `https`) and host, + - MUST accept a scheme (`http` or `https`), + - MUST accept a host, - MUST accept an optional port, - MUST accept an optional path, - MAY not accept a query string, From 57f4410ecf3e430541427e94405c8507e1dbc89f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 2 Nov 2023 16:25:24 +0100 Subject: [PATCH 06/11] Update exporter.md --- specification/protocol/exporter.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 3ecae107743..e7b29cf42f9 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -15,13 +15,18 @@ The configuration options MAY be implemented directly in the OTLP exporter, in t Each configuration option MUST be overridable by a signal specific option. - **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. - The option: - - MUST accept a scheme (`http` or `https`), - - MUST accept a host, - - MUST accept an optional port, - - MUST accept an optional path, - - MAY not accept a query string, - - MAY not accept a fragment. + The option MUST honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): + - scheme (`http` or `https`), + - host, + - port, + - path. + + The option SHOULD honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): + - userinfo. + + The option MAY not honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): + - query, + - fragment. A scheme of `https` indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. From a2ce03d9a57cf77bd3fdd30d8c6edd52100b1892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Fri, 10 Nov 2023 07:41:39 +0100 Subject: [PATCH 07/11] Update CHANGELOG.md --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 141ea653e12..ae7bca76802 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,9 @@ release. ### OpenTelemetry Protocol +- Clarify exporter's endpoints configuration options handling. + ([#3739](https://github.com/open-telemetry/opentelemetry-specification/pull/3739)) + ### Compatibility ### SDK Configuration @@ -55,8 +58,6 @@ release. - New exporter implementations do not need to support `OTEL_EXPORTER_OTLP_SPAN_INSECURE` and `OTEL_EXPORTER_OTLP_METRIC_INSECURE`. ([#3719](https://github.com/open-telemetry/opentelemetry-specification/pull/3719)) -- Clarify exporter's endpoints configuration options handling. - ([#3739](https://github.com/open-telemetry/opentelemetry-specification/pull/3739)) ### Compatibility From 50acf6b910cbf62cbda53a325f2a307f23c0192b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 14 Nov 2023 15:35:55 +0100 Subject: [PATCH 08/11] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae7bca76802..9ca7ca8a9cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ release. ### OpenTelemetry Protocol -- Clarify exporter's endpoints configuration options handling. +- Clarify HTTP endpoint configuration option handling. ([#3739](https://github.com/open-telemetry/opentelemetry-specification/pull/3739)) ### Compatibility From 398f3755cbc1d454a539292805c6129b46008351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 14 Nov 2023 17:36:59 +0100 Subject: [PATCH 09/11] Update exporter.md --- specification/protocol/exporter.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 03be4d96ad3..4c2a525503c 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -15,17 +15,17 @@ Each configuration option MUST be overridable by a signal specific option. - **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans or metrics. The option MUST honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - - scheme (`http` or `https`), - - host, - - port, - - path. + - scheme (`http` or `https`) + - host + - port + - path The option SHOULD honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - - userinfo. + - userinfo The option MAY not honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - - query, - - fragment. + - query + - fragment A scheme of `https` indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details. From 2ca223021a1962e3f11972f99652cbf94cff22a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 14 Nov 2023 17:50:18 +0100 Subject: [PATCH 10/11] Update specification/protocol/exporter.md --- specification/protocol/exporter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 4c2a525503c..acb7454da09 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -23,7 +23,7 @@ Each configuration option MUST be overridable by a signal specific option. The option SHOULD honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - userinfo - The option MAY not honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): + The option MAY ignore the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - query - fragment From 81b4f191cff7258b5bab21c30e8066bf99c8a052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 28 Nov 2023 11:58:03 +0100 Subject: [PATCH 11/11] Update exporter.md --- specification/protocol/exporter.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/specification/protocol/exporter.md b/specification/protocol/exporter.md index 1901e1fea64..22cf934c613 100644 --- a/specification/protocol/exporter.md +++ b/specification/protocol/exporter.md @@ -14,18 +14,13 @@ The following configuration options MUST be available to configure the OTLP expo Each configuration option MUST be overridable by a signal specific option. - **Endpoint (OTLP/HTTP)**: Target URL to which the exporter is going to send spans, metrics, or logs. - The option MUST honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): + The implementation MUST honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - scheme (`http` or `https`) - host - port - path - The option SHOULD honor the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - - userinfo - - The option MAY ignore the following [URL components](https://datatracker.ietf.org/doc/html/rfc3986#section-3): - - query - - fragment + The implementation MAY ignore all other URL components. A scheme of `https` indicates a secure connection. When using `OTEL_EXPORTER_OTLP_ENDPOINT`, exporters MUST construct per-signal URLs as [described below](#endpoint-urls-for-otlphttp). The per-signal endpoint configuration options take precedence and can be used to override this behavior (the URL is used as-is for them, without any modifications). See the [OTLP Specification][otlphttp-req] for more details.