Module: OpenTelemetry::Exporter::OTLP::Common::Utilities

Extended by:
Utilities
Included in:
Utilities
Defined in:
lib/opentelemetry/exporter/otlp/common/utilities.rb

Overview

Contains common utilities used by the otlp exporters

Instance Method Summary collapse

Instance Method Details

#build_uri(endpoint, path = '', primary_src = '', secondary_src = 'OTEL_EXPORTER_OTLP_ENDPOINT', default = 'http://localhost:4318/') ⇒ Object

Builds a url using the endpoint defined and if not present uses the configured sources

Raises:

  • (ArgumentError)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/opentelemetry/exporter/otlp/common/utilities.rb', line 18

def build_uri(endpoint, path = '', primary_src = '', secondary_src = 'OTEL_EXPORTER_OTLP_ENDPOINT', default = 'http://localhost:4318/')
  endpoint ||= ENV.fetch(primary_src, nil)
  raise ArgumentError, "invalid url for OTLPExporter #{endpoint} set via #{primary_src}" unless endpoint.nil? || OpenTelemetry::Common::Utilities.valid_url?(endpoint)

  if endpoint.nil?
    endpoint = ENV.fetch(secondary_src, default)
    raise ArgumentError, "invalid url for OTLPExporter #{endpoint} set via #{secondary_src}" unless OpenTelemetry::Common::Utilities.valid_url?(endpoint)

    endpoint += '/' unless endpoint.end_with?('/')
    URI.join(endpoint, path)
  else
    URI(endpoint)
  end
end