Documentation
¶
Index ¶
- Constants
- Variables
- func InitSysCpuInfo() error
- func LogErr(fmt string, args ...interface{})
- type CpuMonitorInfo
- type CpuStatPercent
- type DiskMonitorInfo
- type LoadavgMonitorInfo
- type MemMonitorInfo
- type Monitor
- type MonitorReportHander
- type MonitorServer
- type MonitorServerOption
- type NetDevicesMonitorInfo
- type SelfStats
- type SystemStats
- type UptimeMonitorInfo
- type VmMonitorInfo
Constants ¶
View Source
const ( SYS_UTIME_MILLISECONDS = 1 * time.Millisecond //1ms SYS_UTIME_SECOND = 1 * time.Second SYS_CYCLE_INTERVAL = 1000 * SYS_UTIME_MILLISECONDS SYS_TIME_RESOLUTION_MS_TIMES = 1 SYS_CPU_STAT_RESOLUTION_TIMES = 3 SYS_DISK_STAT_RESOLUTION_TIMES = 6 SYS_MEMINFO_RESOLUTION_TIMES = 6 SYS_PLATFORM_INFO_RESOLUTION_TIMES = 9 SYS_NETWORK_DEVICE_RESOLUTION_TIMES = 9 SYS_SELF_RESOLUTION_TIMES = 3 )
参考srs的定义
View Source
const ( SYS_KB = 1024 SYS_MB = 1024 * SYS_KB )
Variables ¶
View Source
var DefaultMonitorServerOption = MonitorServerOption{
DiskCatalog: "/",
DiskName: "sda",
MonitorReportSec: 10}
Functions ¶
Types ¶
type CpuMonitorInfo ¶
type CpuMonitorInfo struct {
CpuUsagePercent float64 `json:"cpu_percent"` //系统cpu使用率
Cpus int16 `json:"cpus"` //处理器数量
CpuOnline int16 `json:"cpus_online"` //可用的cpu数量
// contains filtered or unexported fields
}
UsagePctCPU is an object that represents the average cpu usage over a time period. It is calculated by taking the difference between two CPUSamples (whose units are clock ticks), dividing by the number of elapsed ticks between the samples, and converting to a percent.
func NewCpuMonitorInfo ¶
func NewCpuMonitorInfo() (*CpuMonitorInfo, error)
func (*CpuMonitorInfo) UpdateMonitorInfo ¶
func (cmi *CpuMonitorInfo) UpdateMonitorInfo() error
type CpuStatPercent ¶
type CpuStatPercent struct {
UserPct float64
NicePct float64
SystemPct float64
IdlePct float64
IowaitPct float64
IrqPct float64
SoftIrqPct float64
StealPct float64
GuestPct float64
}
func CalculateCPUStat ¶
func CalculateCPUStat(second, first proc.CPUStat) (res CpuStatPercent)
计算这段时间内的cpu平均指标百分比
type DiskMonitorInfo ¶
type DiskMonitorInfo struct {
DiskBusyPercent float64 `json:"disk_busy_percent"` //磁盘繁忙度
DiskUsedPercent float64 `json:"disk_usage_percent"` //磁盘容量占比
DiskCapacityMb uint64 `json:"disk_capacity_mb"` //磁盘容量
DiskUsedMb uint64 `json:"disk_used_mb"` //磁盘用了
DiskFreeMb uint64 `json:"disk_free_mb"` //磁盘空闲
// contains filtered or unexported fields
}
func NewDiskMonitorInfo ¶
func NewDiskMonitorInfo(disk_path, disk_name string) (*DiskMonitorInfo, error)
func (*DiskMonitorInfo) UpdateMonitorInfo ¶
func (dmi *DiskMonitorInfo) UpdateMonitorInfo() error
type LoadavgMonitorInfo ¶
type LoadavgMonitorInfo struct {
Loadavg1Min float64 `json:"load_1m"` //最近1min的负荷情况
Loadavg5min float64 `json:"load_5m"`
Loadavg15min float64 `json:"load_15m"`
}
func NewLoadavgMonitorInfo ¶
func NewLoadavgMonitorInfo() (*LoadavgMonitorInfo, error)
func (*LoadavgMonitorInfo) UpdateMonitorInfo ¶
func (lmi *LoadavgMonitorInfo) UpdateMonitorInfo() error
type MemMonitorInfo ¶
type MemMonitorInfo struct {
MemRamKByte uint64 `json:"mem_ram_kbyte"` //内存大小
MemRamPercent float64 `json:"mem_ram_percent"` //内存使用率
MemSwapKByte uint64 `json:"mem_swap_kbyte"` //swap内存大小
MemSwapPercent float64 `json:"mem_swap_percent"` //swap使用率
}
func NewMemMonitorInfo ¶
func NewMemMonitorInfo() (*MemMonitorInfo, error)
func (*MemMonitorInfo) UpdateMonitorInfo ¶
func (mmi *MemMonitorInfo) UpdateMonitorInfo() error
type Monitor ¶
type Monitor struct {
StartTime time.Time `json:"start_time"`
SysStat *SystemStats `json:"system"`
SelfStat *SelfStats `json:"self"`
}
监控器
func NewMonitor ¶
func (*Monitor) GetSelfStats ¶
func (*Monitor) GetSysStats ¶
func (m *Monitor) GetSysStats() *SystemStats
type MonitorReportHander ¶
type MonitorReportHander interface {
DoReport(m *Monitor)
}
type MonitorServer ¶
type MonitorServer struct {
// contains filtered or unexported fields
}
定义一个服务类
func NewMonitorServer ¶
func NewMonitorServer(reporthander MonitorReportHander, option MonitorServerOption) (*MonitorServer, error)
func (*MonitorServer) Start ¶
func (ms *MonitorServer) Start()
func (*MonitorServer) Stop ¶
func (ms *MonitorServer) Stop()
type MonitorServerOption ¶
type NetDevicesMonitorInfo ¶
type NetDevicesMonitorInfo struct {
NetSampleTime time.Time `json:"net_sample_time"` //网络数据采集时间
NetRecvBytePublic uint64 `json:"net_recv_bytes"` //公有网络数据
NetSendBytePublic uint64 `json:"net_send_bytes"`
NetRecvBytePriv uint64 `json:"net_recvi_bytes"` //私有网络数据
NetSendBytePriv uint64 `json:"net_sendi_bytes"`
}
func NewNetDevicesMonitorInfo ¶
func NewNetDevicesMonitorInfo() (*NetDevicesMonitorInfo, error)
func (*NetDevicesMonitorInfo) UpdateMonitorInfo ¶
func (ndmi *NetDevicesMonitorInfo) UpdateMonitorInfo() error
type SelfStats ¶
type SelfStats struct {
Pid int `json:"pid"`
PPid int `json:"ppid"`
MemKByte uint64 `json:"mem_kbyte"`
MemPercent float64 `json:"mem_percent"`
CpuUsagePercent float64 `json:"cpu_percent"`
SampleTime time.Time `json:"sample_time"`
// contains filtered or unexported fields
}
func NewSelfStats ¶
func (*SelfStats) UpdateMonitorInfo ¶
type SystemStats ¶
type SystemStats struct {
CpuMI *CpuMonitorInfo `json:"cpu"`
VmMI *VmMonitorInfo `json:"vm"`
DiskMI *DiskMonitorInfo `json:"disk"`
MemMI *MemMonitorInfo `json:"mem"`
UptimeMI *UptimeMonitorInfo `json:"uptime"`
LoadavgMI *LoadavgMonitorInfo `json:"loadavg"`
NetDevMI *NetDevicesMonitorInfo `json:"network_devcice"`
}
系统状态
func NewSystemStats ¶
func NewSystemStats(disk_catalog, disk_name string) (*SystemStats, error)
func (*SystemStats) GetCpuMI ¶
func (sysstat *SystemStats) GetCpuMI() *CpuMonitorInfo
type UptimeMonitorInfo ¶
type UptimeMonitorInfo struct {
UptimeIdlePercent float64 `json:"ilde_percent"` //uptime衡量系统自启动以来的空闲度
UptimeTotalSec uint64 `json:"uptime"` //自系统启动来的时间
UptimeIdleSec uint64 `json:"ilde_time"` //空闲时间
}
func NewUptimeMonitorInfo ¶
func NewUptimeMonitorInfo() (*UptimeMonitorInfo, error)
func (*UptimeMonitorInfo) UpdateMonitorInfo ¶
func (utmi *UptimeMonitorInfo) UpdateMonitorInfo() error
type VmMonitorInfo ¶
type VmMonitorInfo struct {
VmReadKBps int64 `json:"disk_read_KBps"` //读速度
VmWriteKBps int64 `json:"disk_write_KBps"` //写速度
// contains filtered or unexported fields
}
func NewVmMonitorInfo ¶
func NewVmMonitorInfo() (*VmMonitorInfo, error)
func (*VmMonitorInfo) UpdateMonitorInfo ¶
func (vmmi *VmMonitorInfo) UpdateMonitorInfo() error
Click to show internal directories.
Click to hide internal directories.