Skip to content

Commit

Permalink
Correct the comment for the priority of options and environments on …
Browse files Browse the repository at this point in the history
…otlptracehttp (#5584)

part of #5379
  • Loading branch information
XSAM authored Jul 9, 2024
1 parent 74eb0bf commit aab5af1
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 7 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

## [Unreleased]

### Fixed

- Correct comments for the priority of the `WithEndpoint` and `WithEndpointURL` options and their corresponding environment variables in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#5584)

<!-- Released section -->
<!-- Don't change this section unless doing release -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,26 @@ func TestConfigs(t *testing.T) {
assert.Equal(t, "/v1/traces", c.Traces.URLPath)
},
},
{
name: "Test With Endpoint last used",
opts: []GenericOption{
WithEndpointURL("https://someendpoint/somepath"),
WithEndpoint("someendpoint2"),
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "someendpoint2", c.Traces.Endpoint)
},
},
{
name: "Test With WithEndpointURL last used",
opts: []GenericOption{
WithEndpoint("someendpoint2"),
WithEndpointURL("https://someendpoint/somepath"),
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "someendpoint", c.Traces.Endpoint)
},
},
{
name: "Test Environment Endpoint",
env: map[string]string{
Expand Down Expand Up @@ -159,15 +179,31 @@ func TestConfigs(t *testing.T) {
{
name: "Test Mixed Environment and With Endpoint",
opts: []GenericOption{
WithEndpointURL("https://traces_endpoint2/somepath"),
WithEndpoint("traces_endpoint"),
},
env: map[string]string{
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "env_endpoint2",
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "traces_endpoint", c.Traces.Endpoint)
},
},
{
name: "Test Mixed Environment and With Endpoint",
opts: []GenericOption{
WithEndpoint("traces_endpoint"),
WithEndpointURL("https://traces_endpoint2/somepath"),
},
env: map[string]string{
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "env_endpoint2",
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "traces_endpoint2", c.Traces.Endpoint)
},
},
{
name: "Test Environment Endpoint with HTTP scheme",
env: map[string]string{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,26 @@ func TestConfigs(t *testing.T) {
assert.Equal(t, "/v1/traces", c.Traces.URLPath)
},
},
{
name: "Test With Endpoint last used",
opts: []GenericOption{
WithEndpointURL("https://someendpoint/somepath"),
WithEndpoint("someendpoint2"),
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "someendpoint2", c.Traces.Endpoint)
},
},
{
name: "Test With WithEndpointURL last used",
opts: []GenericOption{
WithEndpoint("someendpoint2"),
WithEndpointURL("https://someendpoint/somepath"),
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "someendpoint", c.Traces.Endpoint)
},
},
{
name: "Test Environment Endpoint",
env: map[string]string{
Expand Down Expand Up @@ -159,15 +179,31 @@ func TestConfigs(t *testing.T) {
{
name: "Test Mixed Environment and With Endpoint",
opts: []GenericOption{
WithEndpointURL("https://traces_endpoint2/somepath"),
WithEndpoint("traces_endpoint"),
},
env: map[string]string{
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "env_endpoint2",
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "traces_endpoint", c.Traces.Endpoint)
},
},
{
name: "Test Mixed Environment and With Endpoint",
opts: []GenericOption{
WithEndpoint("traces_endpoint"),
WithEndpointURL("https://traces_endpoint2/somepath"),
},
env: map[string]string{
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "env_endpoint2",
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "traces_endpoint2", c.Traces.Endpoint)
},
},
{
name: "Test Environment Endpoint with HTTP scheme",
env: map[string]string{
Expand Down
11 changes: 7 additions & 4 deletions exporters/otlp/otlptrace/otlptracehttp/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,10 @@ func (w wrappedOption) applyHTTPOption(cfg otlpconfig.Config) otlpconfig.Config
//
// If the OTEL_EXPORTER_OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
// environment variable is set, and this option is not passed, that variable
// value will be used. If both are set, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
// will take precedence. Note, both environment variables include the full
// value will be used. If both environment variables are set,
// OTEL_EXPORTER_OTLP_TRACES_ENDPOINT will take precedence. If an environment
// variable is set, and this option is passed, this option will take precedence.
// Note, both environment variables include the full
// scheme and path, while WithEndpoint sets only the host and port.
//
// If both this option and WithEndpointURL are used, the last used option will
Expand All @@ -82,8 +84,9 @@ func WithEndpoint(endpoint string) Option {
//
// If the OTEL_EXPORTER_OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
// environment variable is set, and this option is not passed, that variable
// value will be used. If both are set, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
// will take precedence.
// value will be used. If both environment variables are set,
// OTEL_EXPORTER_OTLP_TRACES_ENDPOINT will take precedence. If an environment
// variable is set, and this option is passed, this option will take precedence.
//
// If both this option and WithEndpoint are used, the last used option will
// take precedence.
Expand Down
38 changes: 37 additions & 1 deletion internal/shared/otlp/otlptrace/otlpconfig/options_test.go.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,26 @@ func TestConfigs(t *testing.T) {
assert.Equal(t, "/v1/traces", c.Traces.URLPath)
},
},
{
name: "Test With Endpoint last used",
opts: []GenericOption{
WithEndpointURL("https://someendpoint/somepath"),
WithEndpoint("someendpoint2"),
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "someendpoint2", c.Traces.Endpoint)
},
},
{
name: "Test With WithEndpointURL last used",
opts: []GenericOption{
WithEndpoint("someendpoint2"),
WithEndpointURL("https://someendpoint/somepath"),
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "someendpoint", c.Traces.Endpoint)
},
},
{
name: "Test Environment Endpoint",
env: map[string]string{
Expand Down Expand Up @@ -159,15 +179,31 @@ func TestConfigs(t *testing.T) {
{
name: "Test Mixed Environment and With Endpoint",
opts: []GenericOption{
WithEndpointURL("https://traces_endpoint2/somepath"),
WithEndpoint("traces_endpoint"),
},
env: map[string]string{
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "env_endpoint2",
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "traces_endpoint", c.Traces.Endpoint)
},
},
{
name: "Test Mixed Environment and With Endpoint",
opts: []GenericOption{
WithEndpoint("traces_endpoint"),
WithEndpointURL("https://traces_endpoint2/somepath"),
},
env: map[string]string{
"OTEL_EXPORTER_OTLP_ENDPOINT": "env_endpoint",
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT": "env_endpoint2",
},
asserts: func(t *testing.T, c *Config, grpcOption bool) {
assert.Equal(t, "traces_endpoint2", c.Traces.Endpoint)
},
},
{
name: "Test Environment Endpoint with HTTP scheme",
env: map[string]string{
Expand Down

0 comments on commit aab5af1

Please sign in to comment.