Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Cursor pagination 메세지 조회 모니터링 페이지 제작

기존에 redis stream 메세지 모니터링이 너무 불편했습니다. Intellij 로 redis cluster 접속해서 stream 확인하는데 메세지 수가 많으면 뒤에 메세지 확인하는게 너무 느렸습니다. 그래서 어떤식으로 쿼리가 날라가는지 확인해보니

[2025-12-30 20:29:19] 500 rows retrieved starting from 301 in 30 ms (execution: 8 ms, fetching: 22 ms)
0> XRANGE summary:1 - + count 1301
[2025-12-30 20:29:20] 500 rows retrieved starting from 801 in 41 ms (execution: 19 ms, fetching: 22 ms)
0> XRANGE summary:1 - + count 1801
...

위와 같이 intellij 에서는 메세지를 한꺼번에 가져온 뒤 잘라서 보여주고 있었습니다. 만약 가장 뒤의 메세지를 보고싶다면 거의 수천개를 로드해야하기떄문에 시간이 10초 이상 걸리기도 합니다.

그래서 이미 redis stream 은 cursor 기반 pagination 을 지원하고 있으므로, 이를 활용한 메세지 조회 페이지를 제작하기로 했습니다. 여기엔 2가지 구현 아이디어가 있었는데, 1. grafana 에서 직접 lua script 로 쿼리하는 방법, 2. 모니터링 서버에서 관련 API 열어놓고 grafana 에서 pagination 쿼리하는 방법이 있었습니다.

1번 redis 에 직접 lua script 로 쿼리하는건 익숙하지도 않고 비효율적인 작업이라 redis stream 의 기본 정보를 제공하는 모니터링 API 를 만들어서 grafana 에서 시각화하는 방식을 선택했습니다.

1

id search api 도 따로 제작해서 특정 id 로 바로 확인할 수 있도록 했습니다.

2

이거 그냥 search 를 따로 만들게 아니라 하나로 합쳤습니다.

3

이제 메세지 수가 많아도 빠르게 조회할 수 있게 되었습니다. redis stream 메세지 모니터링이 훨씬 편해졌네요.