Я создаю счетчик производительности нескольких экземпляров со следующим регистрационным кодом, но, похоже, не имеет экземпляра _Total
- даже когда у меня есть несколько активных экземпляров. Что мне нужно сделать, чтобы получить общее количество?
Регистрационный код:
var slc = new CounterCreationDataCollection();
slc.Add(new CounterCreationData()
{
CounterName = "Channels Open",
CounterType = PerformanceCounterType.NumberOfItems32,
CounterHelp = "Number of channels that have not been cleaned up."
});
PerformanceCounterCategory.Create("Frob", "Monitors the frob",
PerformanceCounterCategoryType.MultiInstance, slc);
Отчетный код:
var channelName = "Widget 6";
var pcOpen = new PerformanceCounter("Frob", "Channels Open", channelName, false);
// elsewhere
pcOpen.Increment();
// followed by
pcOpen.Decrement();
Производит:
Я считаю, что _Total
счетчик - это еще один пример, где они суммируют итоги вручную. Причина, по которой он имеет ведущий _
, так это в алфавитном порядке перед <
in <All instances>
который является "мета-счетчиком".
var pc5Name = "Widget 5";
var pc6Name = "Widget 6";
var pc5 = new PerformanceCounter("Frob", "Channels Open", pc5Name, false);
var pc6 = new PerformanceCounter("Frob", "Channels Open", pc6Name, false);
var pcTotal = new PerformanceCounter("Frob", "Channels Open", "_Total", false);
// elsewhere
pc5.Increment();
pcTotal.Increment()
// more elsewhere
pc6.Increment();
pcTotal.Increment()
// followed by
pc5.Decrement();
pcTotal.Decrement();
_Total
, _total
, __Total__
, _Global_
). Справочный источник также поддерживает эту идею: referenceource.microsoft.com/#System/net/System/Net/…
contoso.ap.poLineManager
contoso.ar.collectionsHelper
и т.д ...