package octez-libs

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Tezos_stdlib_unix.Moving_averageSource

Moving averages.

This module implements bandwidth counters based on (cumulative) exponential moving average. Each counter is identified by an integer. They are stored in an internal hash table.

See i.e. https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average for the algorithm.

Sourcetype t

Type of one bandwidth counter.

Sourcetype state

Internal state of the worker handling a family of counters.

Sourceval fresh_state : id:string -> refresh_interval:float -> state

fresh_state ~id ~refresh_interval initializes the state of a worker handling a family of counter. The worker wakes up every refresh_interval seconds. id is a string identifier used for distinguishing distinct Moving_average workers..

Sourceval create : state -> init:int -> alpha:float -> t

create state ~init ~alpha is a counter with initial value init and factor alpha. The counter is added to the state. It is not removed automatically: it must be removed manually.

Sourceval destroy : state -> t -> unit

destroy state -> t removes counter t from the internal state.

Sourceval add : t -> int -> unit

add state t v adds v to the counter t.

Sourceval on_update : state -> (unit -> unit) -> unit

on_update state f registers f to be called on each update of the internal worker associated to state.

Sourceval updated : state -> unit Lwt_condition.t

updated state is a condition variable that gets signaled on each update of the internal worker..

Sourcetype stat = {
  1. total : int64;
  2. average : int;
}
Sourceval stat : t -> stat

stat t is a stat record reflecting the state of t at the time of the call.

OCaml

Innovation. Community. Security.