Como os temporizadores médios dos contadores de desempenho são associados à sua base?
Estou adicionando alguns contadores de desempenho ao meu projeto de c # e criando uma nova PerformanceCounterCategory. Nesta categoria, eu gostaria de ter vários contadores / temporizadores que rastreiem coisas diferentes. Preciso usar vários timers médios e estou tentando entender como o contador AverageBase é associado ao contador AverageTimer32 correto quando há mais de um no CoutnerCreationDataCollection.
Algumas perguntas:
1. Primeiro, essa é a maneira correta de fazer isso? As amostras que encontrei têm apenas um cronômetro médio.
2. E se a resposta à primeira pergunta for afirmativa, estou correto ao pensar que o primeiro contador AverageBase foi adicionado à coleção após o AverageTimer32? Eu encontrei uma referência em um artigo para eles precisando ser adicionados em ordem.
Aqui está um exemplo do que estou tentando fazer:
var dataColl = new CounterCreationDataCollection
{
new CounterCreationData
{
CounterType = PerformanceCounterType.AverageTimer32,
CounterName = "AverageTime1",
CounterHelp = "AverageTime1_Help"
},
new CounterCreationData // Does this get linked to AverageTime1 simply
// because it is being added after it?
{
CounterType = PerformanceCounterType.AverageBase,
CounterName = "AverageTime1Base"
},
new CounterCreationData
{
CounterType = PerformanceCounterType.AverageTimer32,
CounterName = "AverageTime2",
CounterHelp = "AverageTime2_Help"
},
new CounterCreationData
{
CounterType = PerformanceCounterType.AverageBase,
CounterName = "AverageTime2_Base"
},
}
PerformanceCounterCategory.Create(
"MyCategoryName"
, "My Category Help"
, PerformanceCounterCategoryType.SingleInstance
, dataColl);