@@ -47,6 +47,7 @@ setup() ->
4747 setup_metrics (telemetry_registry ()),
4848 setup_metrics ('per-object' ),
4949 setup_metrics ('memory-breakdown' ),
50+ setup_metrics ('raft' ),
5051 setup_metrics ('detailed' ).
5152
5253setup_metrics (Registry ) ->
@@ -88,6 +89,11 @@ gen_response(<<"GET">>, Request) ->
8889gen_response (_ , Request ) ->
8990 Request .
9091
92+ gen_metrics_response (raft , Request ) ->
93+ {Code , RespHeaders , Body } = reply (raft , Request ),
94+
95+ Headers = to_cowboy_headers (RespHeaders ),
96+ cowboy_req :reply (Code , maps :from_list (Headers ), Body , Request );
9197gen_metrics_response (Registry , Request ) ->
9298 {Code , RespHeaders , Body } = reply (Registry , Request ),
9399
@@ -119,6 +125,18 @@ format_metrics(Request, Registry) ->
119125 <<" gzip" >>]),
120126 encode_format (ContentType , binary_to_list (Encoding ), Scrape , Registry ).
121127
128+ render_format (ContentType , raft = Registry ) ->
129+ Scrape = prometheus_summary :observe_duration (
130+ Registry ,
131+ ? SCRAPE_DURATION ,
132+ [Registry , ContentType ],
133+ % fun () -> seshat:prom_format(ra, "raft", [term, snapshot_index, last_applied, commit_index, last_written_index, commit_latency, num_segments]) end),
134+ fun () -> seshat :prom_format (ra , " raft" ) end ),
135+ prometheus_summary :observe (Registry ,
136+ ? SCRAPE_SIZE ,
137+ [Registry , ContentType ],
138+ iolist_size (Scrape )),
139+ Scrape ;
122140render_format (ContentType , Registry ) ->
123141 Scrape = prometheus_summary :observe_duration (
124142 Registry ,
0 commit comments