FILE / ScuroNeko/mtg

stats/stream_info.go

Исходный файл и его история в репозитории.
FILE bc2bd4510a954557a53d4310538619adc115bb81
Files
mtg/stats/stream_info.go
T
2021-03-27 22:04:30 +03:00

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
}