Metrics.NET库提供了五种可以记录的度量类型:
- Meters 记录事件发生的频率
- Histograms 度量流式数据中值的分布情况
- Timers 保持一种事件时间持续的直方图,并记录其发生的频率
- Counters 64位整数,可以递增或递减
- Gauges 瞬时值
可以使用Metrics命名空间中的Metric静态类提供的方法来创建和注册度量。度量可以根据上下文分组,还可以应用标签。有关详细信息,请参阅《Grouping & Organizing Metrics》。
using Metrics;
...
// metrics registered in the global context
Timer timer = Metric.Timer("Requests",Unit.Requests);
Counter counter = Metric.Counter("Active Requests", Unit.Requests);
Meter meter = Metric.Meter("Errors", Unit.Errors);
Histogram histogram = Metric.Histogram("Results", Unit.Items);
// timer registered in the context named "Biling"
Timer timerInContext = Metric.Context("Biling").Timer("Biling Operations", Unit.Commands);
...
静态Metric类只是全局度量上下文的一个包装。
相同类型和相同上下文的度量必须具有唯一的名称。不同类型或不同上下文的度量可以具有相同的名称。
当调用方法来注册一个度量时,如果当前上下文中已经存在相同名称的度量,那么将返回已有的度量。下面的示例只会在全局上下文中创建一个名为“Requests”的计时器实例:
using(Metric.Timer("Requests",Unit.Requests).NewContext())
{ // do some processing }
using(Metric.Timer("Requests",Unit.Requests).NewContext())
{ // do some processing }
using(Metric.Timer("Requests",Unit.Requests).NewContext())
{ // do some processing }
在大多数情况下,除非另外需要,否则建议您使用以下代码来创建私有静态只读实例:
public class SampleOperation
{
private static readonly Timer operationsTimer =
Metric.Timer("Operations",Unit.Requests);
private static readonly Meter operationErrors =
Metric.Errors("Operation Errors",Unit.Errors);
// rest of implementation
}
译自:https://github.com/Recognos/Metrics.NET/wiki/Available-Metrics