Recevez des métriques de vos applications/serveurs Windows avec Windows Management Instrumentation (WMI) en temps réel pour :
Visualiser leurs performances
Corréler leur activité avec le reste de vos applications
Remarque : nous vous conseillons de privilégier le check PDH dans tous les cas, car sa charge système réduite le rend plus efficace à grande échelle.
Configuration
Installation
Si vous recueillez uniquement des métriques standard à partir de Microsoft Windows et d’autres applications groupées, aucune procédure d’installation n’est requise. Si vous devez définir de nouvelles métriques à collecter à partir de votre application, vous disposez alors de plusieurs options :
Envoyez des compteurs de performance avec System.Diagnostics dans .NET, puis accédez-y via WMI.
Implémentez un fournisseur WMI basé sur un objet COM pour votre application. Cette méthode est conseillée si vous utilisez un langage non pris en charge par .NET.
Pour en savoir plus sur System.Diagnostics, consultez la documentation MSDN. Après avoir ajouté votre métrique, vous devriez être en mesure de la retrouver dans WMI. Pour parcourir les espaces de nommage WMI, vous pouvez utiliser cet outil pratique : WMI Explorer. Les mêmes informations peuvent être obtenues avec Powershell ici. Consultez également les informations fournies dans cet article de la base de connaissances Datadog.
Si vous attribuez la catégorie Ma_Nouvelle_Métrique à une nouvelle métrique, le chemin WMI correspond à ce qui suit :
\\<NomOrdinateur>\ROOT\CIMV2:Win32_PerfFormattedData_Ma_Nouvelle_Métrique
Si la métrique ne s’affiche pas dans WMI, essayez d’exécuter winmgmt /resyncperf pour forcer le système à réenregistrer les bibliothèques de performances avec WMI.
Configuration
Cliquez sur le bouton Install Integration sur le carré d’intégration WMI.
Ouvrez Datadog Agent Manager sur le serveur Windows.
La configuration par défaut utilise la clause de filtre pour limiter les métriques récupérées. Définissez les filtres sur des valeurs valides ou supprimez-les comme illustré ci-dessus pour recueillir les métriques.
Les définitions de métriques comprennent trois composants :
La propriété de classe dans WMI
Le nom de la métrique, tel qu’il apparaît dans Datadog
Le type de métrique
Options de configuration
Cette fonction est disponible à partir de la version 5.3 de l’Agent.
Chaque requête WMI a deux options obligatoires, class et metrics, ainsi que six options facultatives : host, namespace, filters, provider, tag_by, constant_tags et tag_queries.
class est le nom de la classe WMI, par exemple Win32_OperatingSystem ou Win32_PerfFormattedData_PerfProc_Process. De nombreux noms de classe standard sont disponibles dans la documentation MSDN. Les classes Win32_FormattedData_* fournissent par défaut de nombreux compteurs de performances utiles.
metrics est la liste des métriques que vous souhaitez capturer, chaque élément de la
liste étant un ensemble [<NOM_PROPRIÉTÉ_WMI>, <NOM_MÉTRIQUE>, <TYPE_MÉTRIQUE>] :
<NOM_PROPRIÉTÉ_WMI> ressemble à NumberOfUsers ou ThreadCount. Les propriétés standard sont également disponibles dans la documentation MSDN pour chaque classe.
<NOM_MÉTRIQUE> est le nom que vous souhaitez voir apparaître dans Datadog.
<TYPE_MÉTRIQUE> correspond à l’une des options standards pour tous les checks de l’Agent, comme gauge, rate, histogram ou counter.
host est la cible facultative de la requête WMI, localhost étant utilisé par défaut. Si vous définissez cette option, assurez-vous que la gestion à distance est activée sur le host cible. Cliquez ici pour en savoir plus.
namespace est l’espace de nommage WMI facultatif sur lequel se connecter (cimv2 par défaut).
filters est une liste de filtres à votre disposition pour la requête WMI. Par exemple, pour une classe WMI basée sur un processus, il peut être souhaitable de recueillir uniquement les métriques associées à certains processus exécutés sur votre machine. Vous pourriez donc ajouter un filtre pour chaque nom de processus. Il est également possible d’utiliser le caractère % comme wildcard.
provider est le fournisseur WMI facultatif (défini sur 32 par défaut pour l’Agent Datadog 32 bits ou 64 pour la version 64 bits). Il est utilisé pour demander des données WMI auprès du fournisseur choisi. Options disponibles : 32 ou 64.
Consultez la documentation MSDN pour en savoir plus.
tag_by est facultatif et vous permet de taguer chaque métrique avec une propriété de la classe WMI que vous utilisez. Cela est uniquement utile lorsque vous avez plusieurs valeurs pour votre requête WMI.
tags est facultatif et vous permet de taguer chaque métrique avec un ensemble de valeurs fixes.
tag_queries est facultatif et vous permet de spécifier une liste de requêtes pour taguer des métriques avec une propriété de classe cible. Chaque élément dans la liste est un ensemble [<PROPRIÉTÉ_SOURCE_LIEN>,<CLASSE_CIBLE>,<PROPRIÉTÉ_CLASSE_CIBLE_LIEN>,<PROPRIÉTÉ_CIBLE>], où :
<PROPRIÉTÉ_SOURCE_LIEN> contient la valeur du lien
<CLASSE_CIBLE> est la classe à lier
<PROPRIÉTÉ_CLASSE_CIBLE_LIEN> est la propriété de classe cible à lier
<PROPRIÉTÉ_CIBLE> contient la valeur à taguer
On obtient alors une requête WMI :
SELECT '<PROPRIÉTÉ_CIBLE>' FROM '<CLASSE_CIBLE>' WHERE '<PROPRIÉTÉ_CLASSE_CIBLE_LIEN>' = '<PROPRIÉTÉ_SOURCE_LIEN>'
Exemple
Le paramètre [IDProcess, Win32_Process, Handle, CommandLine] applique à chaque processus un tag correspondant à sa ligne de commande. Les éventuels numéros d’instance sont supprimés des valeurs tag_by. Exemple : name:process#1 => name:process. Attention : pour que ce paramètre fonctionne, l’Agent doit s’exécuter en tant que compte Administrator. En effet, la propriété CommandLine est réservée aux administrateurs.
Collecte de métriques
Le check WMI peut potentiellement générer des métriques custom, ce qui peut avoir une incidence sur votre facture.