@@ -259,6 +259,7 @@ init(#{uid := UId,
259
259
LastIdx = State0 #? MODULE .last_index ,
260
260
put_counter (Cfg , ? C_RA_SVR_METRIC_LAST_INDEX , LastIdx ),
261
261
put_counter (Cfg , ? C_RA_SVR_METRIC_LAST_WRITTEN_INDEX , LastIdx ),
262
+ put_counter (Cfg , ? C_RA_SVR_METRIC_NUM_SEGMENTS , ra_log_reader :segment_ref_count (Reader )),
262
263
case ra_snapshot :latest_checkpoint (SnapshotState ) of
263
264
undefined ->
264
265
ok ;
@@ -679,12 +680,13 @@ handle_event({written, _Term, {FromIdx, _}} = Evt,
679
680
State #? MODULE {last_written_index_term = {Expected , Term }})
680
681
end ;
681
682
handle_event ({segments , TidRanges , NewSegs },
682
- #? MODULE {cfg = # cfg {uid = UId , names = Names },
683
+ #? MODULE {cfg = # cfg {uid = UId , names = Names } = Cfg ,
683
684
reader = Reader0 ,
684
685
mem_table = Mt0 ,
685
686
readers = Readers
686
687
} = State0 ) ->
687
688
Reader = ra_log_reader :update_segments (NewSegs , Reader0 ),
689
+ put_counter (Cfg , ? C_RA_SVR_METRIC_NUM_SEGMENTS , ra_log_reader :segment_ref_count (Reader )),
688
690
% % the tid ranges arrive in the reverse order they were written
689
691
% % (new -> old) so we need to foldr here to process the oldest first
690
692
Mt = lists :foldr (
@@ -1161,7 +1163,7 @@ log_update_effects(Pids, ReplyPid, #?MODULE{first_index = Idx,
1161
1163
% % the Idx argument
1162
1164
delete_segments (SnapIdx , #? MODULE {cfg = # cfg {log_id = LogId ,
1163
1165
segment_writer = SegWriter ,
1164
- uid = UId },
1166
+ uid = UId } = Cfg ,
1165
1167
readers = Readers ,
1166
1168
reader = Reader0 } = State0 ) ->
1167
1169
case ra_log_reader :update_first_index (SnapIdx + 1 , Reader0 ) of
@@ -1178,6 +1180,7 @@ delete_segments(SnapIdx, #?MODULE{cfg = #cfg{log_id = LogId,
1178
1180
NumActive = ra_log_reader :segment_ref_count (Reader ),
1179
1181
? DEBUG (" ~ts : ~b obsolete segments at ~b - remaining: ~b , pivot ~0p " ,
1180
1182
[LogId , length (Obsolete ), SnapIdx , NumActive , Pivot ]),
1183
+ put_counter (Cfg , ? C_RA_SVR_METRIC_NUM_SEGMENTS , NumActive ),
1181
1184
State = State0 #? MODULE {reader = Reader },
1182
1185
{State , log_update_effects (Readers , Pid , State )}
1183
1186
end .
0 commit comments