init_config:

instances:
    # Each WMI query has 2 required options, `class` and `metrics` and two
    # optional options, `filters` and `tag_by`.
    #
    # `class` is the name of the WMI class, for example Win32_OperatingSystem
    # or Win32_PerfFormattedData_PerfProc_Process. You can find many of the
    # standard class names on the MSDN docs at
    # http://msdn.microsoft.com/en-us/library/windows/desktop/aa394084.aspx.
    # The Win32_FormattedData_* classes provide many useful performance counters
    # by default.
    #
    #
    # `metrics` is a list of metrics you want to capture, with each item in the
    # list being a set of [WMI property name, metric name, metric type].
    #
    # - The property name is something like `NumberOfUsers` or `ThreadCount`.
    #   The standard properties are also available on the MSDN docs for each
    #   class.
    #
    # - The metric name is the name you want to show up in Datadog.
    #
    # - The metric type is from the standard choices for all agent checks, such
    #   as gauge, rate, histogram or counter.
    #
    #
    # `filters` is a list of filters on the WMI query you may want. For example,
    # for a process-based WMI class you may want metrics for only certain
    # processes running on your machine, so you could add a filter for each
    # process name. See below for an example of this case.
    #
    #
    # `tag_by` optionally lets you tag each metric with a property from the
    # WMI class you're using. This is only useful when you will have multiple
    # values for your WMI query. The examples below show how you can tag your
    # process metrics with the process name (giving a tag of "name:app_name").


    # Fetch the number of processes and users
    -   class: Win32_OperatingSystem
        metrics:
            -   [NumberOfProcesses, system.proc.count, gauge]
            -   [NumberOfUsers, system.users.count, gauge]

    # Fetch metrics for a single running application, called myapp
    -   class: Win32_PerfFormattedData_PerfProc_Process
        metrics:
            -   [ThreadCount, my_app.threads.count, gauge]
            -   [VirtualBytes, my_app.mem.virtual, gauge]
        filters:
            -   Name: myapp

    # Fetch process metrics for a set of processes, tagging by app name.
    -   class: Win32_PerfFormattedData_PerfProc_Process
        metrics:
            -   [ThreadCount, proc.threads.count, gauge]
            -   [VirtualBytes, proc.mem.virtual, gauge]
            -   [PercentProcessorTime, proc.cpu_pct, gauge]
        filters:
            -   Name: app1
            -   Name: app2
            -   Name: app3
        tag_by: Name

    # Fetch process metrics for every available process, tagging by app name.
    -   class: Win32_PerfFormattedData_PerfProc_Process
        metrics:
            -   [IOReadBytesPerSec, proc.io.bytes_read, gauge]
            -   [IOWriteBytesPerSec, proc.io.bytes_written, gauge]
        tag_by: Name


