class Invoca::Metrics::Prometheus::DeclareMetrics::Histogram
Attributes
buckets[R]
Public Class Methods
new(name, type, source, metric, buckets:, labels:, graphite:)
click to toggle source
Calls superclass method
Invoca::Metrics::Prometheus::DeclareMetrics::Base::new
# File lib/invoca/metrics/prometheus/declare_metrics/histogram.rb, line 16 def initialize(name, type, source, metric, buckets:, labels:, graphite:) @buckets = buckets super(name, type, source, metric, labels: labels, graphite: graphite) end
Public Instance Methods
add(value = :'1', **labels)
click to toggle source
# File lib/invoca/metrics/prometheus/declare_metrics/histogram.rb, line 21 def add(value = :'1', **labels) if value == :'1' value = 1 ActiveSupport::Deprecation.warn("histogram default value of 1 is deprecated; please pass an explicit value") end if metric.present? metric.observe(value, default_labels.merge(labels)) if metric.present? else warn("Histogram being used without metric being present") end if graphite Invoca::Metrics::Client.metrics.timer(render_graphite_string(**default_labels.merge(labels)), value) end end
time(return_timing: false, **labels) { || ... }
click to toggle source
# File lib/invoca/metrics/prometheus/declare_metrics/histogram.rb, line 38 def time(return_timing: false, **labels) result = nil elapsed_time = Benchmark.realtime { result = yield } elapsed_time_ms = (elapsed_time * 1000).to_i add(elapsed_time_ms, **labels) return_timing ? [result, elapsed_time_ms] : result end