.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

正如你所看到的,總體錯誤率被記錄下來,但也記錄了每個命令的錯誤率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章