#include <StatHist.h>

Inheritance diagram for StatHist:
Collaboration diagram for StatHist:

Public Types

typedef uint64_t bins_type
 

Public Member Functions

 StatHist ()=default
 
 StatHist (const StatHist &)
 
 ~StatHist ()
 
StatHistoperator= (const StatHist &)
 
double deltaPctile (const StatHist &B, double pctile) const
 
double val (unsigned int bin) const
 
void count (double val)
 
void dump (StoreEntry *sentry, StatHistBinDumper *bd) const
 
void logInit (unsigned int capacity, double min, double max)
 
void enumInit (unsigned int last_enum)
 
StatHistoperator+= (const StatHist &B)
 

Protected Member Functions

void init (unsigned int capacity, hbase_f *val_in, hbase_f *val_out, double min, double max)
 
unsigned int findBin (double v)
 

Protected Attributes

bins_typebins = nullptr
 the histogram counters More...
 
unsigned int capacity_ = 0
 
double min_ = 0.0
 minimum value to be stored, corresponding to the first bin More...
 
double max_ = 0.0
 value of the maximum counter in the histogram More...
 
double scale_ = 1.0
 scaling factor when looking for a bin More...
 
hbase_fval_in = nullptr
 
hbase_fval_out = nullptr
 

Detailed Description

Generic histogram class

see important comments on hbase_f restrictions in StatHist.cc

Definition at line 25 of file StatHist.h.

Member Typedef Documentation

◆ bins_type

typedef uint64_t StatHist::bins_type

Definition at line 44 of file StatHist.h.

Constructor & Destructor Documentation

◆ StatHist() [1/2]

StatHist::StatHist ( )
default
Note
the default constructor doesn't fully initialize. you have to call one of the *init functions to specialize the histogram TODO: merge functionality from the *init functions to the constructor and drop these TODO: specialize the class in a small hierarchy so that all relevant initializations are done at build-time

◆ StatHist() [2/2]

StatHist::StatHist ( const StatHist src)

Definition at line 39 of file StatHist.cc.

References bins, capacity_, and xcalloc().

◆ ~StatHist()

StatHist::~StatHist ( )
inline

Definition at line 39 of file StatHist.h.

References bins, capacity_, and xfree.

Member Function Documentation

◆ count()

◆ deltaPctile()

double StatHist::deltaPctile ( const StatHist B,
double  pctile 
) const

Calculate the percentile for value pctile for the difference between this and the supplied histogram.

Definition at line 103 of file StatHist.cc.

References assert, B, bins, capacity_, D, int, s1, val(), xcalloc(), and xfree.

◆ dump()

void StatHist::dump ( StoreEntry sentry,
StatHistBinDumper bd 
) const

iterate the supplied bd function over the histogram values

Definition at line 171 of file StatHist.cc.

References assert, bins, capacity_, min_, statHistBinDumper, and val().

Referenced by commIncomingStats(), SBufStatsAction::dump(), httpHeaderStatDump(), and statCountersHistograms().

◆ enumInit()

void StatHist::enumInit ( unsigned int  last_enum)

initialize the histogram to count occurrences in an enum-represented set

Definition at line 235 of file StatHist.cc.

References init(), and Math::Null.

Referenced by HttpHeaderStat::HttpHeaderStat(), TestStatHist::testStatHistBaseAssignment(), and TestStatHist::testStatHistBaseEquality().

◆ findBin()

unsigned int StatHist::findBin ( double  v)
protected

find what entry in the histogram corresponds to v, by applying the preset input transformation function

Definition at line 64 of file StatHist.cc.

References capacity_, min_, scale_, and val_in.

Referenced by count(), and InspectingStatHist::counter().

◆ init()

void StatHist::init ( unsigned int  capacity,
hbase_f val_in,
hbase_f val_out,
double  min,
double  max 
)
protected

low-level initialize function. called by *Init high-level functions

Note
Important restrictions on val_in and val_out functions:
  • val_in: ascending, defined on [0, oo), val_in(0) == 0;
  • val_out: x == val_out(val_in(x)) where val_in(x) is defined

In practice, the requirements are less strict, but then it gets hard to define them without math notation. val_in is applied after offsetting the value but before scaling See log and linear based histograms for examples

Definition at line 26 of file StatHist.cc.

References assert, bins, capacity_, max_, min_, scale_, val_in, val_out, and xcalloc().

Referenced by enumInit(), and logInit().

◆ logInit()

void StatHist::logInit ( unsigned int  capacity,
double  min,
double  max 
)

Initialize the Histogram using a logarithmic values distribution

Definition at line 221 of file StatHist.cc.

References Math::Exp, init(), Math::Log, max(), and min().

Referenced by TestStatHist::testStatHistLog(), and TestStatHist::testStatHistSum().

◆ operator+=()

StatHist & StatHist::operator+= ( const StatHist B)

Import values from another histogram

Note
: the two histograms MUST have the same capicity, min and max or an exception will be raised

Definition at line 187 of file StatHist.cc.

References B, bins, capacity_, max_, min_, and Must.

◆ operator=()

StatHist & StatHist::operator= ( const StatHist src)
inline

Definition at line 122 of file StatHist.h.

References bins, capacity_, max_, min_, scale_, val_in, val_out, xcalloc(), and xfree.

◆ val()

double StatHist::val ( unsigned int  bin) const

obtain the output-transformed value from the specified bin

Definition at line 85 of file StatHist.cc.

References min_, scale_, and val_out.

Referenced by deltaPctile(), and dump().

Member Data Documentation

◆ bins

bins_type* StatHist::bins = nullptr
protected

◆ capacity_

unsigned int StatHist::capacity_ = 0
protected

◆ max_

double StatHist::max_ = 0.0
protected

Definition at line 108 of file StatHist.h.

Referenced by init(), operator+=(), operator=(), and InspectingStatHist::operator==().

◆ min_

double StatHist::min_ = 0.0
protected

Definition at line 105 of file StatHist.h.

Referenced by dump(), findBin(), init(), operator+=(), operator=(), InspectingStatHist::operator==(), and val().

◆ scale_

double StatHist::scale_ = 1.0
protected

Definition at line 111 of file StatHist.h.

Referenced by findBin(), init(), operator=(), InspectingStatHist::operator==(), and val().

◆ val_in

hbase_f* StatHist::val_in = nullptr
protected

Definition at line 112 of file StatHist.h.

Referenced by findBin(), init(), operator=(), and InspectingStatHist::operator==().

◆ val_out

hbase_f* StatHist::val_out = nullptr
protected

Definition at line 113 of file StatHist.h.

Referenced by init(), operator=(), InspectingStatHist::operator==(), and val().


The documentation for this class was generated from the following files:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors