Przeglądaj źródła

Stats callbacks

tags/0.9
9seconds 7 lat temu
rodzic
commit
1aa8cfe036
3 zmienionych plików z 14 dodań i 4 usunięć
  1. 5
    0
      proxy/proxy.go
  2. 1
    1
      stats/channels.go
  3. 8
    3
      wrappers/conn.go

+ 5
- 0
proxy/proxy.go Wyświetl plik

@@ -12,6 +12,7 @@ import (
12 12
 	"github.com/9seconds/mtg/client"
13 13
 	"github.com/9seconds/mtg/config"
14 14
 	"github.com/9seconds/mtg/mtproto"
15
+	"github.com/9seconds/mtg/stats"
15 16
 	"github.com/9seconds/mtg/telegram"
16 17
 	"github.com/9seconds/mtg/wrappers"
17 18
 )
@@ -45,6 +46,7 @@ func (p *Proxy) accept(conn net.Conn) {
45 46
 		conn.Close()
46 47
 
47 48
 		if err := recover(); err != nil {
49
+			stats.NewCrash()
48 50
 			log.Errorw("Crash of accept handler", "error", err)
49 51
 		}
50 52
 	}()
@@ -58,6 +60,9 @@ func (p *Proxy) accept(conn net.Conn) {
58 60
 	}
59 61
 	defer client.(io.Closer).Close()
60 62
 
63
+	stats.ClientConnected(opts.ConnectionType, client.RemoteAddr())
64
+	defer stats.ClientDisconnected(opts.ConnectionType, client.RemoteAddr())
65
+
61 66
 	server, err := p.getTelegramConn(opts, connID)
62 67
 	if err != nil {
63 68
 		log.Errorw("Cannot initialize server connection", "error", err)

+ 1
- 1
stats/channels.go Wyświetl plik

@@ -45,7 +45,7 @@ func connectionManager() {
45 45
 	for event := range ConnectionsChan {
46 46
 		instance.mutex.RLock()
47 47
 
48
-		isIPv4 := event.addr.IP.To4() == nil
48
+		isIPv4 := event.addr.IP.To4() != nil
49 49
 		var inc uint32 = 1
50 50
 		if !event.connected {
51 51
 			inc = ^uint32(0)

+ 8
- 3
wrappers/conn.go Wyświetl plik

@@ -5,6 +5,8 @@ import (
5 5
 	"time"
6 6
 
7 7
 	"go.uber.org/zap"
8
+
9
+	"github.com/9seconds/mtg/stats"
8 10
 )
9 11
 
10 12
 type ConnPurpose uint8
@@ -31,9 +33,10 @@ const (
31 33
 )
32 34
 
33 35
 type Conn struct {
34
-	connID     string
35
-	conn       net.Conn
36
-	logger     *zap.SugaredLogger
36
+	connID string
37
+	conn   net.Conn
38
+	logger *zap.SugaredLogger
39
+
37 40
 	publicIPv4 net.IP
38 41
 	publicIPv6 net.IP
39 42
 }
@@ -43,6 +46,7 @@ func (c *Conn) Write(p []byte) (int, error) {
43 46
 	n, err := c.conn.Write(p)
44 47
 
45 48
 	c.logger.Debugw("Write to stream", "bytes", n, "error", err)
49
+	stats.EgressTraffic(n)
46 50
 
47 51
 	return n, err
48 52
 }
@@ -52,6 +56,7 @@ func (c *Conn) Read(p []byte) (int, error) {
52 56
 	n, err := c.conn.Read(p)
53 57
 
54 58
 	c.logger.Debugw("Read from stream", "bytes", n, "error", err)
59
+	stats.IngressTraffic(n)
55 60
 
56 61
 	return n, err
57 62
 }

Ładowanie…
Anuluj
Zapisz