.net應用監控類庫Metrics.NET之Counters

計數器由64位整數表示,可以遞增或遞減

通過調用靜態Metric類或MetricsContext子類上的適當方法註冊計數器。有關詳細信息,請參見《metrics grouping & organization》。

簡單計數器樣例

public class Cache
{
    private static readonly Counter counter =
        Metric.Counter("ItemsInCache", Unit.Items);

    private void AddItems(object[] items)
    {
        counter.Increment(items.Length);
    }

    private void AddItem(object item)
    {
        counter.Increment();
    }

    private void RemoveItem(object item)
    {
        counter.Decrement();
    }
}

給一個集合計數

計數器還提供跟蹤有限集合中每個條目的計數器的能力。例如,您有一個處理一組命令的系統。Process方法中,您需要計算已處理命令的總數,但也希望每個命令類型都有一個計數器。如果命令的數量很大,則手動定義和增加每個計數器可能會很難做。

幸運的是,計數器可以跟蹤你的子計數器:

public class SetCounterSample
{
    private readonly Counter commandCounter = 
        Metric.Counter("Command Counter", Unit.Custom("Commands"));

    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)
    {
        this.commandCounter.Increment(command.GetType().Name);

        // do actual command processing
    }
}

在運行幾個請求之後,文本格式的計數器的輸出如下所示:

    Command Counter

             Count = 2550 Commands

       Total Items = 5

            Item 0 = 20.90%   533 Commands [BillCustomer]

            Item 1 = 19.22%   490 Commands [MakeInvoice]

            Item 2 = 19.41%   495 Commands [MarkAsPreffered]

            Item 3 = 20.98%   535 Commands [SendEmail]

            Item 4 = 19.49%   497 Commands [ShipProduct]

正如你所看到的,總計數被記錄下來(2550個命令已經被執行),但也記錄了每個命令的總數和百分比。

譯自:https://github.com/Recognos/Metrics.NET/wiki/Counters

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