Skip to content

Commit

Permalink
Merge pull request #55 from imandra-ai/simon/fix-gc-metrics-2024-07-22
Browse files Browse the repository at this point in the history
fix: emit GC metrics even in the absence of custom metrics
  • Loading branch information
c-cube authored Jul 22, 2024
2 parents f923311 + 5d5d909 commit f346491
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/client-ocurl/opentelemetry_client_ocurl.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 ();
Expand Down
5 changes: 5 additions & 0 deletions src/core/AList.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand Down
2 changes: 2 additions & 0 deletions src/core/AList.mli
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit f346491

Please sign in to comment.