app/controllers/redis_web_manager/dashboard_controller.rb
# frozen_string_literal: true
module RedisWebManager
class DashboardController < ApplicationController
# GET /dashboard
def index
@information = stats.map { |k, v| { name: k.to_s.humanize, value: v } }
@status = info.status
@url = connection.id
@memory = keys_by_type(data.keys, :memory)
@cpu = keys_by_type(data.keys, :cpu)
@client = keys_by_type(data.keys, :client)
end
private
def stats
@stats ||= info.stats.symbolize_keys.slice(:redis_version,
:redis_mode,
:arch_bits,
:process_id,
:os,
:role,
:connected_clients,
:blocked_clients,
:uptime_in_days,
:used_memory_human)
end
def keys_by_type(keys, value)
keys.map { |key| key.slice(:date, value) }.sort_by { |key| key[:date] }
end
end
end