mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-08-04 21:30:53 +00:00
Replace log.Println() with Statistics
This commit is contained in:
parent
cc3a160c29
commit
a3971a27bf
4 changed files with 42 additions and 15 deletions
|
@ -48,6 +48,9 @@ func DispatchC2SCommand(conn *websocket.Conn, client *ClientInfo, msg ClientMess
|
|||
handler = C2SHandleRemoteCommand
|
||||
}
|
||||
|
||||
Statistics.CommandsIssuedTotal++
|
||||
Statistics.CommandsIssuedMap[msg.Command]++
|
||||
|
||||
response, err := callHandler(handler, conn, client, msg)
|
||||
|
||||
if err == nil {
|
||||
|
@ -308,7 +311,7 @@ func doSendAggregateData() {
|
|||
|
||||
followJSON, err := json.Marshal(follows)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
log.Println("error reporting aggregate data:", err)
|
||||
} else {
|
||||
reportForm.Set("follows", string(followJSON))
|
||||
}
|
||||
|
@ -320,20 +323,20 @@ func doSendAggregateData() {
|
|||
}
|
||||
emoteJSON, err := json.Marshal(strEmoteUsage)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
log.Println("error reporting aggregate data:", err)
|
||||
} else {
|
||||
reportForm.Set("emotes", string(emoteJSON))
|
||||
}
|
||||
|
||||
form, err := SealRequest(reportForm)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
log.Println("error reporting aggregate data:", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = SendAggregatedData(form)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
log.Println("error reporting aggregate data:", err)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ func SetupServerAndHandle(config *ConfigFile, serveMux *http.ServeMux) {
|
|||
}
|
||||
resp, err := backendHTTPClient.PostForm(announceStartupURL, announceForm)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
log.Println("could not announce startup to backend:", err)
|
||||
} else {
|
||||
resp.Body.Close()
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ var CloseFirstMessageNotHello = websocket.CloseError{
|
|||
func RunSocketConnection(conn *websocket.Conn) {
|
||||
// websocket.Conn is a ReadWriteCloser
|
||||
|
||||
log.Println("Got socket connection from", conn.RemoteAddr())
|
||||
Statistics.ClientConnectsTotal++
|
||||
|
||||
var _closer sync.Once
|
||||
closer := func() {
|
||||
|
@ -210,9 +210,6 @@ func RunSocketConnection(conn *websocket.Conn) {
|
|||
}
|
||||
|
||||
_, isClose := err.(*websocket.CloseError)
|
||||
if err != io.EOF && !isClose {
|
||||
log.Println("Error while reading from client:", err)
|
||||
}
|
||||
select {
|
||||
case errorChan <- err:
|
||||
case <-stoppedChan:
|
||||
|
@ -255,8 +252,8 @@ RunLoop:
|
|||
|
||||
case msg := <-clientChan:
|
||||
if client.Version == "" && msg.Command != HelloCommand {
|
||||
log.Println("error - first message wasn't hello from", conn.RemoteAddr(), "-", msg)
|
||||
CloseConnection(conn, &CloseFirstMessageNotHello)
|
||||
Statistics.FirstNotHelloDisconnects++
|
||||
break RunLoop
|
||||
}
|
||||
|
||||
|
@ -300,7 +297,7 @@ RunLoop:
|
|||
// Close the channel so the draining goroutine can finish, too.
|
||||
close(_serverMessageChan)
|
||||
|
||||
log.Println("End socket connection from", conn.RemoteAddr())
|
||||
Statistics.ClientDisconnectsTotal++
|
||||
}
|
||||
|
||||
func getDeadline() time.Time {
|
||||
|
@ -308,9 +305,9 @@ func getDeadline() time.Time {
|
|||
}
|
||||
|
||||
func CloseConnection(conn *websocket.Conn, closeMsg *websocket.CloseError) {
|
||||
if closeMsg != &CloseFirstMessageNotHello {
|
||||
log.Println("Terminating connection with", conn.RemoteAddr(), "-", closeMsg.Text)
|
||||
}
|
||||
Statistics.DisconnectCodes[closeMsg.Code]++
|
||||
Statistics.DisconnectReasons[closeMsg.Text]++
|
||||
|
||||
conn.WriteControl(websocket.CloseMessage, websocket.FormatCloseMessage(closeMsg.Code, closeMsg.Text), getDeadline())
|
||||
conn.Close()
|
||||
}
|
||||
|
@ -324,6 +321,7 @@ func SendMessage(conn *websocket.Conn, msg ClientMessage) {
|
|||
}
|
||||
conn.SetWriteDeadline(getDeadline())
|
||||
conn.WriteMessage(messageType, packet)
|
||||
Statistics.MessagesSent++
|
||||
}
|
||||
|
||||
// UnmarshalClientMessage unpacks websocket TextMessage into a ClientMessage provided in the `v` parameter.
|
||||
|
|
26
socketserver/internal/server/stats.go
Normal file
26
socketserver/internal/server/stats.go
Normal file
|
@ -0,0 +1,26 @@
|
|||
package server
|
||||
|
||||
type StatsData struct {
|
||||
ClientConnectsTotal int64
|
||||
ClientDisconnectsTotal int64
|
||||
FirstNotHelloDisconnects int64
|
||||
|
||||
DisconnectCodes map[int]int64
|
||||
DisconnectReasons map[string]int64
|
||||
|
||||
CommandsIssuedTotal int64
|
||||
CommandsIssuedMap map[Command]int64
|
||||
|
||||
MessagesSent int64
|
||||
}
|
||||
|
||||
func newStatsData() *StatsData {
|
||||
return &StatsData{
|
||||
CommandsIssuedMap: make(map[Command]int64),
|
||||
DisconnectCodes: make(map[int]int64),
|
||||
DisconnectReasons: make(map[string]int64),
|
||||
}
|
||||
}
|
||||
|
||||
// Statistics is several variables that get incremented during normal operation of the server.
|
||||
var Statistics = newStatsData()
|
|
@ -89,7 +89,7 @@ func UnsealRequest(form url.Values) (url.Values, error) {
|
|||
retValues, err := url.ParseQuery(string(message))
|
||||
if err != nil {
|
||||
// Assume that the signature was accidentally correct but the contents were garbage
|
||||
log.Print(err)
|
||||
log.Println("Error unsealing request:", err)
|
||||
return nil, ErrorInvalidSignature
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue