Class: RailsPulse::Queries::Charts::ExecutionVolume

Inherits:
Charts::Base
  • Object
show all
Defined in:
app/models/rails_pulse/queries/charts/execution_volume.rb

Instance Method Summary collapse

Methods inherited from Charts::Base

#initialize

Constructor Details

This class inherits a constructor from RailsPulse::Charts::Base

Instance Method Details

#to_chart_dataObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/models/rails_pulse/queries/charts/execution_volume.rb', line 5

def to_chart_data
  summaries = base_summary_query
    .group(:period_start)
    .select(
      :period_start,
      "SUM(count) as total_count"
    )

  # Build raw_data hash from grouped results
  raw_data = {}
  summaries.each do |summary|
    timestamp = summary.period_start.to_i
    raw_data[timestamp] = summary.total_count || 0
  end

  # Pad missing data with zeros using base class helper
  execution_data = pad_data_with_zeros(raw_data, @start_time, @end_time, time_step)

  # Build labels array (timestamps in milliseconds for JavaScript)
  labels = execution_data.keys.map { |timestamp| timestamp * 1000 }

  # Build series data
  series = [ {
    name: "Executions",
    data: execution_data.values,
    type: "bar",
    color: RailsPulse::ChartColors::DEFAULT
  } ]

  {
    labels: labels,
    series: series
  }
end