Collect more metrics from the SQL Server integration

Overview

By default, the SQL Server integration only collects the metrics listed in the documentation page. But you can collect additional metrics from your SQL Server integration by configuring your sqlserver.d/conf.yaml following the syntax in our example file (these goes under “init_config”).

At this time, the Datadog sqlserver check only queries data from the sys.dm_os_performance_counters table, although you can use WMI to expose metrics from other counter tables. To collect specific data, find counter_name and, when applicable, instance_name to correspond to the metric you’re interested in collecting. Once you access your server from powershell’s sqlcmd, run the following or similar query to get a list of what count_names are available in that table in your SQL Server.

Note: This returns a long list.

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

From there you can pick out the counter_names that are most interesting to you, add them to your custom metric section of the sqlserver.yaml in the “counter_name” options, and give your metric an appropriate name in the “- name:” options (you may want to start them with “sqlserver.” like all the other sqlserver metrics).

Example

An example of what your sqlserver.d/conf.yaml might look like if you wanted to collect metrics for the CLR Execution, Queued requests, and Active requests properties is as follows:

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
PREVIEWING: safchain/fix-custom-agent