Skip to content

Commit

Permalink
feat(replays): Log to stdout when a slow click event is detected (#48775
Browse files Browse the repository at this point in the history
)

Temporary measure to evaluate how common slow click events are.
  • Loading branch information
cmanallen authored and volokluev committed May 30, 2023
1 parent 492d821 commit aaf2668
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
13 changes: 11 additions & 2 deletions src/sentry/replays/usecases/ingest/dom_index.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import logging
import time
import uuid
from hashlib import md5
Expand All @@ -8,6 +9,8 @@
from sentry.utils import json, kafka_config, metrics
from sentry.utils.pubsub import KafkaPublisher

logger = logging.getLogger("sentry.replays")

EVENT_LIMIT = 20

replay_publisher: Optional[KafkaPublisher] = None
Expand Down Expand Up @@ -66,7 +69,7 @@ def parse_replay_actions(
segment_data: List[Dict[str, Any]],
) -> Optional[ReplayActionsEvent]:
"""Parse RRWeb payload to ReplayActionsEvent."""
actions = get_user_actions(replay_id, segment_data)
actions = get_user_actions(project_id, replay_id, segment_data)
if len(actions) == 0:
return None

Expand Down Expand Up @@ -102,6 +105,7 @@ def create_replay_actions_payload(


def get_user_actions(
project_id: int,
replay_id: str,
events: List[Dict[str, Any]],
) -> List[ReplayActionsEventPayloadClick]:
Expand Down Expand Up @@ -131,7 +135,12 @@ def get_user_actions(

if event.get("type") == 5 and event.get("data", {}).get("tag") == "breadcrumb":
payload = event["data"].get("payload", {})
if payload.get("category") == "ui.click":
category = payload.get("category")
if category == "ui.slowClickDetected":
payload["project_id"] = project_id
payload["replay_id"] = replay_id
logger.info("Slow click detected", extra=payload)
elif category == "ui.click":
node = payload.get("data", {}).get("node")
if node is None:
continue
Expand Down
4 changes: 2 additions & 2 deletions tests/sentry/replays/unit/test_ingest_dom_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def test_get_user_actions():
}
]

user_actions = get_user_actions(uuid.uuid4().hex, events)
user_actions = get_user_actions(1, uuid.uuid4().hex, events)
assert len(user_actions) == 1
assert user_actions[0]["node_id"] == 1
assert user_actions[0]["tag"] == "div"
Expand Down Expand Up @@ -79,7 +79,7 @@ def test_get_user_actions_missing_node():
}
]

user_actions = get_user_actions(uuid.uuid4().hex, events)
user_actions = get_user_actions(1, uuid.uuid4().hex, events)
assert len(user_actions) == 0


Expand Down

0 comments on commit aaf2668

Please sign in to comment.