Sha256: d015603a0fddd71edd09e06d9b25a5443b414d0672e2f590e63045e769412b6b

Contents?: true

Size: 698 Bytes

Versions: 20

Compression:

Stored size: 698 Bytes

Contents

# frozen_string_literal: true

module Nanoc::Telemetry
  class LabelledSummary
    def initialize
      @summaries = {}
    end

    def observe(value, label)
      get(label).observe(value)
    end

    def get(label)
      @summaries.fetch(label) { @summaries[label] = Summary.new }
    end

    def empty?
      @summaries.empty?
    end

    def quantile(fraction, label)
      get(label).quantile(fraction)
    end

    def map
      @summaries.map { |(label, summary)| yield(label, summary) }
    end

    # TODO: add quantiles(fraction)
    # TODO: add min(label)
    # TODO: add mins
    # TODO: add max(label)
    # TODO: add maxs
    # TODO: add sum(label)
    # TODO: add sums
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
nanoc-4.8.14 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.13 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.12 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.11 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.10 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.9 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.8 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.7 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.6 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.5 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.4 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.3 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.2 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.1 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.8.0 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.7.14 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.7.13 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.7.12 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.7.11 lib/nanoc/telemetry/labelled_summary.rb
nanoc-4.7.10 lib/nanoc/telemetry/labelled_summary.rb