statistic

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2024 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TrafficSpeedTime    = 2 * time.Second
	TrafficSnapshotTime = 5 * time.Second
)

Variables

View Source
var EnableStatistic = false

Functions

func NewTCPTracker

func NewTCPTracker(conn net.Conn, ctx Context) *tcpTracker

func NewUDPTracker

func NewUDPTracker(conn net.PacketConn, ctx Context) *udpTracker

Types

type ConnectionSnapshot

type ConnectionSnapshot struct {
	Context
	DownloadTotal int64 `json:"download"`
	UploadTotal   int64 `json:"upload"`
}

type Context

type Context struct {
	Src     string `json:"src"`     // client remote ip address
	Dst     string `json:"dst"`     // target domain name or ip address
	Network string `json:"network"` // connection network ['tcp', 'udp']
	Type    string `json:"type"`    // connection type ['socks', 'http', 'tcp-tun', 'udp-tun', 'simple-tcp-tun']
	Rule    string `json:"rule"`    // matched rule type
	Proxy   string `json:"proxy"`   // matched proxy
	// contains filtered or unexported fields
}

type Snapshot

type Snapshot struct {
	DownloadTotal int64                 `json:"download_total"`
	UploadTotal   int64                 `json:"upload_total"`
	Connections   []*ConnectionSnapshot `json:"connections"`
}

type Tracker

type Tracker interface {
	ID() uuid.UUID
	TrackerInfo() *TrackerInfo
	Close() error
}

type TrackerInfo

type TrackerInfo struct {
	Context
	// contains filtered or unexported fields
}

type TrackerManager

type TrackerManager struct {
	// contains filtered or unexported fields
}
var DefaultManager *TrackerManager = NewTrackerManager()

func NewTrackerManager

func NewTrackerManager() *TrackerManager

func (*TrackerManager) Add

func (manager *TrackerManager) Add(tracker Tracker)

func (*TrackerManager) CloseAll

func (manager *TrackerManager) CloseAll()

func (*TrackerManager) DumpSnapshot

func (manager *TrackerManager) DumpSnapshot() Snapshot

func (*TrackerManager) Remove

func (manager *TrackerManager) Remove(tracker Tracker)

func (*TrackerManager) Reset

func (manager *TrackerManager) Reset()

func (*TrackerManager) TrafficSpeed

func (manager *TrackerManager) TrafficSpeed() (download, upload int64)

Jump to

Keyboard shortcuts

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