This is an automated email from the ASF dual-hosted git repository.

iilyak pushed a commit to branch couch-stats-resource-tracker-v3-rebase-http-4
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit ee42e5c88735b3adef0f22fd6c0a2db328b8fef0
Author: ILYA Khlopotov <[email protected]>
AuthorDate: Wed Jun 25 08:11:42 2025 -0700

    Move rctx_record_info/0 to csrt_entry
---
 src/couch_stats/src/csrt_entry.erl  | 19 ++++++++++++++++++-
 src/couch_stats/src/csrt_logger.erl |  6 +++---
 src/couch_stats/src/csrt_util.erl   | 18 +-----------------
 3 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/src/couch_stats/src/csrt_entry.erl 
b/src/couch_stats/src/csrt_entry.erl
index f062b4908..6da42ea99 100644
--- a/src/couch_stats/src/csrt_entry.erl
+++ b/src/couch_stats/src/csrt_entry.erl
@@ -18,7 +18,8 @@
 -export([
     value/2,
     key/1,
-    from_map/1
+    from_map/1,
+    record_info/0
 ]).
 
 -spec value(rctx_field(), #rctx{}) -> any().
@@ -141,3 +142,19 @@ set_field(ioq_calls, Val, Rctx) ->
 set_field(_, _, Rctx) ->
     %% Unknown key, could throw but just move on
     Rctx.
+
+-spec record_info() ->
+    #{
+        fields => [rctx_field()],
+        size => pos_integer(),
+        field_idx => #{rctx_field() => pos_integer()}
+    }.
+record_info() ->
+    Fields = record_info(fields, rctx),
+    Size = record_info(size, rctx),
+    Idx = maps:from_list(lists:zip(Fields, lists:seq(1, length(Fields)))),
+    #{
+        fields => Fields,
+        field_idx => Idx,
+        size => Size
+    }.
diff --git a/src/couch_stats/src/csrt_logger.erl 
b/src/couch_stats/src/csrt_logger.erl
index b7d69356f..c0ec76d18 100644
--- a/src/couch_stats/src/csrt_logger.erl
+++ b/src/couch_stats/src/csrt_logger.erl
@@ -417,14 +417,14 @@ matcher_on_ioq_calls(Threshold) when
 
 %%-spec matcher_for_rctx_field(Field :: rctx_field()) -> ets:match_spec().
 %%matcher_for_rctx_field() ->
-%%    #{size := Size0, fields := Fields} = csrt_util:rctx_record_info(),
+%%    #{size := Size0, fields := Fields} = csrt_entry:record_info(),
 %%    %% Subtract 1 as record_info size includes tuple record name
-%%    %% erlang:list_to_tuple([rctx | lists:duplicate(maps:get(size, 
csrt_util:rctx_record_info()), '_')])
+%%    %% erlang:list_to_tuple([rctx | lists:duplicate(maps:get(size, 
csrt_entry:record_info()), '_')])
 %%    Size = Size - 1,
 
 -spec pid_ref_matchspec(AttrName :: rctx_field()) -> matcher() | throw(any()).
 pid_ref_matchspec(AttrName) ->
-    #{field_idx := FieldIdx} = csrt_util:rctx_record_info(),
+    #{field_idx := FieldIdx} = csrt_entry:record_info(),
     RctxMatch0 = #rctx{_ = '_'},
     RctxMatch1 = setelement(maps:get(pid_ref, FieldIdx) + 1, RctxMatch0, '$1'),
     RctxMatch = setelement(maps:get(AttrName, FieldIdx) + 1, RctxMatch1, '$2'),
diff --git a/src/couch_stats/src/csrt_util.erl 
b/src/couch_stats/src/csrt_util.erl
index 468987832..2126793b6 100644
--- a/src/couch_stats/src/csrt_util.erl
+++ b/src/couch_stats/src/csrt_util.erl
@@ -359,22 +359,6 @@ fabric_conf_key(Key) ->
     %% Double underscore to separate Mod and Func
     "fabric_rpc__" ++ atom_to_list(Key).
 
--spec rctx_record_info() ->
-    #{
-        fields => [rctx_field()],
-        size => pos_integer(),
-        field_idx => #{rctx_field() => pos_integer()}
-    }.
-rctx_record_info() ->
-    Fields = record_info(fields, rctx),
-    Size = record_info(size, rctx),
-    Idx = maps:from_list(lists:zip(Fields, lists:seq(1, length(Fields)))),
-    #{
-        fields => Fields,
-        field_idx => Idx,
-        size => Size
-    }.
-
 -ifdef(TEST).
 
 -include_lib("couch/include/couch_eunit.hrl").
@@ -432,7 +416,7 @@ t_should_not_track_init_p(_) ->
 
 t_should_extract_fields_properly(_) ->
     Rctx = #rctx{},
-    #{fields := Fields} = rctx_record_info(),
+    #{fields := Fields} = csrt_entry:record_info(),
     %% csrt_entry:value/2 throws on invalid fields, assert that the function 
succeeded
     TestField = fun(Field) ->
         try

Reply via email to