Interface IMonitor
The Phobos monitor - used to create metrics which themselves can be incremented and transmitted to a reporting source on the other end of the network.
Namespace:Phobos.Monitoring
Assembly:Phobos.Monitoring.dll
Syntax
public interface IMonitor
Properties
AppName
The beginning of the namespace we use to track metrics for this monitor. I.e. if AppName is "petabridge" then all metrics will be named "petabridge.thing1.metric1"
Declaration
string AppName { get; }
Property Value
Type | Description |
---|---|
System.String |
Recorder
The underlying IMetricRecorder, usually only directly accessed for testing purposes.
Declaration
IMetricRecorder Recorder { get; }
Property Value
Type | Description |
---|---|
IMetricRecorder |
Methods
CreateCounter(String, IReadOnlyList<String>, Double)
Creates a new Counter instance.
Declaration
Counter CreateCounter(string name, IReadOnlyList<string> allNames, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the counter we're going to measure. |
System.Collections.Generic.IReadOnlyList<System.String> | allNames | The set of all names that we can use for this metric. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
Counter | The new counter instance. |
CreateCounter(String, Double)
Creates a new Counter instance.
Declaration
Counter CreateCounter(string name, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the counter we're going to measure. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
Counter | The new counter instance. |
CreateGauge(String, IReadOnlyList<String>, Double)
Creates a new Gauge instance.
Declaration
Gauge CreateGauge(string name, IReadOnlyList<string> allNames, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the gauge we're going to measure. |
System.Collections.Generic.IReadOnlyList<System.String> | allNames | The set of all names that we can use for this metric. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
Gauge | The new gauge instance. |
CreateGauge(String, Double)
Creates a new Gauge instance.
Declaration
Gauge CreateGauge(string name, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the gauge we're going to measure. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
Gauge | The new gauge instance. |
CreateTiming(String, IReadOnlyList<String>, Double)
Creates a new Timing instance.
Declaration
Timing CreateTiming(string name, IReadOnlyList<string> allNames, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the timing we're going to measure. |
System.Collections.Generic.IReadOnlyList<System.String> | allNames | The set of all names that we can use for this metric. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
Timing | The new timing instance. |
Examples
using(myMonitor.StartTiming("foo")){ // actual work } // will automatically record a new "foo" Timing instance based on the values recorded.
CreateTiming(String, Double)
Creates a new Timing instance.
Declaration
Timing CreateTiming(string name, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the timing we're going to measure. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
Timing | The new timing instance. |
Examples
using(myMonitor.StartTiming("foo")){ // actual work } // will automatically record a new "foo" Timing instance based on the values recorded.
DecrementCounter(String, Int64, Double)
Decrement a Counter directly without having to allocate one.
Declaration
void DecrementCounter(string name, long value = -1L, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the counter we're going to measure. |
System.Int64 | value | The value to be recorded for this counter. Defaults to -1. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
IncrementCounter(String, Int64, Double)
Increment a Counter directly without having to allocate one.
Declaration
void IncrementCounter(string name, long value = 1L, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the counter we're going to measure. |
System.Int64 | value | The value to be recorded for this counter. Defaults to 1. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
RecordGauge(String, Int64, Double)
Record to a Gauge directly without having to allocate one.
Declaration
void RecordGauge(string name, long value, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the gauge we're going to measure. |
System.Int64 | value | The value to be recorded for this gauge. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
RecordTiming(String, Int64, Double)
Increment a Timing directly without having to allocate one.
Declaration
void RecordTiming(string name, long value, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the timing we're going to measure. |
System.Int64 | value | The value to be recorded for this timing. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
RecordTiming(String, TimeSpan, Double)
Increment a Timing directly without having to allocate one.
Declaration
void RecordTiming(string name, TimeSpan value, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The specified name of the timing we're going to measure. |
System.TimeSpan | value | The value to be recorded for this timing. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
StartTiming(IReadOnlyList<String>, Double)
Creates a TimingScope that can be used to automatically track and record a Timing upon disposal.
Declaration
TimingScope StartTiming(IReadOnlyList<string> allNames, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IReadOnlyList<System.String> | allNames | The set of all names that we can use for this metric. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
TimingScope | A disposable TimingScope. |
StartTiming(String, Double)
Creates a TimingScope that can be used to automatically track and record a Timing upon disposal.
Declaration
TimingScope StartTiming(string name, double sampleRate = 1)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of this Timing. |
System.Double | sampleRate | The sample rate. Defaults to DefaultSampleRate. |
Returns
Type | Description |
---|---|
TimingScope | A disposable TimingScope. |