Module: ElasticAPM::Util
- Defined in:
- lib/elastic_apm/util.rb,
lib/elastic_apm/util/deep_dup.rb,
lib/elastic_apm/util/throttle.rb,
lib/elastic_apm/util/inflector.rb,
lib/elastic_apm/util/lru_cache.rb,
lib/elastic_apm/util/precision_validator.rb
Overview
rubocop:disable all
Defined Under Namespace
Modules: Inflector, PrecisionValidator Classes: DeepDup, LruCache, Throttle
Class Method Summary collapse
- .git_sha ⇒ Object private
- .hex_to_bits(str) ⇒ Object private
- .micros(target = Time.now) ⇒ Object private
- .monotonic_micros ⇒ Object private
- .reverse_merge!(first, *others) ⇒ Object private
- .truncate(value, max_length: 1024) ⇒ Object private
Class Method Details
.git_sha ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
32 33 34 35 |
# File 'lib/elastic_apm/util.rb', line 32 def self.git_sha sha = `git rev-parse --verify HEAD 2>&1`.chomp $?&.success? ? sha : nil end |
.hex_to_bits(str) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
37 38 39 |
# File 'lib/elastic_apm/util.rb', line 37 def self.hex_to_bits(str) str.hex.to_s(2).rjust(str.size * 4, '0') end |
.micros(target = Time.now) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
23 24 25 26 |
# File 'lib/elastic_apm/util.rb', line 23 def self.micros(target = Time.now) utc = target.utc utc.to_i * 1_000_000 + utc.usec end |
.monotonic_micros ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/elastic_apm/util.rb', line 28 def self.monotonic_micros Process.clock_gettime(Process::CLOCK_MONOTONIC, :microsecond) end |
.reverse_merge!(first, *others) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
41 42 43 44 45 |
# File 'lib/elastic_apm/util.rb', line 41 def self.reverse_merge!(first, *others) others.reduce(first) do |curr, other| curr.merge!(other) { |_, _, new| new } end end |
.truncate(value, max_length: 1024) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
47 48 49 50 51 52 53 54 |
# File 'lib/elastic_apm/util.rb', line 47 def self.truncate(value, max_length: 1024) return unless value value = String(value) return value if value.length <= max_length value[0...(max_length - 1)] + '…' end |