50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package entry
|
|
|
|
import "sync"
|
|
|
|
type State struct {
|
|
mutex sync.Mutex
|
|
Accepting int32 `json:"accepting"` //是否正在接收连接
|
|
Processing int32 `json:"processing"` //是否正在处理连接
|
|
Concurrency int32 `json:"concurrency"`
|
|
Request struct {
|
|
Total int64 `json:"total"` //总处理请求
|
|
Processed int64 `json:"processed"` //处理完成的请求
|
|
Discarded int64 `json:"discarded"` //丢弃的请求
|
|
} `json:"request"`
|
|
Traffic struct {
|
|
In int64 `json:"in"` //入网流量
|
|
Out int64 `json:"out"` //出网流量
|
|
} `json:"traffic"`
|
|
}
|
|
|
|
func (s *State) IncRequest(n int64) {
|
|
s.mutex.Lock()
|
|
s.Request.Total += n
|
|
s.mutex.Unlock()
|
|
}
|
|
|
|
func (s *State) IncRequestProcessed(n int64) {
|
|
s.mutex.Lock()
|
|
s.Request.Processed += n
|
|
s.mutex.Unlock()
|
|
}
|
|
|
|
func (s *State) IncRequestDiscarded(n int64) {
|
|
s.mutex.Lock()
|
|
s.Request.Discarded += n
|
|
s.mutex.Unlock()
|
|
}
|
|
|
|
func (s *State) IncTrafficIn(n int64) {
|
|
s.mutex.Lock()
|
|
s.Traffic.In += n
|
|
s.mutex.Unlock()
|
|
}
|
|
|
|
func (s *State) IncTrafficOut(n int64) {
|
|
s.mutex.Lock()
|
|
s.Traffic.Out += n
|
|
s.mutex.Unlock()
|
|
}
|