Skip to content
etishor edited this page Oct 18, 2014 · 7 revisions

Gauges

A gauge is the simplest metric type. It represents an instantaneous value.

The basic gauge is created from a function that returns a double value. There is also the possibility to create a Gauge based on a performance counter. For advanced scenarios, the library also provides a DerivedGauge, which represents a Gauge that derives its value from another Gauge:

    // gauge from Func<double>
    Metric.Gauge("MyValue", () => ComputeMagicValue(), Unit.Items);
    
    // gauge that reads its value from a performance counter
    Metric.PerformanceCounter("CPU Usage", "Processor", "% Processor Time",
        "_Total", Unit.Custom("%"));

    // gauge that transforms the value of another gauge    
    Metric.Advanced.Gauge("Kbytes gauge", 
        () => new DerivedGauge(gaugeReturningValueInBytes, v => v / 1024.0 ), Unit.KiloBytes);