package tracing

  1. Overview
  2. Docs
val direct_file_destination : ?buffer_size:int -> filename:string -> unit -> (module Tracing_zero__.Writer_intf.Destination)

Write to a file using synchronous writes, not suitable for low latency applications.

val file_destination : filename:string -> unit -> (module Tracing_zero__.Writer_intf.Destination)

Write to a file in some way with the best available performance.

val iobuf_destination : (Core.read_write, Iobuf.seek) Iobuf.t -> (module Tracing_zero__.Writer_intf.Destination)

Write to a provided Iobuf.t, throws an exception if the buffer runs out of space. Mostly intended for use in tests. After the Destination is closed, sets the window of the Iobuf.t to the data written.

val black_hole_destination : len:int -> touch_memory:bool -> (module Tracing_zero__.Writer_intf.Destination)

Creates a new buffer, which is reset and reused on every call to next_buf, effectively dropping all the previously-recorded content, as the name suggests. Useful for performance benchmarking or having trace events be ignored without growing an in-memory log.

len is the length of the buffer and can be tuned to simulate different cache characteristics in a benchmark or avoid using much memory when ignoring events.

If touch_memory is true, the memory will be written over to ensure all the memory is paged in, to reduce benchmark variance.

module Buffer_until_initialized : sig ... end

Starts by keeping events in internal memory buffers. After set_destination is called it will copy any buffered events into the new destination upon the next buffer switch, then provide a buffer directly from the newly set destination.