Merge pull request #55 from imandra-ai/simon/fix-gc-metrics-2024-07-22

fix: emit GC metrics even in the absence of custom metrics
This commit is contained in:
Simon Cruanes 2024-07-22 11:04:29 -04:00 committed by GitHub
commit f346491925
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 4 deletions

View file

@ -289,8 +289,8 @@ end = struct
let batch_max_size_ = 200
let should_send_batch_ ~config ~now (b : _ Batch.t) : bool =
Batch.len b > 0
let should_send_batch_ ?(side = []) ~config ~now (b : _ Batch.t) : bool =
(Batch.len b > 0 || side != [])
&& (Batch.len b >= batch_max_size_
||
let timeout = Mtime.Span.(config.Config.batch_timeout_ms * ms) in
@ -348,12 +348,17 @@ end = struct
Queue.clear local_q;
if !must_flush_all then (
if Batch.len batches.metrics > 0 then send_metrics ();
if Batch.len batches.metrics > 0 || not (AList.is_empty gc_metrics)
then
send_metrics ();
if Batch.len batches.logs > 0 then send_logs ();
if Batch.len batches.traces > 0 then send_traces ()
) else (
let now = Mtime_clock.now () in
if should_send_batch_ ~config ~now batches.metrics then
if
should_send_batch_ ~config ~now batches.metrics
~side:(AList.get gc_metrics)
then
send_metrics ();
if should_send_batch_ ~config ~now batches.traces then send_traces ();

View file

@ -4,6 +4,11 @@ type 'a t = 'a list Atomic.t
let make () = Atomic.make []
let[@inline] is_empty self : bool =
match Atomic.get self with
| [] -> true
| _ :: _ -> false
let get = Atomic.get
let add self x =

View file

@ -5,6 +5,8 @@ type 'a t
val get : 'a t -> 'a list
(** Snapshot *)
val is_empty : _ t -> bool
val make : unit -> 'a t
val add : 'a t -> 'a -> unit