服务重启中...

请稍候,系统恢复后将自动刷新页面

Otter Admin
首页 {{ currentTabName }}
修改此配置需要重启服务生效
Admin 管理员
总连接数 实时
{{ dashboardData.connections.total_connections || 0 }}
活跃: {{ dashboardData.connections.active_connections || 0 }}
总消息数
{{ dashboardData.messages.total_messages || 0 }}
速率: {{ dashboardData.messages.messages_per_second?.toFixed(1) || 0 }}/s
CPU 使用率
{{ dashboardData.performance.cpu_usage_percent?.toFixed(1) || 0 }}%
内存: {{ dashboardData.performance.memory_usage_mb || 0 }}MB
运行时间
{{ formatUptime(dashboardData.system.uptime_seconds) }}
错误率: {{ dashboardData.errors.error_rate_percent?.toFixed(2) || 0 }}%
{{ dashboardData.performance.network_in_mbps?.toFixed(2) }} Mbps {{ dashboardData.performance.network_out_mbps?.toFixed(2) }} Mbps {{ dashboardData.messages.subscribe_messages }} {{ dashboardData.messages.publish_messages }} {{ dashboardData.performance.gc_pause_ms?.toFixed(2) }} ms {{ dashboardData.performance.thread_count }} {{ dashboardData.messages.message_latency_avg_ms?.toFixed(2) }} ms {{ dashboardData.messages.message_latency_p99_ms?.toFixed(2) }} ms
数据库系统 Redis缓存
基本设置 节点发现
添加节点
负载均衡
策略说明 按顺序循环将新连接分配给可用节点,适用于节点性能相近的场景。
策略说明 优先将新连接分配给当前连接数最少的节点,适用于长连接场景。
策略说明 根据节点权重进行轮询,性能更强的节点将处理更多连接。
策略说明 基于客户端ID哈希分配,确保同一客户端总是连接到同一个节点,有利于会话保持。
安全性
复制
用于节点间通信加密与身份验证,集群内所有节点必须配置完全相同的密钥,否则无法建立连接。
基本设置 安全性 (TLS)
总用户数
{{ userStats.total }}
活跃用户
{{ userStats.active }}
在线用户
{{ userStats.online }}
禁用用户
{{ userStats.disabled }}
活跃令牌
{{ tokenStats.active }}
总令牌数
{{ tokenStats.total }}
已过期
{{ tokenStats.expired }}
黑名单
{{ tokenStats.blacklisted }}
保存所有配置
基础设置 证书上传
将文件拖到此处,或 点击上传
服务端证书 客户端验证 (mTLS) 协议版本
认证请求总数
{{ monitoringData.auth_requests || 0 }}
认证成功率
{{ (monitoringData.auth_success_rate || 0).toFixed(2) }}%
今日安全事件
{{ monitoringData.today_security_events || 0 }}
平均响应时间
{{ monitoringData.avg_response_time || 0 }} ms
基础设置 Prometheus
健康检查
日志设置
MB 个
链路追踪
性能监控
{{ path }}
告警系统
指标存储
自定义指标
配置备份与回滚
{{ p.action }}:{{ p.resource }} {{ p.description }} {{ p.action }}:{{ p.resource }} {{ p.description }}
{{ viewingToken.id }}
{{ viewingToken.username }} {{ viewingToken.type }} {{ viewingToken.status }} {{ formatDateTime(viewingToken.createdAt) }} {{ formatDateTime(viewingToken.expiresAt) }} {{ viewingToken.lastUsed ? formatDateTime(viewingToken.lastUsed) : '从未使用' }}