lib/ddmetrics/printer.rb in ddmetrics-1.0.0 vs lib/ddmetrics/printer.rb in ddmetrics-1.0.1

- old
+ new

@@ -1,49 +1,49 @@ # frozen_string_literal: true module DDMetrics class Printer def summary_to_s(summary) - DDMetrics::Table.new(table_for_summary(summary)).to_s + table_for_summary(summary).to_s end def counter_to_s(counter) - DDMetrics::Table.new(table_for_counter(counter)).to_s + table_for_counter(counter).to_s end private - def label_to_s(label) - label.to_a.sort.map { |pair| pair.join('=') }.join(' ') - end - def table_for_summary(summary) - headers = ['', 'count', 'min', '.50', '.90', '.95', 'max', 'tot'] + header_labels = nil + headers = ['count', 'min', '.50', '.90', '.95', 'max', 'tot'] rows = summary.labels.map do |label| + header_labels ||= label.to_a.sort.map(&:first).map(&:to_s) stats = summary.get(label) count = stats.count min = stats.min p50 = stats.quantile(0.50) p90 = stats.quantile(0.90) p95 = stats.quantile(0.95) tot = stats.sum max = stats.max - [label_to_s(label), count.to_s] + [min, p50, p90, p95, max, tot].map { |r| format('%4.2f', r) } + label.to_a.sort.map(&:last).map(&:to_s) + [count.to_s] + [min, p50, p90, p95, max, tot].map { |r| format('%4.2f', r) } end - [headers] + rows + DDMetrics::Table.new([header_labels + headers] + rows, num_headers: header_labels.size) end def table_for_counter(counter) - headers = ['', 'count'] + header_labels = nil + headers = ['count'] rows = counter.labels.map do |label| - [label_to_s(label), counter.get(label).to_s] + header_labels ||= label.to_a.sort.map(&:first).map(&:to_s) + label.to_a.sort.map(&:last).map(&:to_s) + [counter.get(label).to_s] end - [headers] + rows + DDMetrics::Table.new([header_labels + headers] + rows, num_headers: header_labels.size) end end end