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

Meters用来记录事件发生的频率,引用《Java library documentation》:

Meters通过几种不同的方式来测量事件的发生频率。平均频率是事件频率的平均值。这对细节通常是有用的,但由于它代表了应用程序整个生命周期的总频率(例如,处理的请求总数除以进程运行的秒数),因此它不能表示最新的情况。幸运的是,Meters还记录了三种不同的指数加权滑动平均频率:1515分钟滑动平均线。就像在正常运行时间或顶端可见的Unix负载平均值一样。

应用示例

public class RequestProcessor
{
    private readonly Meter meter =
        Metric.Meter("Errors", Unit.Requests, TimeUnit.Seconds);

    public void ProcessRequest()
    {
        try
        {
            // do actual processing
        }
        catch
        {
            meter.Mark(); // records an error 
            throw;
        }
    }
}

Meters还提供跟踪有限集合中每个条目频率的能力。例如,您有一个处理一组命令的系统。您想要记录命令执行的错误率。也想知道每种命令的错误率。如果命令的数量很大,则手动定义和增加每个Meter可能会很难做。

幸运的是,Meters可以跟踪你的sub-meters:

public class SetMeterSample
{
    private readonly Meter errorMeter = Metric.Meter("Errors", Unit.Errors);

    public interface Command { }
    public class SendEmail : Command { }
    public class ShipProduct : Command { }
    public class BillCustomer : Command { }
    public class MakeInvoice : Command { }
    public class MarkAsPreffered : Command { }

    public void Process(Command command)
    {
        try
        {
            ActualCommandProcessing(command);
        }
        catch
        {
            errorMeter.Mark(command.GetType().Name);
        }
    }
}

在运行几个请求之后,文本格式的Meters的输出如下所示:

   Errors

             Count = 450 Errors

        Mean Value = 35.68 Errors/s

     1 Minute Rate = 25.44 Errors/s

     5 Minute Rate = 24.30 Errors/s

    15 Minute Rate = 24.10 Errors/s

       Total Items = 5

            Item 0 = 19.56%    88 Errors [BillCustomer]

             Count = 88 Errors

        Mean Value = 6.98 Errors/s

     1Minute Rate = 6.05 Errors/s

     5 Minute Rate = 6.01 Errors/s

    15 Minute Rate = 6.00 Errors/s

            Item 1 = 18.67%    84 Errors [MakeInvoice]

             Count = 84 Errors

        Mean Value = 6.66 Errors/s

     1 Minute Rate = 4.23 Errors/s

     5 Minute Rate = 3.89 Errors/s

    15 Minute Rate = 3.83 Errors/s

            Item 2 = 20.22%    91 Errors [MarkAsPreffered]

             Count = 91 Errors

        Mean Value = 7.22 Errors/s

     1 Minute Rate = 5.38 Errors/s

     5 Minute Rate = 5.24 Errors/s

    15 Minute Rate = 5.21 Errors/s

            Item 3 = 19.78%    89 Errors [SendEmail]

             Count = 89 Errors

        Mean Value = 7.06 Errors/s

     1 Minute Rate = 4.92 Errors/s

     5 Minute Rate = 4.67 Errors/s

    15 Minute Rate = 4.62 Errors/s

            Item 4 = 21.78%    98 Errors [ShipProduct]

             Count = 98 Errors

        Mean Value = 7.77 Errors/s

     1 Minute Rate = 4.86 Errors/s

     5 Minute Rate = 4.50 Errors/s

    15 Minute Rate = 4.43 Errors/s

正如你所看到的,总体错误率被记录下来,但也记录了每个命令的错误率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值