.net应用监控类库Metrics.NET之Timers

计时器基本上是一种事件时间持续的直方图,并度量事件发生频率。

计时器样例

private readonly Timer timer = 
    Metric.Timer("HTTP Requests",Unit.Requests);

public void ProcessRequest()
{
    using(timer.NewContext())
    {
        // Actual Processing of the request
    }
}

跟踪用户值

通过使用直方图跟踪用户值的能力,计时器也有能力跟踪用户值中最小值,最大值或最后一段时间记录的值。用户值可以是任易字符串(documentId, operationId等)

下例定时器将记录请求花费最长的documentId

private readonly Timer timer =
    Metric.Timer("Requests", Unit.Requests);

public void Process(string documentId)
{
    using (var context = timer.NewContext(documentId))
    {
        ActualProcessingOfTheRequest(documentId);

        // if needed elapsed time is available in context.Elapsed 
    }
}

timer.NewContext()返回的上下文可以提供执行时间,这对于中间记录日志是有用的。 timer.NewContext()方法允许你传入一个在总处理时间内被执行的动作。这对于记录最后的时间也是有用的。

运行几个请求后,文本格式的计时器的输出如下所示:

    Requests

             Count= 14 Requests

        Mean Value= 1.86 Requests/s

     1 Minute Rate= 1.80 Requests/s

     5 Minute Rate= 1.80 Requests/s

    15 Minute Rate= 1.80 Requests/s

             Count= 14 Requests

              Last= 869.03 ms

   Last User Value= document-1

               Min= 59.90 ms

    Min User Value= document-6

               Max= 869.03 ms

    Max User Value= document-1

              Mean= 531.81 ms

            StdDev= 212.98 ms

            Median = 594.83 ms

              75%<= 670.18 ms

              95%<= 869.03 ms

              98%<= 869.03 ms

              99%<= 869.03 ms

            99.9%<= 869.03 ms

正如您所看到的,计时器记录的最快的文档是文档-659.90毫秒),最慢的是文档-1869.03毫秒)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值