import "v2ray.com/core/features/stats"
func ManagerType() interface{}
ManagerType returns the type of Manager interface. Can be used to implement common.HasType.
v2ray:api:stable
SubscribeRunnableChannel subscribes the channel and starts it if there is first subscriber coming.
UnsubscribeClosableChannel unsubcribes the channel and close it if there is no more subscriber.
type Channel interface { // Channel is a runnable unit. common.Runnable // Publish broadcasts a message through the channel with a controlling context. Publish(context.Context, interface{}) // SubscriberCount returns the number of the subscribers. Subscribers() []chan interface{} // Subscribe registers for listening to channel stream and returns a new listener channel. Subscribe() (chan interface{}, error) // Unsubscribe unregisters a listener channel from current Channel object. Unsubscribe(chan interface{}) error }
Channel is the interface for stats channel.
v2ray:api:stable
GetOrRegisterChannel tries to get the StatChannel first. If not exist, it then tries to create a new channel.
type Counter interface { // Value is the current value of the counter. Value() int64 // Set sets a new value to the counter, and returns the previous one. Set(int64) int64 // Add adds a value to the current counter value, and returns the previous value. Add(int64) int64 }
Counter is the interface for stats counters.
v2ray:api:stable
GetOrRegisterCounter tries to get the StatCounter first. If not exist, it then tries to create a new counter.
type Manager interface { features.Feature // RegisterCounter registers a new counter to the manager. The identifier string must not be empty, and unique among other counters. RegisterCounter(string) (Counter, error) // UnregisterCounter unregisters a counter from the manager by its identifier. UnregisterCounter(string) error // GetCounter returns a counter by its identifier. GetCounter(string) Counter // RegisterChannel registers a new channel to the manager. The identifier string must not be empty, and unique among other channels. RegisterChannel(string) (Channel, error) // UnregisterCounter unregisters a channel from the manager by its identifier. UnregisterChannel(string) error // GetChannel returns a channel by its identifier. GetChannel(string) Channel }
Manager is the interface for stats manager.
v2ray:api:stable
type NoopManager struct{}
NoopManager is an implementation of Manager, which doesn't has actual functionalities.
func (NoopManager) Close() error
Close implements common.Closable.
func (NoopManager) GetChannel(string) Channel
GetChannel implements Manager.
func (NoopManager) GetCounter(string) Counter
GetCounter implements Manager.
func (NoopManager) RegisterChannel(string) (Channel, error)
RegisterChannel implements Manager.
func (NoopManager) RegisterCounter(string) (Counter, error)
RegisterCounter implements Manager.
func (NoopManager) Start() error
Start implements common.Runnable.
func (NoopManager) Type() interface{}
Type implements common.HasType.
func (NoopManager) UnregisterChannel(string) error
UnregisterChannel implements Manager.
func (NoopManager) UnregisterCounter(string) error
UnregisterCounter implements Manager.
Package stats imports 4 packages (graph) and is imported by 55 packages. Updated 2020-10-15. Refresh now. Tools for package owners.