Class: QaServer::PerformanceHistory

Inherits:
ActiveRecord::Base
  • Object
show all
Extended by:
PerformanceHistoryDataKeys
Defined in:
app/models/qa_server/performance_history.rb

Constant Summary

Constants included from PerformanceHistoryDataKeys

QaServer::PerformanceHistoryDataKeys::ALL_AUTH, QaServer::PerformanceHistoryDataKeys::AVG_FULL, QaServer::PerformanceHistoryDataKeys::AVG_LOAD, QaServer::PerformanceHistoryDataKeys::AVG_NORM, QaServer::PerformanceHistoryDataKeys::BY_DAY, QaServer::PerformanceHistoryDataKeys::BY_HOUR, QaServer::PerformanceHistoryDataKeys::BY_MONTH, QaServer::PerformanceHistoryDataKeys::FOR_DATATABLE, QaServer::PerformanceHistoryDataKeys::FOR_DAY, QaServer::PerformanceHistoryDataKeys::FOR_MONTH, QaServer::PerformanceHistoryDataKeys::FOR_YEAR, QaServer::PerformanceHistoryDataKeys::HIGH_FULL, QaServer::PerformanceHistoryDataKeys::HIGH_LOAD, QaServer::PerformanceHistoryDataKeys::HIGH_NORM, QaServer::PerformanceHistoryDataKeys::LOW_FULL, QaServer::PerformanceHistoryDataKeys::LOW_LOAD, QaServer::PerformanceHistoryDataKeys::LOW_NORM, QaServer::PerformanceHistoryDataKeys::STATS

Class Method Summary collapse

Class Method Details

.performance_data(datatype: :datatable) ⇒ Object

Performance data for a day, a month, a year, and all time for each authority.

Examples:

{ all_authorities:
  { datatable_stats:
    { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }
  }
  { day:
    { 0: { hour: '1400', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      1: { hour: '1500', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      2: { hour: '1600', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      ...,
      23: { hour: 'NOW', load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }}
    }
  }
  { month:
    { 0: { day: '07-15-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      1: { day: '07-16-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      2: { day: '07-17-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      ...,
      29: { day: 'TODAY', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }}
    }
  }
  { year:
    { 0: { month: '09-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      1: { month: '10-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      2: { month: '11-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }},
      ...,
      11: { month: '08-2019', stats: { load_avg_ms: 12.3, normalization_avg_ms: 4.2, full_request_avg_ms: 16.5, etc. }}
    }
  }
  { AGROVOC_LD4L_CACHE: ... # same data for each authority  }
}

Parameters:

  • datatype (Symbol) (defaults to: :datatable) —

    what type of data should be calculated (e.g. :datatable, :graph, :all)



64
65
66
67
68
69
# File 'app/models/qa_server/performance_history.rb', line 64

def performance_data(datatype: :datatable)
  return if datatype == :none
  data = calculate_data(datatype)
  graphing_service_class.create_performance_graphs(performance_data: data) if calculate_graphdata? datatype
  data
end

.save_result(dt_stamp:, authority:, action:, size_bytes:, load_time_ms:, normalization_time_ms:) ⇒ Object

Save a scenario result

Parameters:

  • run_id (Integer) —

    the run on which to gather statistics

  • result (Hash) —

    the scenario result to be saved



21
22
23
24
25
26
27
28
# File 'app/models/qa_server/performance_history.rb', line 21

def save_result(dt_stamp:, authority:, action:, size_bytes:, load_time_ms:, normalization_time_ms:) # rubocop:disable Metrics/ParameterLists
  create(dt_stamp: dt_stamp,
         authority: authority,
         action: action,
         size_bytes: size_bytes,
         load_time_ms: load_time_ms,
         normalization_time_ms: normalization_time_ms)
end