diff options
Diffstat (limited to 'api')
-rw-r--r-- | api/stats.go | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/api/stats.go b/api/stats.go index e254eae..2850b5f 100644 --- a/api/stats.go +++ b/api/stats.go @@ -14,13 +14,24 @@ package api +// StatsProvider provides methods for retrieving statistics. +type StatsProvider interface { + GetSystemStats(*SystemStats) error + GetNodeStats(*NodeStats) error + GetInterfaceStats(*InterfaceStats) error + GetErrorStats(*ErrorStats) error + GetBufferStats(*BufferStats) error +} + // SystemStats represents global system statistics. type SystemStats struct { - VectorRate float64 - InputRate float64 - LastUpdate float64 - LastStatsClear float64 - Heartbeat float64 + VectorRate uint64 + NumWorkerThreads uint64 + VectorRatePerWorker []uint64 + InputRate uint64 + LastUpdate uint64 + LastStatsClear uint64 + Heartbeat uint64 } // NodeStats represents per node statistics. @@ -49,19 +60,18 @@ type InterfaceCounters struct { InterfaceIndex uint32 InterfaceName string // requires VPP 19.04+ - RxPackets uint64 - RxBytes uint64 - RxErrors uint64 - TxPackets uint64 - TxBytes uint64 - TxErrors uint64 + Rx InterfaceCounterCombined + Tx InterfaceCounterCombined - RxUnicast [2]uint64 // packets[0], bytes[1] - RxMulticast [2]uint64 // packets[0], bytes[1] - RxBroadcast [2]uint64 // packets[0], bytes[1] - TxUnicastMiss [2]uint64 // packets[0], bytes[1] - TxMulticast [2]uint64 // packets[0], bytes[1] - TxBroadcast [2]uint64 // packets[0], bytes[1] + RxErrors uint64 + TxErrors uint64 + + RxUnicast InterfaceCounterCombined + RxMulticast InterfaceCounterCombined + RxBroadcast InterfaceCounterCombined + TxUnicast InterfaceCounterCombined + TxMulticast InterfaceCounterCombined + TxBroadcast InterfaceCounterCombined Drops uint64 Punts uint64 @@ -69,6 +79,13 @@ type InterfaceCounters struct { IP6 uint64 RxNoBuf uint64 RxMiss uint64 + Mpls uint64 +} + +// InterfaceCounterCombined defines combined counters for interfaces. +type InterfaceCounterCombined struct { + Packets uint64 + Bytes uint64 } // ErrorStats represents statistics per error counter. @@ -79,7 +96,8 @@ type ErrorStats struct { // ErrorCounter represents error counter. type ErrorCounter struct { CounterName string - Value uint64 + + Value uint64 } // BufferStats represents statistics per buffer pool. @@ -89,17 +107,9 @@ type BufferStats struct { // BufferPool represents buffer pool. type BufferPool struct { - PoolName string + PoolName string + Cached float64 Used float64 Available float64 } - -// StatsProvider provides the methods for getting statistics. -type StatsProvider interface { - GetSystemStats() (*SystemStats, error) - GetNodeStats() (*NodeStats, error) - GetInterfaceStats() (*InterfaceStats, error) - GetErrorStats(names ...string) (*ErrorStats, error) - GetBufferStats() (*BufferStats, error) -} |