diff --git a/backend/server.py b/backend/server.py index 7ebe1b8..c4fc2f2 100644 --- a/backend/server.py +++ b/backend/server.py @@ -12,6 +12,7 @@ from bang.players import Player, PendingAction import requests from discord_webhook import DiscordWebhook from metrics import Metrics +from ddtrace import tracer Metrics.init() @@ -101,6 +102,7 @@ def set_username(sid, username): sio.emit('me', data=ses.name, room=sid) ses.game.notify_room() +@tracer.wrap @sio.event def get_me(sid, room): if isinstance(sio.get_session(sid), Player): @@ -153,6 +155,7 @@ def get_me(sid, room): if not sio.get_session(sid).game.started: sio.get_session(sid).game.notify_room() +@tracer.wrap @sio.event def disconnect(sid): global online_players @@ -166,6 +169,7 @@ def disconnect(sid): advertise_lobbies() Metrics.send_metric('online_players', points=[online_players]) +@tracer.wrap @sio.event def create_room(sid, room_name): if sio.get_session(sid).game == None: @@ -200,6 +204,7 @@ def toggle_comp(sid): def toggle_replace_with_bot(sid): sio.get_session(sid).game.toggle_disconnect_bot() +@tracer.wrap @sio.event def join_room(sid, room): room_name = room['name'] @@ -229,6 +234,7 @@ def join_room(sid, room): Sockets for the status page """ +@tracer.wrap @sio.event def get_all_rooms(sid, deploy_key): if 'DEPLOY_KEY' in os.environ and deploy_key == os.environ['DEPLOY_KEY']: @@ -273,6 +279,7 @@ def start_game(sid): ses.game.start_game() advertise_lobbies() +@tracer.wrap @sio.event def set_character(sid, name): ses: Player = sio.get_session(sid) @@ -286,66 +293,77 @@ def refresh(sid): ses: Player = sio.get_session(sid) ses.notify_self() +@tracer.wrap @sio.event def draw(sid, pile): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};draw;{pile}') ses.draw(pile) +@tracer.wrap @sio.event def pick(sid): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};pick') ses.pick() +@tracer.wrap @sio.event def end_turn(sid): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};end_turn') ses.end_turn() +@tracer.wrap @sio.event def play_card(sid, data): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};play_card;{json.dumps(data)}') ses.play_card(data['index'], data['against'], data['with']) +@tracer.wrap @sio.event def respond(sid, card_index): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};respond;{card_index}') ses.respond(card_index) +@tracer.wrap @sio.event def choose(sid, card_index): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};choose;{card_index}') ses.choose(card_index) +@tracer.wrap @sio.event def scrap(sid, card_index): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};scrap;{card_index}') ses.scrap(card_index) +@tracer.wrap @sio.event def special(sid, data): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};special;{json.dumps(data)}') ses.special(data) +@tracer.wrap @sio.event def gold_rush_discard(sid): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};gold_rush_discard;') ses.gold_rush_discard() +@tracer.wrap @sio.event def buy_gold_rush_card(sid, data:int): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};buy_gold_rush_card;{data}') ses.buy_gold_rush_card(data) +@tracer.wrap @sio.event def chat_message(sid, msg, pl=None): ses: Player = sio.get_session(sid) if pl is None else pl