mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-08 03:47:59 -04:00
Allowing configuring start time
This commit is contained in:
parent
18f58c3ac5
commit
31a712dd30
2 changed files with 24 additions and 13 deletions
|
|
@ -7,23 +7,25 @@ type 'a t = {
|
|||
mutable start: Mtime.t;
|
||||
}
|
||||
|
||||
let high_watermark batch_size =
|
||||
let default_high_watermark batch_size =
|
||||
if batch_size = 1 then
|
||||
100
|
||||
else
|
||||
batch_size * 10
|
||||
|
||||
let make ?(batch = 1) ?(high_watermark = high_watermark batch) ?timeout () : _ t
|
||||
=
|
||||
let make ?(batch = 1) ?high_watermark ?now ?timeout () : _ t =
|
||||
let high_watermark =
|
||||
match high_watermark with
|
||||
| Some x -> x
|
||||
| None -> default_high_watermark batch
|
||||
in
|
||||
let start =
|
||||
match now with
|
||||
| Some x -> x
|
||||
| None -> Mtime_clock.now ()
|
||||
in
|
||||
assert (batch > 0);
|
||||
{
|
||||
size = 0;
|
||||
start = Mtime_clock.now ();
|
||||
q = [];
|
||||
batch;
|
||||
timeout;
|
||||
high_watermark;
|
||||
}
|
||||
{ size = 0; q = []; start; batch; timeout; high_watermark }
|
||||
|
||||
let timeout_expired_ ~now self : bool =
|
||||
match self.timeout with
|
||||
|
|
|
|||
|
|
@ -3,7 +3,12 @@
|
|||
type 'a t
|
||||
|
||||
val make :
|
||||
?batch:int -> ?high_watermark:int -> ?timeout:Mtime.span -> unit -> 'a t
|
||||
?batch:int ->
|
||||
?high_watermark:int ->
|
||||
?now:Mtime.t ->
|
||||
?timeout:Mtime.span ->
|
||||
unit ->
|
||||
'a t
|
||||
(** [make ()] is a new batch
|
||||
|
||||
@param batch
|
||||
|
|
@ -17,6 +22,8 @@ val make :
|
|||
transmission in case of signal floods. Default
|
||||
[if batch = 1 then 100 else batch * 10].
|
||||
|
||||
@param now the current time. Default [Mtime_clock.now ()].
|
||||
|
||||
@param timeout
|
||||
the time span after which a batch is ready to pop, whether or not it is
|
||||
{b full}. *)
|
||||
|
|
@ -35,7 +42,9 @@ val pop_if_ready : ?force:bool -> now:Mtime.t -> 'a t -> 'a list option
|
|||
|
||||
@param now the current time
|
||||
|
||||
@param force override the other batch conditions *)
|
||||
@param force
|
||||
override the other batch conditions, for when when we just want to emit
|
||||
batches before exit or because the user asks for it *)
|
||||
|
||||
val push : 'a t -> 'a list -> [ `Dropped | `Ok ]
|
||||
(** [push b xs] is [`Ok] if it succeeds in pushing the values in [xs] into the batch
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue