mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 20:54:02 +03:00
FILE / ScuroNeko/mtg
stats/stream_info.go
Исходный файл и его история в репозитории.
59 lines
976 B
Go
59 lines
976 B
Go
package stats
|
|
|
|
import (
|
|
"net"
|
|
"strconv"
|
|
"time"
|
|
|
|
statsd "github.com/smira/go-statsd"
|
|
)
|
|
|
|
type streamInfo struct {
|
|
startTime time.Time
|
|
tags map[string]string
|
|
}
|
|
|
|
func (s *streamInfo) SetStartTime(tme time.Time) {
|
|
s.startTime = tme
|
|
}
|
|
|
|
func (s *streamInfo) SetClientIP(ip net.IP) {
|
|
if ip.To4() != nil {
|
|
s.tags[TagIPFamily] = TagIPFamilyIPv4
|
|
} else {
|
|
s.tags[TagIPFamily] = TagIPFamilyIPv6
|
|
}
|
|
}
|
|
|
|
func (s *streamInfo) SetTelegramIP(ip net.IP) {
|
|
s.tags[TagTelegramIP] = ip.String()
|
|
}
|
|
|
|
func (s *streamInfo) SetDC(dc int) {
|
|
s.tags[TagDC] = strconv.Itoa(dc)
|
|
}
|
|
|
|
func (s *streamInfo) V(key string) string {
|
|
return s.tags[key]
|
|
}
|
|
|
|
func (s *streamInfo) TV(key string) statsd.Tag {
|
|
return statsd.StringTag(key, s.tags[key])
|
|
}
|
|
|
|
func (s *streamInfo) Reset() {
|
|
s.startTime = time.Time{}
|
|
|
|
for k := range s.tags {
|
|
delete(s.tags, k)
|
|
}
|
|
}
|
|
|
|
func getDirection(isRead bool) string {
|
|
if isRead { // for telegram
|
|
return TagDirectionToClient
|
|
}
|
|
|
|
return TagDirectionFromClient
|
|
}
|