/// <summary> /// Desinstala todos los contadores de la aplicación /// </summary> public static void UninstallAllApplicationCounters() { foreach (CounterCategoryData category in PerformanceCounterContainer.GetAllCategories()) { UninstallPerformanceCounterCategory(category); } }
/// <summary> /// Instala los contadores de performance activos de la lista de contadores en el sistema, /// o los desinstala en caso de no estar activos /// </summary> private static void InstallPerformanceCounters() { try { foreach (CounterCategoryData category in PerformanceCounterContainer.GetAllCategories()) { if (!PerformanceCounterCategory.Exists(category.Name)) { if (category.IsActive) { InstallPerformanceCounterCategory(category); } } else { if (!category.IsActive) { UninstallPerformanceCounterCategory(category); } } } } catch (UnauthorizedAccessException uex) { throw new InstrumentationException(Messages.InsufficientPermissionsForCounterReading, uex); } }
/// <summary> /// Crea las instancias de contadores /// </summary> private static void InitializeCounters() { foreach (CounterCategoryData category in PerformanceCounterContainer.GetAllCategories()) { if (category.IsActive) { foreach (CounterData counterData in category.GetAllCounters()) { foreach (CounterInstanceData instanceData in counterData.GetAllInstances()) { using (PerformanceCounter counter = new PerformanceCounter(category.Name, counterData.Name, instanceData.Name, false)) { instanceData.RealCounter = counter; if (!instanceData.IsActive) { counter.RemoveInstance(); } if (counterData.HasBaseCounter) { using (PerformanceCounter baseCounter = new PerformanceCounter(category.Name, counterData.BaseName, instanceData.Name, false)) { instanceData.RealCounterBase = baseCounter; if (!instanceData.IsActive) { baseCounter.RemoveInstance(); } } } } } } } } }