Comment : créer des compteurs de performance personnalisés

Mise à jour : novembre 2007

Lorsque vous créez un compteur, vous créez d'abord une catégorie, puis vous spécifiez un ou plusieurs compteurs qui y seront placés. Pour ce faire, vous pouvez procéder de différentes façons :

Il y a deux problèmes spéciaux que vous devez considérer lorsque vous créez des compteurs et des catégories. D'une part, vous ne pouvez pas créer de catégories et de compteurs personnalisés sur des ordinateurs distants. D'autre part, votre champ d'action avec les catégories et les compteurs personnalisés est limité au mode Lecture seule, sauf indication contraire de votre part. En mode Lecture seule, vous ne pouvez ni les incrémenter, ni les décrémenter, ni même définir de valeur brute ou d'autres valeurs au sein de ces compteurs et catégories. Pour affecter à un compteur personnalisé le mode en écriture, vous ne pouvez utiliser que la propriété ReadOnly.

Il est important de noter qu'il existe une différence entre créer un compteur et créer une instance du composant PerformanceCounter. Lorsque vous créez un compteur, vous constituez dans le système d'exploitation Windows une nouvelle catégorie avec les compteurs qui lui sont associés et non un composant dans votre projet ou votre application. Lorsque vous créez une instance du composant PerformanceCounter, vous créez un composant au sein de votre projet Visual Studio référençant un compteur externe.

Remarque :

Certaines restrictions de sécurité s'appliquent à l'utilisation des compteurs de performance. Pour plus d'informations, consultez Introduction à l'analyse des seuils de performance.

Note de sécurité :

Sachez, lorsque vous créez un compteur de performance, que la ressource peut déjà exister. Il est possible qu'un autre processus, peut-être nuisible, ait déjà créé la ressource et puisse y accéder. Lorsque vous placez des données dans le compteur de performance, elles sont disponibles pour les autres processus.

Remarque :

La classe PerformanceCounter n'est pas entièrement prise en charge sur Microsoft Windows NT version 4.0. Vous pouvez lire des données à partir des compteurs système, mais vous ne pouvez pas créer ou supprimer des compteurs personnalisés, ni y écrire.

Remarque :

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour créer une catégorie et un compteur de performance personnalisé au moment du design

  1. Ouvrez l'Explorateur de serveurs et développez le nœud du serveur que vous souhaitez voir.

    Remarque :

    Si le serveur souhaité ne figure pas dans la liste, vous devez l'ajouter. Pour plus d'informations, consultez Comment : accéder à l'Explorateur de serveurs/bases de données et l'initialiser.

  2. Cliquez avec le bouton droit sur le nœud Compteurs de performance et sélectionnez Créer une nouvelle catégorie.

    Vous voyez s'afficher la boîte de dialogue Générateur de compteurs de performance.

    Remarque :

    Pour accéder aux compteurs de performance, vous devez être membre du groupe de sécurité qui a accès aux compteurs de performance (par exemple, le groupe Utilisateurs de l'Analyseur de performances). En outre, vous pouvez recevoir des invites sur Windows Vista lorsque vous essayez d'exécuter une action qui requiert des privilèges élevés, même lors d'une exécution sous des autorisations administratives. Pour plus d'informations, consultez Windows Vista et Visual Studio.

  3. Entrez un nom et une description pour la nouvelle catégorie.

    Remarque :

    Si vous spécifiez le nom d'une catégorie existante, une erreur se produit. Pour remplacer une catégorie de compteurs existante, supprimez-la à l'aide de la méthode Delete, puis ajoutez une nouvelle catégorie.

  4. Dans le frame Générateur de liste de compteurs, procédez comme suit :

    1. Cliquez sur le bouton Nouveau.

    2. Dans le frame Compteur, spécifiez un nom pour le compteur à créer dans la catégorie.

    3. Sélectionnez un type dans la liste déroulante Type.

    4. Entrez une description pour le compteur.

  5. Répétez les étapes 4 et 5 pour chaque compteur à créer dans cette catégorie.

    Conseil :

    Avant de quitter la boîte de dialogue, vous pouvez sélectionner l'un des compteurs dans la liste Compteurs pour modifier ses valeurs ou pour le supprimer.

    Remarque :

    Par défaut, les compteurs et les catégories que vous créez dans la boîte de dialogue sont en lecture/écriture, mais votre interaction sur ces compteurs via une instance du composant PerformanceCounter se limite à la lecture seule sauf spécification contraire de votre part.

Pour créer une catégorie et un groupe de compteurs de performance par programme

  1. Crée une collection de type CounterCreationDataCollection.

  2. Créez les compteurs souhaités en tant qu'objets de type CounterCreationData et définissez leurs propriétés comme nécessaire.

  3. Ajoutez les objets CounterCreationData à la collection en appelant la méthode Add de la collection.

  4. Appelez la méthode Create de la classe PerformanceCounterCategory et passez-lui la collection.

    L'exemple suivant montre comment créer un ensemble de compteurs et les passer à la catégorie lorsque vous la constituez :

    ' 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);
    

Voir aussi

Tâches

Comment : créer des catégories de compteurs de performance

Concepts

Gestion des catégories et des compteurs

Référence

Comment : accéder à l'Explorateur de serveurs/bases de données et l'initialiser