mirror of
https://github.com/pagefaultgames/rogueserver.git
synced 2025-04-02 02:57:15 +08:00
[Telemetry] Server Side Code for Run Result Logging (#4)
* Revert "Remove Daily from starter tracking" This reverts commit ce4aea88de78696c76046c862cdcae2f5d6d871f. * Server-Side Run Result Logging * Removed unnecessary parameters. * Fixed up endpoint to not rely on present-in-session variables * I'm forgetful. * Fixed up logging format. * Changed somethign. * Updated endpoint variable --------- Co-authored-by: frutescens <info@laptop>
This commit is contained in:
parent
0da0283fb9
commit
f4e423f8c3
@ -269,7 +269,8 @@ func handleSession(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
writeJSON(w, r, resp)
|
||||
case "newclear":
|
||||
resp, err := savedata.NewClear(uuid, slot)
|
||||
result, err := strconv.ParseBool(r.URL.Query().Get("isVictory"))
|
||||
resp, err := savedata.NewClear(uuid, slot, result)
|
||||
if err != nil {
|
||||
httpError(w, r, fmt.Errorf("failed to read new clear: %s", err), http.StatusInternalServerError)
|
||||
return
|
||||
|
@ -25,20 +25,29 @@ import (
|
||||
)
|
||||
|
||||
// /savedata/newclear - return whether a session is a new clear for its seed
|
||||
func NewClear(uuid []byte, slot int) (bool, error) {
|
||||
func NewClear(uuid []byte, slot int, result bool) (bool, error) {
|
||||
if slot < 0 || slot >= defs.SessionSlotCount {
|
||||
return false, fmt.Errorf("slot id %d out of range", slot)
|
||||
}
|
||||
|
||||
session, err := db.ReadSessionSaveData(uuid, slot)
|
||||
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
gameMode := getGameModeKey(session.GameMode)
|
||||
waveIndex := fmt.Sprintf("%d", session.WaveIndex)
|
||||
completed := true
|
||||
if result {
|
||||
runResultCounter.WithLabelValues("victory", waveIndex, gameMode).Inc()
|
||||
completed, err := db.ReadSeedCompleted(uuid, session.Seed)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("failed to read seed completed: %s", err)
|
||||
}
|
||||
return !completed, err
|
||||
} else {
|
||||
runResultCounter.WithLabelValues("loss", waveIndex, gameMode).Inc()
|
||||
}
|
||||
|
||||
return !completed, nil
|
||||
}
|
||||
|
@ -21,4 +21,12 @@ var (
|
||||
},
|
||||
[]string{"starterKey", "gameMode"},
|
||||
)
|
||||
|
||||
runResultCounter = promauto.NewCounterVec(
|
||||
prometheus.CounterOpts{
|
||||
Name: "rogueserver_run_result_count",
|
||||
Help: "The total number of victories and losses logged",
|
||||
},
|
||||
[]string{"result", "waveIndex", "gameMode"},
|
||||
)
|
||||
)
|
||||
|
@ -74,7 +74,7 @@ func ProcessSessionMetrics(save defs.SessionSaveData, username string) {
|
||||
gameModeCounter.WithLabelValues(getGameModeKey(save.GameMode)).Inc()
|
||||
}
|
||||
|
||||
if save.WaveIndex == 1 && save.GameMode != 3 {
|
||||
if save.WaveIndex == 1 {
|
||||
party := ""
|
||||
for i := 0; i < len(save.Party); i++ {
|
||||
partyMember, ok := save.Party[i].(map[string]interface{})
|
||||
|
Loading…
x
Reference in New Issue
Block a user