package devkit

  1. Overview
  2. Docs

Global register for various types of counters. Logstash module will send all Var counters to logstash automatically. Counters must be mononotonically increasing for logstash to send correct deltas to Elasticsearch.

type attributes = (string * string) list
type t =
  1. | Time of Time.t
  2. | Count of int
  3. | Bytes of int
val show_a : (string * string) list -> string
val is_in_families : string -> bool
class typ : string -> ?attr:attributes -> string -> object ... end

new typ type ?attr key registers new type of counters with designated attributes and key name

val cc : ('a -> string) -> string -> ?attr:attributes -> string -> 'a Cache.Count.t

cc pp type ?attr key new set of counters with designated type, attributes and key name

Logstash events will have attributes as follows : * all of attr key value pairs (if given) * class=type * key=X where X is value inserted into CC

Guidelines for picking names : keep number of different key names low (makes ES happy), uniqueness of events is primarily provided by class.

Bad example : let pages = new Var.cc "tool.pages" "pages" let index = new Var.cc "tool.index" "index" let count = new Var.cc "tool.count" "count"

Better : let pages = new Var.cc "tool.pages" "kind" let pages = new Var.cc "tool.index" "kind" let pages = new Var.cc "tool.count" "kind"

val cc_ms : ('a -> string) -> string -> ?attr:attributes -> string -> 'a Cache.Count.t

cc pp type ?attr key new set of counters with designated type, attributes and key name, treated as milliseconds

val iter : (attributes -> t -> unit) -> unit

callback takes attributes and value

val list_stats : string list -> string list

list_stats filter

  • returns

    a list containing a printed line for each counter whose type is in filter.