Ejemplo n.º 1
0
        /// <summary>
        /// Instala la categoría y sus contadores asociados en la máquina
        /// </summary>
        /// <param name="category">Categoría a instalar</param>
        private static void InstallPerformanceCounterCategory(CounterCategoryData category)
        {
            CounterCreationDataCollection counterDataCol = new CounterCreationDataCollection();

            foreach (CounterData counterData in category.GetAllCounters())
            {
                CounterCreationData creationData;

                creationData = new CounterCreationData(
                    counterData.Name,
                    counterData.Description,
                    counterData.Type);
                counterDataCol.Add(creationData);

                if (counterData.HasBaseCounter)
                {
                    creationData = new CounterCreationData(
                        counterData.BaseName,
                        counterData.BaseDescription,
                        counterData.BaseType);
                    counterDataCol.Add(creationData);
                }
            }

            try
            {
                PerformanceCounterCategory.Create(category.Name, category.Description,
                                                  category.Type, counterDataCol);
            }
            catch (SecurityException uex)
            {
                throw new InstrumentationException(string.Format(
                                                       Messages.InsufficientPermissionsForCounterCategoryCreation, category.Name), uex);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Agrega un nuevo contador
        /// </summary>
        /// <param name="categoryName">Nombre de la categoría del contador</param>
        /// <param name="counterName">Nombre del contador</param>
        /// <param name="counterDescription">Descripción del contador</param>
        /// <param name="counterType">Tipo del contador</param>
        public static void AddCounter(string categoryName, string counterName,
                                      string counterDescription, AlemanaPerformanceCounterType counterType)
        {
            if (!categoryDataList.ContainsKey(categoryName))
            {
                throw new InstrumentationException(string.Format(Messages.CounterCategoryDoesntExist,
                                                                 categoryName));
            }

            CounterCategoryData categoryData = categoryDataList[categoryName];

            if (categoryData != null)
            {
                categoryData.AddCounter(counterName, counterDescription, counterType);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Elimina la categoría y sus contadores asociados instalados en la máquina
 /// </summary>
 /// <param name="category">Categoría a desinstalar</param>
 private static void UninstallPerformanceCounterCategory(CounterCategoryData category)
 {
     try
     {
         if (PerformanceCounterCategory.Exists(category.Name))
         {
             PerformanceCounterCategory.Delete(category.Name);
         }
     }
     catch (SecurityException secEx)
     {
         throw new InstrumentationException(secEx, string.Format(
                                                Messages.InsufficientPermissionsForCounterCategoryDeletion, category.Name));
     }
     catch (Exception ex)
     {
         throw new InstrumentationException(ex, string.Format(
                                                Messages.ExceptionCounterCategoryDeletion, category.Name));
     }
 }