Skip to content

Commit b3eca2e

Browse files
committed
feat(release health): Update snuba metrics to know about session unhandled state
1 parent b7c5dec commit b3eca2e

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

src/sentry/snuba/metrics/fields/snql.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,20 @@ def all_users(org_id: int, metric_ids: Sequence[int], alias: str | None = None)
246246
return uniq_aggregation_on_metric(metric_ids, alias)
247247

248248

249+
def unhandled_sessions(
250+
org_id: int, metric_ids: Sequence[int], alias: str | None = None
251+
) -> Function:
252+
return _counter_sum_aggregation_on_session_status_factory(
253+
org_id, session_status="unhandled", metric_ids=metric_ids, alias=alias
254+
)
255+
256+
257+
def unhandled_users(org_id: int, metric_ids: Sequence[int], alias: str | None = None) -> Function:
258+
return _set_uniq_aggregation_on_session_status_factory(
259+
org_id, session_status="unhandled", metric_ids=metric_ids, alias=alias
260+
)
261+
262+
249263
def crashed_sessions(org_id: int, metric_ids: Sequence[int], alias: str | None = None) -> Function:
250264
return _counter_sum_aggregation_on_session_status_factory(
251265
org_id, session_status="crashed", metric_ids=metric_ids, alias=alias

src/sentry/snuba/metrics/naming_layer/mri.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,32 @@ class SessionMRI(Enum):
7272
ERRORED_PREAGGREGATED = "e:sessions/error.preaggr@none"
7373
ERRORED_SET = "e:sessions/error.unique@none"
7474
ERRORED_ALL = "e:sessions/all_errored@none"
75+
HANDLED = "e:sessions/handled.unique@none" # all sessions excluding handled and crashed
76+
UNHANDLED = "e:sessions/unhandled@none" # unhandled, does not include crashed
7577
CRASHED_AND_ABNORMAL = "e:sessions/crashed_abnormal@none"
7678
CRASHED = "e:sessions/crashed@none"
7779
CRASH_FREE = "e:sessions/crash_free@none"
7880
ABNORMAL = "e:sessions/abnormal@none"
81+
HANDLED_RATE = "e:sessions/handled_rate@ratio" # all sessions excluding handled and crashed
82+
UNHANDLED_RATE = "e:sessions/unhandled_rate@ratio" # unhandled, does not include crashed
7983
CRASH_RATE = "e:sessions/crash_rate@ratio"
80-
CRASH_FREE_RATE = "e:sessions/crash_free_rate@ratio"
84+
CRASH_FREE_RATE = "e:sessions/crash_free_rate@ratio" # includes handled and unhandled
8185
ALL_USER = "e:sessions/user.all@none"
8286
HEALTHY_USER = "e:sessions/user.healthy@none"
8387
ERRORED_USER = "e:sessions/user.errored@none"
8488
ERRORED_USER_ALL = "e:sessions/user.all_errored@none"
89+
HANDLED_USER = "e:sessions/user.handled@none" # all sessions excluding handled and crashed
90+
UNHANDLED_USER = "e:sessions/user.unhandled@none" # unhandled, does not include crashed
8591
CRASHED_AND_ABNORMAL_USER = "e:sessions/user.crashed_abnormal@none"
8692
CRASHED_USER = "e:sessions/user.crashed@none"
8793
CRASH_FREE_USER = "e:sessions/user.crash_free@none"
8894
ABNORMAL_USER = "e:sessions/user.abnormal@none"
95+
HANDLED_USER_RATE = (
96+
"e:sessions/user.handled_rate@ratio" # all sessions excluding handled and crashed
97+
)
98+
UNHANDLED_USER_RATE = (
99+
"e:sessions/user.unhandled_rate@ratio" # unhandled, does not include crashed
100+
)
89101
CRASH_USER_RATE = "e:sessions/user.crash_rate@ratio"
90102
CRASH_FREE_USER_RATE = "e:sessions/user.crash_free_rate@ratio"
91103
ANR_USER = "e:sessions/user.anr@none"

src/sentry/snuba/metrics/naming_layer/public.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class SessionMetricKey(Enum):
3636
DURATION = "session.duration"
3737
ALL = "session.all"
3838
ABNORMAL = "session.abnormal"
39+
UNHANDLED = "session.unhandled"
3940
CRASHED = "session.crashed"
4041
CRASH_FREE = "session.crash_free"
4142
ERRORED = "session.errored"
@@ -46,6 +47,7 @@ class SessionMetricKey(Enum):
4647
ALL_USER = "session.all_user"
4748
ABNORMAL_USER = "session.abnormal_user"
4849
CRASHED_USER = "session.crashed_user"
50+
UNHANDLED_USER = "session.unhandled_user"
4951
CRASH_FREE_USER = "session.crash_free_user"
5052
ERRORED_USER = "session.errored_user"
5153
HEALTHY_USER = "session.healthy_user"

0 commit comments

Comments
 (0)