Sha256: e7c46706a315fa648b72fad936364e7f4862e98b517a897b5b93a1ccdd3e5493

Contents?: true

Size: 622 Bytes

Versions: 8

Compression:

Stored size: 622 Bytes

Contents

# encoding: UTF-8

require 'prometheus/client/metric'
require 'prometheus/client/valuetype'

module Prometheus
  module Client
    # Counter is a metric that exposes merely a sum or tally of things.
    class Counter < Metric
      def type
        :counter
      end

      def increment(labels = {}, by = 1)
        raise ArgumentError, 'increment must be a non-negative number' if by < 0

        label_set = label_set_for(labels)
        synchronize { @values[label_set].increment(by) }
      end

      private

      def default(labels)
        ValueClass.new(type, @name, @name, labels)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
prometheus-client-mmap-0.7.0.beta8 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta7 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta6 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta5 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta4 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta3 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta2 lib/prometheus/client/counter.rb
prometheus-client-mmap-0.7.0.beta1 lib/prometheus/client/counter.rb