Recueillir des métriques supplémentaires à partir de l'intégration SQL Server

Présentation

Par défaut, l’intégration SQL Server recueille uniquement les métriques répertoriées sur la page de la documentation dédiée. Il est toutefois possible de recueillir des métriques supplémentaires en configurant votre fichier sqlserver.d/conf.yaml. Pour ce faire, suivez la syntaxe de notre fichier d’exemple (en ajoutant votre code sous init_config).

À l’heure actuelle, le check sqlserver Datadog interroge uniquement les données de la table sys.dm_os_performance_counters. Il est néanmoins possible d’utiliser WMI pour exposer les métriques d’autres tables counter. Pour recueillir des données spécifiques, recherchez le counter_name et, le cas échéant, le instance_name de la métrique que vous souhaitez récupérer. Après avoir accédé à votre serveur à partir de l’utilitaire sqlcmd de powershell, exécutez ce qui suit, ou une requête similaire, pour obtenir la liste des count_names disponibles dans cette table de votre SQL Server.

Remarque : la liste renvoyée contient de nombreux éléments.

1> SELECT counter_name, instance_name, cntr_value, cntr_type FROM sys.dm_os_performance_counters;
2> go

Vous pouvez alors noter les counter_names qui vous intéressent le plus, les ajouter à la section dédiée aux métriques custom du fichier sqlserver.yaml (dans les options counter_name), puis attribuer un nom approprié à votre métrique dans les options « - name: ». Il peut être utile d’ajouter « sqlserver. » devant le nom des métriques, comme pour toutes les autres métriques sqlserver.

Exemple

L’exemple de fichier sqlserver.d/conf.yaml suivant permet de recueillir des métriques relatives aux propriétés de l’exécution CLR, des requêtes en attente et des requêtes actives :

init_config:

  custom_metrics:

    - name: sqlserver.clr.execution
      counter_name: CLR Execution
    - name: sqlserver.requests.queued
      counter_name: Queued requests
      instance_name: internal
    - name: sqlserver.requests.active
      counter_name: Active requests
      instance_name: internal

instances:
  - host: 127.0.0.1,1433
    username: datadog
    password: *******
    tags:
      - test:sqlserver