From 76049a43e7e0d4bd0a840603ab8bbe7afb9de4b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=84=9C=EC=9B=90=EC=A7=80?= Date: Mon, 14 Sep 2026 13:40:14 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Sentry=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EA=B2=B0=EC=B8=A1?= =?UTF-8?q?=EA=B0=92=20=EC=9C=A0=EC=A7=80=20(#503)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 변경 사항 - Sentry `sign_up` metric의 발생 수는 이벤트로 표시합니다. - metric에서 제공하지 않는 고유 사용자 수는 0으로 바꾸지 않고 `null`로 유지해 AdminWeb에서 `—`로 표시합니다. ## 검증 - `SentryClientTest` 성공 - 일별 고유 사용자 값이 모두 null인지 회귀 테스트 추가 --- .../com/swyp/picke/domain/admin/analytics/SentryClient.java | 2 +- .../swyp/picke/domain/admin/analytics/SentryClientTest.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/swyp/picke/domain/admin/analytics/SentryClient.java b/src/main/java/com/swyp/picke/domain/admin/analytics/SentryClient.java index 478b21b..55174b3 100644 --- a/src/main/java/com/swyp/picke/domain/admin/analytics/SentryClient.java +++ b/src/main/java/com/swyp/picke/domain/admin/analytics/SentryClient.java @@ -339,7 +339,7 @@ private java.util.Optional analyticsEven return java.util.Optional.empty(); } List days = signUps.days().stream() - .map(day -> new SentryIssueReport.AnalyticsEventDay(day.date(), day.events(), 0L)) + .map(day -> new SentryIssueReport.AnalyticsEventDay(day.date(), day.events(), null)) .toList(); Instant firstSeen = signUps.days().stream() .filter(day -> day.events() > 0) diff --git a/src/test/java/com/swyp/picke/domain/admin/analytics/SentryClientTest.java b/src/test/java/com/swyp/picke/domain/admin/analytics/SentryClientTest.java index 6bae5f5..2336945 100644 --- a/src/test/java/com/swyp/picke/domain/admin/analytics/SentryClientTest.java +++ b/src/test/java/com/swyp/picke/domain/admin/analytics/SentryClientTest.java @@ -244,6 +244,9 @@ void fetchesEveryProjectWithAbsoluteRange() { SentryIssueReport.AnalyticsEventSeries::total, SentryIssueReport.AnalyticsEventSeries::uniqueUsers) .containsExactly(tuple("sign_up", 6L, null)); + assertThat(result.projects().getFirst().analyticsEvents().events().getFirst().days()) + .extracting(SentryIssueReport.AnalyticsEventDay::uniqueUsers) + .containsOnlyNulls(); assertThat(result.projects().getFirst().metricCatalog().entries().getFirst()) .containsEntry("name", "app.launch.count") .containsEntry("count", 8);