monitor

package module
v0.0.0-...-06ce4da Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2022 License: MIT Imports: 5 Imported by: 0

README

monitor

Monitor system and program status

Documentation

Index

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

func InitSysCpuInfo

func InitSysCpuInfo() error

更新系统cpu信息

func LogErr

func LogErr(fmt string, args ...interface{})

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 NewMonitor(disk_catalog, disk_name string) (*Monitor, error)

func (*Monitor) GetSelfStats

func (m *Monitor) GetSelfStats() *SelfStats

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 MonitorServerOption struct {
	DiskCatalog      string //监测的默认磁盘目录路径
	DiskName         string //监测的磁盘设备名
	MonitorReportSec int64  //监测上报时间周期
}

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 NewSelfStats() (*SelfStats, error)

func (*SelfStats) UpdateMonitorInfo

func (self *SelfStats) UpdateMonitorInfo() error

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

Directories

Path Synopsis
The MIT License (MIT)
The MIT License (MIT)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL