class ElasticAPM::Span::Context::Destination
@api private
Public Class Methods
from_uri(uri_or_str, type: nil, **attrs)
click to toggle source
# File lib/elastic_apm/span/context/destination.rb, line 55 def self.from_uri(uri_or_str, type: nil, **attrs) uri = normalize(uri_or_str) service = case type when 'http' then http_service(uri) else nil end new( address: uri.hostname, port: uri.port, service: service, **attrs ) end
new(service: nil, cloud: nil, **attrs)
click to toggle source
Calls superclass method
# File lib/elastic_apm/span/context/destination.rb, line 48 def initialize(service: nil, cloud: nil, **attrs) super(**attrs) self.service = build_service(service) self.cloud = build_cloud(cloud) end
Private Class Methods
http_service(uri)
click to toggle source
# File lib/elastic_apm/span/context/destination.rb, line 80 def http_service(uri) Service.new(resource: "#{uri.host}:#{uri.port}") end
normalize(uri_or_str)
click to toggle source
# File lib/elastic_apm/span/context/destination.rb, line 75 def normalize(uri_or_str) return uri_or_str.dup if uri_or_str.is_a?(URI) URI(uri_or_str) end
Private Instance Methods
build_cloud(cloud = nil)
click to toggle source
# File lib/elastic_apm/span/context/destination.rb, line 87 def build_cloud(cloud = nil) return Cloud.new unless cloud return cloud if cloud.is_a?(Cloud) Cloud.new(**cloud) end
build_service(service = nil)
click to toggle source
# File lib/elastic_apm/span/context/destination.rb, line 94 def build_service(service = nil) return Service.new unless service return service if service.is_a?(Service) Service.new(**service) end