Estoy creando algunos contadores de rendimiento personalizados para una aplicación. Escribí una herramienta simple de C# para crear las categorías y los contadores. Por ejemplo, el fragmento de código siguiente es básicamente lo que estoy ejecutando. Luego, ejecuto una aplicación independiente que refresca sin fin el valor bruto del contador. Mientras se ejecuta, el contador y la instancia ficticia se ven localmente en perfmon.¿Por qué no puede Perfmon ver instancias de mi contador de rendimiento personalizado?
El problema que tengo es que el sistema de monitorización que usamos no puede ver las instancias en el contador de varias instancias que he creado al visualizar de forma remota desde otro servidor. Cuando uso perfmon para explorar los contadores, puedo ver la categoría y los contadores, pero el cuadro de instancias está en gris y ni siquiera puedo seleccionar "Todas las instancias", ni puedo hacer clic en "Agregar". El uso de otros métodos de acceso, como [typeperf][1]
presenta problemas similares.
No estoy seguro si esto es un problema de servidor o código. Esto solo es reproducible en el entorno de producción donde lo necesito. En mi escritorio y servidores de desarrollo, funciona genial. Soy un administrador local en todos los servidores.
CounterCreationDataCollection collection = new CounterCreationDataCollection();
var category_name = "My Application";
var counter_name = "My counter name";
CounterCreationData ccd = new CounterCreationData();
ccd.CounterType = PerformanceCounterType.RateOfCountsPerSecond64;
ccd.CounterName = counter_name;
ccd.CounterHelp = counter_name;
collection.Add(ccd);
PerformanceCounterCategory.Create(category_name, category_name, PerformanceCounterCategoryType.MultiInstance, collection);
Luego, en una aplicación separada, corro esto para generar datos de ejemplo ficticio:
var pc = new PerformanceCounter(category_name, counter_name, instance_name, false);
while (true) {
pc.RawValue = 0;
Thread.Sleep(1000);
}
¿Qué versión de .Net es esto? –
Ha pasado un tiempo, pero estoy bastante seguro de que estaba usando .NET 2.0 o 3.5 en ese momento. – spoulson
¿Alguna vez le respondieron esto? Me pregunto si creaste una clase de contador de rendimiento personalizada y no fue serializable. –