Sha256: 1d3f35a108b810e24dea897e80c9b733df8d4fbca1b6899137665b618586c000

Contents?: true

Size: 882 Bytes

Versions: 2

Compression:

Stored size: 882 Bytes

Contents

# frozen_string_literal: true

require 'active_support/core_ext/string/inflections'

module Traxor
  module Metric
    def self.count(name, value, tags = {})
      log("count##{name}=#{value} #{tag_string(tags)}")
    end

    def self.measure(name, value, tags = {})
      log("measure##{name}=#{value} #{tag_string(tags)}")
    end

    def self.sample(name, value, tags = {})
      log("sample##{name}=#{value} #{tag_string(tags)}")
    end

    def self.tag_string(tags)
      Hash(tags).merge(Traxor::Tags.all).map do |tag_name, tag_value|
        "tag##{tag_name}=#{tag_value}"
      end.join(' ')
    end

    def self.normalize_values(value)
      value.to_s.gsub(/::/, '.').underscore.strip
    end

    def self.log(string)
      return unless Traxor.enabled?

      logger.info(normalize_values(string))
    end

    def self.logger
      Traxor.logger
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
traxor-0.1.20 lib/traxor/metric.rb
traxor-0.1.19 lib/traxor/metric.rb