.NET开源MSSQL、Redis监控产品Opserver之Redis配置

 

 

 

安全与基础配置地址:http://www.cnblogs.com/xiaopotian/p/6898310.html

edis监控数据实例的加载可以查看Opserver.Core项目data/Redis文件夹下的RedisModule.cs,我加了点注释

/// <summary>
        /// 加载Redis连接
        /// </summary>
        /// <returns></returns>
        private static List<RedisConnectionInfo> LoadRedisConnections()
        {
            var result = new List<RedisConnectionInfo>();
            //默认实例
            var defaultServerInstances = Current.Settings.Redis.Defaults.Instances;
            //Servers节点的子集
            var allServerInstances = Current.Settings.Redis.AllServers.Instances;

            foreach (var s in Current.Settings.Redis.Servers)
            {
                var count = result.Count;
                // Add instances that belong to any servers 为Servers实例添加子集
                allServerInstances?.ForEach(gi => result.Add(new RedisConnectionInfo(s.Name, gi)));

                // Add instances defined on this server 添加定义在Servers里的实例
                if (s.Instances.Count > 0)
                    s.Instances.ForEach(i => result.Add(new RedisConnectionInfo(s.Name, i)));

                // If we have no instances added at this point, defaults it is! 如果没有任何实例则添加默认的
                if (defaultServerInstances != null && count == result.Count)
                    defaultServerInstances.ForEach(gi => result.Add(new RedisConnectionInfo(s.Name, gi)));
            }
            return result;
        }

allservers和default下的实例配置,会影响servers下的配置,allservers和default的实例被添加到servers的各个节点,可以理解allservers和default的配置为通用配置,另外如果allservers,servers下有实例 ,default下实例不起作用。如果要自定义实例加载,可以修改这段代码。实际配置中我们只要配置servers就可以了。

{
  "Servers": [
    {
      "name": "127.0.0.1",
      "instances": [
        {
          "name": "localhost",
          "port": "6379",
          "password": "zoulu19900206"
        }
      ]
    },
    {
      "name": "192.168.11.220",
      "instances": [
        {
          "name": "work",
          "port": "6379",
          "password": "Lz+18518095396+zL"
        }
      ]
    }
  ]
}

好了,下面上几张效果图

 

面板展示的属性都是可以通过redis info命令获取到,opserver做了更清晰的展示。

Ops(/sec)  每秒处理量

memory(used)即used_memory_rss(used_memory)

used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps等命令的输出一致。

used_memory_peak : Redis 的内存消耗峰值(以字节为单位)

used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位

 

Summary是总体概览部分。

Memory是内存使用情况,重要。

persistence 是RDB和AOF的状态。
 
keyspace key存储的情况,analyze进去可以查看详细分布。
 
stats  客户端命令的key命中率和处理量
 
clients 查看有哪个ip(或机器名)过来的连接数多,很方便的定位到那台应用端机器长时间没有释放连接,重要。
 

slow command log 服务端接受的命令日志。

 

Opserver系列目录 http://www.cnblogs.com/xiaopotian/category/1007536.html

 

posted @ 2017-05-24 14:02  小破天  阅读(894)  评论(2编辑  收藏  举报