@@ -49,6 +49,10 @@ public Result initialize(SseTrackingHooks hooks) {
4949 Timer .Sample totalResponseTimer = Timer .start ();
5050
5151 sseConnectionCounter .increment ();
52+
53+ // 활성 연결 수 증가
54+ com .thefirsttake .app .config .MetricsConfig .getGlobalActiveConnections ().incrementAndGet ();
55+
5256 Timer .Sample connectionTimer = Timer .start ();
5357
5458 CompletableFuture .delayedExecutor (120 , TimeUnit .SECONDS ).execute (() -> {
@@ -59,6 +63,8 @@ public Result initialize(SseTrackingHooks hooks) {
5963 connectionTimer .stop (sseConnectionDurationTimer );
6064 totalResponseTimer .stop (sseApiTotalResponseTimer );
6165 sseDisconnectionCounter .increment ();
66+ // 활성 연결 수 감소
67+ com .thefirsttake .app .config .MetricsConfig .getGlobalActiveConnections ().decrementAndGet ();
6268 hooks .onEnd (connectionCreationTimer , connectionLifetimeTimer , "force_timeout" , connectionId );
6369 }
6470 try { emitter .complete (); } catch (Exception e ) { log .warn ("강제 종료 중 오류: {}" , e .getMessage ()); }
@@ -71,6 +77,8 @@ public Result initialize(SseTrackingHooks hooks) {
7177 connectionTimer .stop (sseConnectionDurationTimer );
7278 totalResponseTimer .stop (sseApiTotalResponseTimer );
7379 sseDisconnectionCounter .increment ();
80+ // 활성 연결 수 감소
81+ com .thefirsttake .app .config .MetricsConfig .getGlobalActiveConnections ().decrementAndGet ();
7482 hooks .onEnd (connectionCreationTimer , connectionLifetimeTimer , "completion" , connectionId );
7583 }
7684 });
@@ -80,6 +88,8 @@ public Result initialize(SseTrackingHooks hooks) {
8088 connectionTimer .stop (sseConnectionDurationTimer );
8189 totalResponseTimer .stop (sseApiTotalResponseTimer );
8290 sseDisconnectionCounter .increment ();
91+ // 활성 연결 수 감소
92+ com .thefirsttake .app .config .MetricsConfig .getGlobalActiveConnections ().decrementAndGet ();
8393 hooks .onEnd (connectionCreationTimer , connectionLifetimeTimer , "timeout" , connectionId );
8494 }
8595 });
@@ -89,6 +99,8 @@ public Result initialize(SseTrackingHooks hooks) {
8999 connectionTimer .stop (sseConnectionDurationTimer );
90100 totalResponseTimer .stop (sseApiTotalResponseTimer );
91101 sseDisconnectionCounter .increment ();
102+ // 활성 연결 수 감소
103+ com .thefirsttake .app .config .MetricsConfig .getGlobalActiveConnections ().decrementAndGet ();
92104 hooks .onEnd (connectionCreationTimer , connectionLifetimeTimer , "error" , connectionId );
93105 }
94106 });
0 commit comments