From 8a45186ecbf04a72885e1bb847a4b9965ac52486 Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Fri, 25 Mar 2022 11:07:36 +0100 Subject: [PATCH] add more metrics --- backend/bang/game.py | 11 +++++++++-- backend/server.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/bang/game.py b/backend/bang/game.py index 1dd0371..04cf184 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -1,4 +1,5 @@ - +import time +import os import json from typing import List, Set, Dict, Tuple, Optional import random @@ -14,8 +15,10 @@ import bang.expansions.fistful_of_cards.card_events as ce import bang.expansions.high_noon.card_events as ceh import bang.expansions.gold_rush.shop_cards as grc import bang.expansions.gold_rush.characters as grch +import datadog + class Game: - def __init__(self, name, sio:socketio): + def __init__(self, name, sio:socketio, dd_api:datadog.api = None): super().__init__() self.sio = sio self.name = name @@ -447,6 +450,8 @@ class Game: if not self.someone_won: self.someone_won = True self.sio.emit('chat_message', room=self.name, data=f'_won|{p.name}|{p.role.name}') + if self.dd_api: + self.dd_api.Metric.send(metric='player_win', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{p.character.name}", f"role:{p.role.name}"]) p.notify_self() if hasattr(self.sio, 'is_fake'): print('announces_winners(): Running for tests, you will have to call reset manually!') @@ -604,6 +609,8 @@ class Game: self.is_handling_death = True import bang.expansions.dodge_city.characters as chd print(f'{self.name}: the killer is {player.attacker}') + if self.dd_api: + self.dd_api.Metric.send(metric='player_death', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{player.character.name}", f"role:{player.role.name}"]) if len([c for c in player.gold_rush_equipment if isinstance(c, grc.Ricercato)]) > 0 and player.attacker and player.attacker in self.players: player.attacker.gold_nuggets += 1 player.attacker.hand.append(self.deck.draw(True)) diff --git a/backend/server.py b/backend/server.py index 388c040..408b0bb 100644 --- a/backend/server.py +++ b/backend/server.py @@ -184,7 +184,7 @@ def create_room(sid, room_name): room_name += f'_{random.randint(0,100)}' sio.leave_room(sid, 'lobby') sio.enter_room(sid, room_name) - g = Game(room_name, sio) + g = Game(room_name, sio, api if send_metrics else None) g.add_player(sio.get_session(sid)) if room_name in blacklist: g.is_hidden = True @@ -284,7 +284,7 @@ def start_game(sid): ses.game.start_game() advertise_lobbies() if send_metrics: - api.Metric.send(metric='start_game', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", [f"exp:{e}" for e in ses.game.expansions]]) + api.Metric.send(metric='start_game', points=[(int(time.time()), 1)], tags=(["server:backend", f"host:{os.environ['HOST']}"] + [f"exp:{e}" for e in ses.game.expansions])) @sio.event def set_character(sid, name):