Пример #1
0
 /// <summary>
 /// Desinstala todos los contadores de la aplicación
 /// </summary>
 public static void UninstallAllApplicationCounters()
 {
     foreach (CounterCategoryData category in PerformanceCounterContainer.GetAllCategories())
     {
         UninstallPerformanceCounterCategory(category);
     }
 }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
        /// <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();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }