Bonjour,

J'ai développé plusieurs services Windows en .net, je souhaite à présent en mesurer les performances via la class PerformanceCounter. Afin de réaliser ceci j'utilise le code suivant :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
// processName = Nom du service
_cpuCounter = new PerformanceCounter("Process", "% Processor Time", processName);
processorTime = (double) _cpuCounter.NextValue();
Mon problème est que lors de l'appel de la méthode NextValue() j'ai une exception indiquant que le service n'est pas dans la bonne catégorie.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
L'instance*'BlueCurve-Integration' n'existe pas dans la catégorie spécifiée.

Stacktrace :
à System.Diagnostics.CounterDefinitionSample.GetInstanceValue(String instanceName)
à System.Diagnostics.PerformanceCounter.NextSample()
à System.Diagnostics.PerformanceCounter.NextValue()
à TelemetryProbe.ApplicationMetrics.GetMetrics(Double& processorTime, UInt64& memUsage, UInt64& threadCounter) dans C:\Dev\BlueCurve\Dev\Management\TelemetryProbe.Dev\Metrics.cs:ligne 80
à TelemetryProbe.Service1.<>c.<Measure>b__10_0(ApplicationMetrics application) dans C:\Dev\BlueCurve\Dev\Management\TelemetryProbe.Dev\Service1.cs:ligne 123
J'avoue ne pas trop comprendre cette histoire de catégorie, et ne pas être un habitué des compteurs de performance.

Avez-vous une idée de ce qui cloche dans mon code ?

Je vous remercie par avance de votre aide.

Cordialement.