Sha256: b9187d9de8c73008b1d8e56c6ae3ca961e2d59f057f2c7fabe54127673785e26

Contents?: true

Size: 1.18 KB

Versions: 23

Compression:

Stored size: 1.18 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

module NewRelic
  module Agent
    module Hostname
      def self.get
        dyno_name = ENV['DYNO']
        @hostname ||= if dyno_name && ::NewRelic::Agent.config[:'heroku.use_dyno_names']
          matching_prefix = heroku_dyno_name_prefix(dyno_name)
          dyno_name = "#{matching_prefix}.*" if matching_prefix
          dyno_name
        else
          Socket.gethostname
        end
      end

      def self.heroku_dyno_name_prefix(dyno_name)
        get_dyno_prefixes.find do |dyno_prefix|
          dyno_name.start_with?(dyno_prefix + ".")
        end
      end

      def self.get_dyno_prefixes
        ::NewRelic::Agent.config[:'heroku.dyno_name_prefixes_to_shorten']
      end

      LOCALHOST = %w[
        localhost
        0.0.0.0
        127.0.0.1
        0:0:0:0:0:0:0:1
        0:0:0:0:0:0:0:0
        ::1
        ::
      ].freeze

      def self.local? host_or_ip
        LOCALHOST.include?(host_or_ip)
      end

      def self.get_external host_or_ip
        local?(host_or_ip) ? get : host_or_ip
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
newrelic_rpm-6.0.0.351 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.7.0.350 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.6.0.349 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.5.0.348 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.4.0.347 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.3.0.346 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.2.0.345 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.1.0.344 lib/new_relic/agent/hostname.rb
newrelic_rpm-5.0.0.342 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.8.0.341 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.7.1.340 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.7.0.339 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.6.0.338 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.5.0.337 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.4.0.336 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.3.0.335 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.2.0.334 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.1.0.333 lib/new_relic/agent/hostname.rb
newrelic_rpm-4.0.0.332 lib/new_relic/agent/hostname.rb
newrelic_rpm-3.18.1.330 lib/new_relic/agent/hostname.rb