Cómo: Crear contadores de rendimiento personalizados

Actualización: noviembre 2007

Al crear un nuevo contador, primero deberá crea una categoría y después deberá especificar uno o varios contadores para incluirlos en esa categoría. Puede hacer esto de varias formas:

Hay dos cuestiones especiales que debería considerar al crear contadores y categorías. Primero, no puede crear categorías y contadores personalizados en equipos remotos. Segundo, su interacción con los contadores y categorías personalizadas está restringida al modo de solo lectura, salvo que especifique lo contrario de forma explícita. En modo de sólo lectura, no se pueden incrementar o reducir ni establecer el valor sin formato u otros valores que contengan. Puede utilizar la propiedad ReadOnly para establecer un contador personalizado en modo de escritura.

Es importante tener en cuenta la diferencia entre crear un contador y crear una instancia del componente PerformanceCounter. Al crear un contador, se crea una nueva categoría y sus contadores asociados en el sistema operativo Windows, en lugar de un componente en el proyecto o aplicación. Cuando cree una instancia del componente PerformanceCounter, creará un componente dentro del proyecto de Visual Studio que hará referencia a un contador externo.

Nota:

Hay restricciones de seguridad que afectan a la posibilidad de utilizar contadores de rendimiento. Para obtener más información, vea Introducción a la supervisión de umbrales de rendimiento.

Nota de seguridad:

Cuando cree un contador de rendimiento, debe tener en cuenta que puede que ya exista el recurso. Es posible que otro proceso, probablemente malicioso, haya creado el recurso y tenga acceso a él. Cuando ponga datos en el contador de rendimiento, los datos estarán disponibles para el otro proceso.

Nota:

La clase PerformanceCounter no es totalmente compatible con Microsoft Windows NT 4.0. Puede leer de los contadores del sistema, pero no puede crear, escribir ni eliminar contadores personalizados.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Para crear una nueva categoría y un contador de rendimiento personalizado en tiempo de diseño

  1. Abra el Explorador de servidores y expanda el nodo correspondiente al servidor que desee ver.

    Nota:

    Si el servidor que desea ver no aparece en la lista, tendrá que agregarlo. Para obtener más información, vea Cómo: Tener acceso e inicializar el Explorador de servidores o el Explorador de bases de datos.

  2. Haga clic con el botón secundario del mouse (ratón) en el nodo Contadores de rendimiento y seleccione Crear categoría nueva.

    Aparecerá el cuadro de diálogo Generador de contadores de rendimiento.

    Nota:

    Para obtener acceso a los contadores de rendimiento, debe ser miembro del grupo de seguridad que tiene acceso a los contadores de rendimiento (por ejemplo, el grupo Usuarios del monitor de sistema). Asimismo, puede que aparezcan mensajes de solicitud en Windows Vista al intentar realizar una acción que requiera privilegios elevados, incluso al ejecutarse con permisos administrativos. Para obtener más información, vea Windows Vista y Visual Studio.

  3. Escriba un nombre y una descripción para la categoría que desea crear.

    Nota:

    Si especifica el nombre de una categoría ya existente, se producirá un error. Para sobrescribir una categoría de contadores existente, primero debe eliminar la categoría mediante el método Delete y, a continuación, agregar una categoría nueva.

  4. En el marco Generador de lista de contadores, realice el siguiente procedimiento:

    1. Haga clic en el botón Nuevo.

    2. En el marco Contador, especifique un nombre para el contador que desea crear en la categoría.

    3. Seleccione un tipo en la lista desplegable Tipo.

    4. Escriba una descripción del contador.

  5. Repita el paso 4 para cada contador que desee crear en esta categoría.

    Sugerencia:

    Antes de salir del cuadro de diálogo, puede seleccionar cualquiera de los contadores de la lista Contadores y modificar sus valores o eliminar los contadores.

    Nota:

    De forma predeterminada, los contadores y categorías que cree en el cuadro de diálogo tienen permisos de lectura y escritura, aunque su interacción con ellos a través de una instancia del componente PerformanceCounter se limitará a sólo lectura, salvo que especifique lo contrario.

Para crear una nueva categoría y un conjunto de contadores de rendimiento mediante programación

  1. Cree una colección de tipo CounterCreationDataCollection.

  2. Cree los contadores que desea crear como objetos de tipo CounterCreationData y establezca las propiedades necesarias.

  3. Agregue los objetos CounterCreationData a la colección mediante una llamada al método Add de la colección.

  4. Llame al método Create de la clase PerformanceCounterCategory y pásele la colección.

    En el ejemplo siguiente se muestra cómo crear una serie de contadores y pasarlos a la categoría al crearla:

    ' Create a collection of type CounterCreationDataCollection.
    Dim CounterDatas As New CounterCreationDataCollection()
    ' Create the counters and set their properties.
    Dim cdCounter1 As New CounterCreationData()
    Dim cdCounter2 As New CounterCreationData()
    cdCounter1.CounterName = "MyCounter1"
    cdCounter1.CounterHelp = "help string"
    cdCounter1.CounterType = PerformanceCounterType.NumberOfItems64
    cdCounter2.CounterName = "MyCounter2"
    cdCounter2.CounterHelp = "help string 2"
    cdCounter2.CounterType = PerformanceCounterType.NumberOfItems64
    ' Add both counters to the collection.
    CounterDatas.Add(cdCounter1)
    CounterDatas.Add(cdCounter2)
    ' Create the category and pass the collection to it.
    PerformanceCounterCategory.Create("Multi Counter Category", _
        "Category help", PerformanceCounterCategoryType.SingleInstance, _
        CounterDatas)
    
         // Create a collection of type CounterCreationDataCollection.
            System.Diagnostics.CounterCreationDataCollection CounterDatas =
               new System.Diagnostics.CounterCreationDataCollection();
            // Create the counters and set their properties.
            System.Diagnostics.CounterCreationData cdCounter1 =
               new System.Diagnostics.CounterCreationData();
            System.Diagnostics.CounterCreationData cdCounter2 =
               new System.Diagnostics.CounterCreationData();
            cdCounter1.CounterName = "Counter1";
            cdCounter1.CounterHelp = "help string1";
            cdCounter1.CounterType = System.Diagnostics.PerformanceCounterType.NumberOfItems64;
            cdCounter2.CounterName = "Counter2";
            cdCounter2.CounterHelp = "help string 2";
            cdCounter2.CounterType = System.Diagnostics.PerformanceCounterType.NumberOfItems64;
            // Add both counters to the collection.
            CounterDatas.Add(cdCounter1);
            CounterDatas.Add(cdCounter2);
            // Create the category and pass the collection to it.
            System.Diagnostics.PerformanceCounterCategory.Create(
                "Multi Counter Category", "Category help",
                PerformanceCounterCategoryType.SingleInstance, CounterDatas);
    

Vea también

Tareas

Cómo: Crear categorías de contadores de rendimiento

Conceptos

Administración de categorías y contadores

Referencia

Cómo: Tener acceso e inicializar el Explorador de servidores o el Explorador de bases de datos