diff --git a/etherlink/bin_node/lib_dev/metrics.ml b/etherlink/bin_node/lib_dev/metrics.ml index c61bce377186e9647584211d35822a7aa04e7847..2f6cc7341aea0b999f7a7c50e31ec378254b4b30 100644 --- a/etherlink/bin_node/lib_dev/metrics.ml +++ b/etherlink/bin_node/lib_dev/metrics.ml @@ -255,6 +255,14 @@ module BlueprintChunkSent = struct "blueprint_chunks_sent_on_dal" end +let signals_sent = + Counter.v + ~registry + ~help:"Number of DAL import signals sent on the inbox" + ~namespace + ~subsystem + "signals_sent" + let metrics = let name = "Etherlink" in let chain = Chain.init name in diff --git a/etherlink/bin_node/lib_dev/signals_publisher.ml b/etherlink/bin_node/lib_dev/signals_publisher.ml index ff4d6e63d202ab07802763ce0e1ed4f28b63cd10..6072d56c659bac54b8a01aa3cc06f4f5133d30e6 100644 --- a/etherlink/bin_node/lib_dev/signals_publisher.ml +++ b/etherlink/bin_node/lib_dev/signals_publisher.ml @@ -161,6 +161,11 @@ module Worker = struct ~signals ~smart_rollup_address:state.smart_rollup_address in + let () = + Prometheus.Counter.inc + Metrics.signals_sent + (Int.to_float @@ List.length signals) + in Rollup_services.publish ~keep_alive:false ~rollup_node_endpoint:state.rollup_node_endpoint diff --git a/src/lib_smart_rollup_node/dal_injection_queue.ml b/src/lib_smart_rollup_node/dal_injection_queue.ml index d6564c69111237da6fd24d1336af45fc68af66bf..6c85b4160e50f2bb1ad717b26f434bcf492c0758 100644 --- a/src/lib_smart_rollup_node/dal_injection_queue.ml +++ b/src/lib_smart_rollup_node/dal_injection_queue.ml @@ -233,6 +233,8 @@ let inject_slot state ~slot_index ~slot_content = in let*! () = Events.(emit injected) (commitment, slot_index, l1_hash) in Recent_dal_injections.replace state.recent_dal_injections l1_hash () ; + Metrics.DAL_batcher.set_dal_injections_queue_length + (Recent_dal_injections.length state.recent_dal_injections) ; return_unit let on_register state ~message : unit tzresult Lwt.t = @@ -250,6 +252,8 @@ let on_register state ~message : unit tzresult Lwt.t = tzfail @@ Rollup_node_errors.Dal_message_too_big {slot_size; message_size} else ( Pending_messages.replace state.pending_messages state.count_messages message ; + Metrics.DAL_batcher.set_dal_batcher_queue_length + (Pending_messages.length state.pending_messages) ; (* We don't care about overflows here. *) state.count_messages <- state.count_messages + 1 ; let*! () = Events.(emit dal_message_received) () in @@ -296,6 +300,8 @@ let fill_slot state ~slot_size = else (* Pop the element to remove it. *) let () = ignore @@ Pending_messages.take state.pending_messages in + Metrics.DAL_batcher.set_dal_batcher_queue_length + (Pending_messages.length state.pending_messages) ; fill_slot_aux (message :: accu) ~remaining_size in fill_slot_aux [] ~remaining_size:slot_size @@ -539,4 +545,6 @@ let forget_injection_id id = let open Result_syntax in let+ w = Result.map_error TzTrace.make (Lazy.force worker) in let state = Worker.state w in - Recent_dal_injections.remove state.recent_dal_injections id + let () = Recent_dal_injections.remove state.recent_dal_injections id in + Metrics.DAL_batcher.set_dal_injections_queue_length + (Recent_dal_injections.length state.recent_dal_injections) diff --git a/src/lib_smart_rollup_node/metrics.ml b/src/lib_smart_rollup_node/metrics.ml index 050e042b0d8b07b6585697a84af6762e8f1d2f4c..2f92549bb1d70b7b777c3c99e54fad3e34adde60 100644 --- a/src/lib_smart_rollup_node/metrics.ml +++ b/src/lib_smart_rollup_node/metrics.ml @@ -335,6 +335,20 @@ module Batcher = struct set_gauge "Last batch time" "batcher_last_batch_time" Ptime.to_float_s end +module DAL_batcher = struct + let set_dal_batcher_queue_length = + set_gauge + "Number of messages waiting for publication on the DAL" + "dal_batcher_queue_length" + Int.to_float + + let set_dal_injections_queue_length = + set_gauge + "Number of recently published DAL slots, who have not yet been forgotten" + "dal_injections_queue_length" + Int.to_float +end + module Performance = struct let virtual_ = v_gauge ~help:"Size Memory Stats" "performance_virtual" diff --git a/src/lib_smart_rollup_node/metrics.mli b/src/lib_smart_rollup_node/metrics.mli index 2b0afd3dea7b88b62cf5d5ca839626433fa45c5a..4b34d19f7510ae72f1d94909192e9add61668599 100644 --- a/src/lib_smart_rollup_node/metrics.mli +++ b/src/lib_smart_rollup_node/metrics.mli @@ -110,6 +110,14 @@ module Batcher : sig val set_last_batch_time : Ptime.t -> unit end +module DAL_batcher : sig + (** Set the number of messages in the queue waiting to be published on the DAL *) + val set_dal_batcher_queue_length : int -> unit + + (** Set the number of DAL slots which were recently published and not yet forgotten *) + val set_dal_injections_queue_length : int -> unit +end + module GC : sig (** Set the time to process a GC *) val set_process_time : Ptime.span -> unit