[TASK] add procstat
This commit is contained in:
parent
a05943bf0d
commit
c95ae7e12a
|
@ -30,8 +30,9 @@ type Statistics struct {
|
|||
MgmtTx *Traffic `json:"mgmt_tx"`
|
||||
MgmtRx *Traffic `json:"mgmt_rx"`
|
||||
} `json:"traffic,omitempty"`
|
||||
Switch map[string]*SwitchPort `json:"switch,omitempty"`
|
||||
Wireless WirelessStatistics `json:"wireless,omitempty"`
|
||||
Switch map[string]*SwitchPort `json:"switch,omitempty"`
|
||||
Wireless WirelessStatistics `json:"wireless,omitempty"`
|
||||
ProcStats *ProcStats `json:"stat,omitempty"`
|
||||
}
|
||||
|
||||
// MeshVPNPeerLink struct
|
||||
|
@ -93,3 +94,23 @@ type Memory struct {
|
|||
type SwitchPort struct {
|
||||
Speed uint32 `json:"speed"`
|
||||
}
|
||||
|
||||
// ProcStats struct
|
||||
type ProcStats struct {
|
||||
CPU ProcStatsCPU `json:"cpu"`
|
||||
Intr uint64 `json:"intr"`
|
||||
ContextSwitches uint64 `json:"ctxt"`
|
||||
SoftIRQ uint64 `json:"softirq"`
|
||||
Processes uint64 `json:"processes"`
|
||||
}
|
||||
|
||||
// ProcStatsCPU struct
|
||||
type ProcStatsCPU struct {
|
||||
User uint64 `json:"user"`
|
||||
Nice uint64 `json:"nice"`
|
||||
System uint64 `json:"system"`
|
||||
Idle uint64 `json:"idle"`
|
||||
IOWait uint64 `json:"iowait"`
|
||||
IRQ uint64 `json:"irq"`
|
||||
SoftIRQ uint64 `json:"softirq"`
|
||||
}
|
||||
|
|
|
@ -106,6 +106,19 @@ func (conn *Connection) InsertNode(node *runtime.Node) {
|
|||
// total is the sum of all protocols
|
||||
fields["neighbours.total"] = batadv + lldp
|
||||
}
|
||||
if procstat := stats.ProcStats; procstat != nil {
|
||||
fields["stat.cpu.user"] = procstat.CPU.User
|
||||
fields["stat.cpu.nice"] = procstat.CPU.Nice
|
||||
fields["stat.cpu.system"] = procstat.CPU.System
|
||||
fields["stat.cpu.idle"] = procstat.CPU.Idle
|
||||
fields["stat.cpu.iowait"] = procstat.CPU.IOWait
|
||||
fields["stat.cpu.irq"] = procstat.CPU.IRQ
|
||||
fields["stat.cpu.softirq"] = procstat.CPU.SoftIRQ
|
||||
fields["stat.intr"] = procstat.Intr
|
||||
fields["stat.ctxt"] = procstat.ContextSwitches
|
||||
fields["stat.softirq"] = procstat.SoftIRQ
|
||||
fields["stat.processes"] = procstat.Processes
|
||||
}
|
||||
|
||||
if t := stats.Traffic.Rx; t != nil {
|
||||
fields["traffic.rx.bytes"] = int64(t.Bytes)
|
||||
|
|
|
@ -17,6 +17,12 @@ func TestToInflux(t *testing.T) {
|
|||
Statistics: &data.Statistics{
|
||||
NodeID: "deadbeef",
|
||||
LoadAverage: 0.5,
|
||||
ProcStats: &data.ProcStats{
|
||||
CPU: data.ProcStatsCPU{
|
||||
User: 1,
|
||||
},
|
||||
ContextSwitches: 3,
|
||||
},
|
||||
Wireless: data.WirelessStatistics{
|
||||
&data.WirelessAirtime{Frequency: 5500},
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue