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.