Documentation
¶
Index ¶
- Variables
- func FormatBytes(b uint64) string
- func FormatBytesPerSec(bytes uint64, _ uint64) string
- func FormatNetworkBandwidth(bytes uint64) string
- func GetClientIP(r *http.Request) string
- func HandleMonitor(w http.ResponseWriter, r *http.Request)
- func StartSystemStatsUpdater(interval time.Duration, stopChan chan struct{})
- type ActiveConnectionsManager
- func (m *ActiveConnectionsManager) CleanInactiveConnections(timeout time.Duration)
- func (m *ActiveConnectionsManager) GetAll() []*ClientConnection
- func (m *ActiveConnectionsManager) GetConnectionByID(connID string) *ClientConnection
- func (m *ActiveConnectionsManager) GetConnectionsByIP(ip string) []*ClientConnection
- func (m *ActiveConnectionsManager) Register(connID string, conn *ClientConnection)
- func (m *ActiveConnectionsManager) StartCleaner(interval time.Duration, timeout time.Duration, stopChan chan struct{})
- func (m *ActiveConnectionsManager) Unregister(connID string, connType string)
- func (m *ActiveConnectionsManager) UpdateLastActive(connID string, t time.Time)
- type AppStats
- type ClientConnection
- type DiskPartitionInfo
- type HostInfo
- type LoadAverageInfo
- type NetworkInterfaceInfo
- type ProxyGroupTraffic
- type StatusData
- type TrafficStats
Constants ¶
This section is empty.
Variables ¶
View Source
var ActiveClients = &ActiveConnectionsManager{ conns: make(map[string]*ClientConnection), }
全局活跃客户端管理器
View Source
var GlobalTrafficStats = &TrafficStats{ ProxyGroupStats: make(map[string]*ProxyGroupTraffic), LastUpdate: time.Now(), PrevNetCounters: make(map[string]net.IOCountersStat), }
Functions ¶
func GetClientIP ¶
func StartSystemStatsUpdater ¶
Types ¶
type ActiveConnectionsManager ¶
type ActiveConnectionsManager struct {
// contains filtered or unexported fields
}
ActiveConnectionsManager 管理活跃客户端
func (*ActiveConnectionsManager) CleanInactiveConnections ¶
func (m *ActiveConnectionsManager) CleanInactiveConnections(timeout time.Duration)
CleanInactiveConnections 清理不活跃连接
func (*ActiveConnectionsManager) GetAll ¶
func (m *ActiveConnectionsManager) GetAll() []*ClientConnection
GetAll 获取所有活跃客户端连接
func (*ActiveConnectionsManager) GetConnectionByID ¶
func (m *ActiveConnectionsManager) GetConnectionByID(connID string) *ClientConnection
GetConnectionByID 根据 ConnID 获取单个客户端连接
func (*ActiveConnectionsManager) GetConnectionsByIP ¶
func (m *ActiveConnectionsManager) GetConnectionsByIP(ip string) []*ClientConnection
GetConnectionsByIP 获取指定IP的所有连接
func (*ActiveConnectionsManager) Register ¶
func (m *ActiveConnectionsManager) Register(connID string, conn *ClientConnection)
Register 注册客户端连接
func (*ActiveConnectionsManager) StartCleaner ¶
func (m *ActiveConnectionsManager) StartCleaner(interval time.Duration, timeout time.Duration, stopChan chan struct{})
StartCleaner 启动定时清理器
func (*ActiveConnectionsManager) Unregister ¶
func (m *ActiveConnectionsManager) Unregister(connID string, connType string)
Unregister 注销客户端连接
func (*ActiveConnectionsManager) UpdateLastActive ¶
func (m *ActiveConnectionsManager) UpdateLastActive(connID string, t time.Time)
UpdateLastActive 更新客户端最后活跃时间
type AppStats ¶
type AppStats struct {
CPUPercent float64
MemoryUsage uint64
TotalBytes uint64
InboundBytes uint64
OutboundBytes uint64
InboundBandwidth uint64
OutboundBandwidth uint64
LastUpdate time.Time
PrevIOCounters *process.IOCountersStat
PrevCPUTime float64 // ← 新增,用于计算 CPU 百分比
CPUTemperature float64 // 添加CPU温度字段
}
type ClientConnection ¶
type ClientConnection struct {
ID string
IP string
URL string
UserAgent string
Referer string
ConnectionType string // RTSP/HTTP/UDP/HTTPS
IsMobile bool
ConnectedAt time.Time
LastActive time.Time
}
ClientConnection 表示一个客户端连接
type DiskPartitionInfo ¶
type LoadAverageInfo ¶
type NetworkInterfaceInfo ¶
type ProxyGroupTraffic ¶
type StatusData ¶
type StatusData struct {
Timestamp time.Time
Uptime time.Duration
Version string
Goroutines int
MemoryStats runtime.MemStats
ProxyGroups map[string]*config.ProxyGroupConfig
TrafficStats *TrafficStats
ClientIP string
ActiveClients []*ClientConnection
WebPath string
}
页面数据结构
type TrafficStats ¶
type TrafficStats struct {
// 系统
TotalConnections int64
ActiveConnections int64
TotalBytes uint64
InboundBytes uint64
OutboundBytes uint64
InboundBandwidth uint64
OutboundBandwidth uint64
CPUUsage float64
CPUCount int
MemoryUsage uint64
MemoryTotal uint64
SwapUsage uint64 // SWAP使用量
SwapTotal uint64 // SWAP总量
DiskUsage uint64
DiskTotal uint64
DiskUsedPercent float64
DiskPartitions []DiskPartitionInfo
CPUTemperature float64 // 添加CPU温度字段
LoadAverage LoadAverageInfo
HostInfo HostInfo
NetworkInterfaces []NetworkInterfaceInfo
ProxyGroupStats map[string]*ProxyGroupTraffic
// 应用自身流量
App AppStats
LastUpdate time.Time
PrevNetCounters map[string]net.IOCountersStat
// contains filtered or unexported fields
}
func (*TrafficStats) GetTrafficStats ¶
func (ts *TrafficStats) GetTrafficStats() *TrafficStats
GetTrafficStats 获取流量统计信息的深拷贝
Click to show internal directories.
Click to hide internal directories.