From ab5a05d539aba66147d3b48db335d5fbefcd34df Mon Sep 17 00:00:00 2001 From: Roy Date: Mon, 14 Sep 2026 13:38:05 +0900 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=88=98=EB=A5=BC=20=EC=B6=94?= =?UTF-8?q?=EC=B8=A1=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B2=8C=20=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Constraint: Sentry sign_up metric에는 고유 사용자 집계가 없다 Rejected: 알 수 없는 사용자 수를 0으로 표시 | 실제 0명으로 오해하게 한다 Confidence: high Scope-risk: narrow Directive: 결측 사용자 수는 null을 유지한다 Tested: SentryClientTest Not-tested: 브라우저 런타임은 Orca 연결 실패로 미확인 --- .../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);