From 581bf496e6ebabb36e867c4e9d6020909e4b48af 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:46:28 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Sentry=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20?= =?UTF-8?q?=EB=B0=B0=EC=B9=98=20=EB=88=84=EB=9D=BD=20=EC=A0=9C=EA=B1=B0=20?= =?UTF-8?q?(#505)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 변경 사항 - Sentry 이벤트 배치 검색을 OR 식에서 배열 식으로 변경합니다. - 운영에서 확인된 `onboarding_step`, `screen_view`, `ui_action`이 모두 반환됩니다. - 이벤트가 늘어나도 10개씩 나눠 전체 목록의 일별 통계를 조회합니다. ## 검증 - 운영 Sentry 배열 검색 200 및 전체 3개 이벤트 반환 - `SentryClientTest` 성공 --- .../swyp/picke/domain/admin/analytics/SentryClient.java | 8 +++----- .../picke/domain/admin/analytics/SentryClientTest.java | 1 + 2 files changed, 4 insertions(+), 5 deletions(-) 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 55174b3..1ae6ab9 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 @@ -376,11 +376,9 @@ private URI analyticsEventCatalogUri(String project, LocalDate from, LocalDate t private URI analyticsEventTimeseriesUri( String project, List events, LocalDate from, LocalDate to) { - String query = events.stream() - .map(event -> "analytics_event:\"" + event.replace("\"", "\\\"") + "\"") - .reduce((left, right) -> left + " OR " + right) - .map(value -> events.size() > 1 ? "(" + value + ")" : value) - .orElse("has:analytics_event"); + String query = events.isEmpty() + ? "has:analytics_event" + : ANALYTICS_EVENT_FIELD + ":[" + String.join(",", events) + "]"; return UriComponentsBuilder.fromUriString(baseUrl) .path("/api/0/organizations/{organization}/events-stats/") .queryParam("project", project) 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 2336945..45fea6d 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 @@ -295,6 +295,7 @@ void groupsEveryAnalyticsEventLikeMixpanel() { assertThat(transport.uris).anyMatch(uri -> uri.getPath().endsWith("/events-stats/") && uri.getQuery().contains("field=analytics_event") && uri.getQuery().contains("topEvents=2") + && uri.getQuery().contains("query=analytics_event:[ui_action,sign_up]") && uri.getQuery().contains("sort=analytics_event") && uri.getQuery().contains("partial=1") && uri.getQuery().contains("yAxis=count_unique(user)"));