Class: Ask::Monitoring::Metrics::ResponseTime
- Defined in:
- lib/ask/monitoring/metrics/response_time.rb
Overview
Computes response time percentiles from Ask::Event records.
Supports p50, p95, p99 latency queries.
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#percentiles ⇒ Hash
(also: #as_chart_data)
Percentile data: { p50: Float, p95: Float, p99: Float }.
Methods inherited from Base
Constructor Details
This class inherits a constructor from Ask::Monitoring::Metrics::Base
Instance Method Details
#percentiles ⇒ Hash Also known as: as_chart_data
Returns Percentile data: { p50: Float, p95: Float, p99: Float }.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/ask/monitoring/metrics/response_time.rb', line 9 def percentiles durations = scope.pluck(:duration).compact return { p50: 0, p95: 0, p99: 0 } if durations.empty? sorted = durations.sort { p50: percentile(sorted, 50), p95: percentile(sorted, 95), p99: percentile(sorted, 99) } end |