Sha256: a58a8d7987b4dafc42dc852e14d523735eeba923b6fc4c9faecd6f1e78f801cf
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true require 'json' module SqlMonitor class TrackingSqlsController < ActionController::Base layout "base" def not_found respond_to do |format| format.any { head :not_found } end end def index return not_found if Rails.env.production? || SqlMonitor.handler.nil? @versions = SqlMonitor.handler.redis.get('all_versions') if @versions.nil? || @versions.empty? @versions = [] else @versions = JSON.parse(SqlMonitor.handler.redis.get('all_versions'), {:symbolize_names => true}) end @data = [] @selectedVersion = '' if params[:version] data = [] @selectedVersion = params[:version] SqlMonitor.handler.redis.scan_each(match: @selectedVersion + ":*") do |v| data << JSON.parse(SqlMonitor.handler.redis.mGet(v).first, {:symbolize_names => true}).merge({sql_key: v.split(':')[1]}) end @data = format_data(sort_data(data, 'count')) end end private def sort_data(data, sort_by) data.sort_by do |d| if sort_by == 'duration' -d[:duration].to_f / d[:count] else -d[:count] end end end def format_data(sorted_data) formatedData = []; sorted_data.each do |row| formatedData.push({ sql_key: row[:sql_key], count: row[:count].to_s, duration: row[:duration].to_f / row[:count], sql: row[:sql], source: row[:source].uniq.join("<br/>") }) end formatedData end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sql_monitor-0.1.2 | app/controllers/sql_monitor/tracking_sqls_controller.rb |
sql_monitor-0.1.1 | app/controllers/sql_monitor/tracking_sqls_controller.rb |