35 lines
704 B
Go
35 lines
704 B
Go
|
package rpcstats
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
)
|
||
|
|
||
|
// PublicAPI represents a set of APIs from the namespace.
|
||
|
type PublicAPI struct {
|
||
|
s *Service
|
||
|
}
|
||
|
|
||
|
// NewAPI creates an instance of the API.
|
||
|
func NewAPI(s *Service) *PublicAPI {
|
||
|
return &PublicAPI{s: s}
|
||
|
}
|
||
|
|
||
|
// Reset resets RPC usage stats
|
||
|
func (api *PublicAPI) Reset(context context.Context) {
|
||
|
resetStats()
|
||
|
}
|
||
|
|
||
|
type RPCStats struct {
|
||
|
Total uint `json:"total"`
|
||
|
CounterPerMethod map[string]uint `json:"methods"`
|
||
|
}
|
||
|
|
||
|
// GetStats retrun RPC usage stats
|
||
|
func (api *PublicAPI) GetStats(context context.Context) (RPCStats, error) {
|
||
|
total, perMethod := getStats()
|
||
|
return RPCStats{
|
||
|
Total: total,
|
||
|
CounterPerMethod: perMethod,
|
||
|
}, nil
|
||
|
}
|