Infrastructure Integration¶
Configuration¶
-
Configure the agent by editing
/etc/nutanix/epoch-dd-agent/conf.d/wmi_check.yaml
in the collectors. Example:init_config: instances: # Each WMI query has 2 required options, `class` and `metrics` and six # optional options, `host`, `namespace`, `filters`, `tag_by`, `constant_tags` and `tag_queries`. # # `host` is the optional target of the WMI query, `localhost` is assumed by default # if you set this option, make sure that Remote Management is enabled on the target host # see https://technet.microsoft.com/en-us/library/Hh921475.aspx for more information # # `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. # # `namespace` is the optionnal WMI namespace to connect to (default to `cimv2`). # `provider` is the optional WMI provider (default to `32` on dd-agent Agent 32-bit or `64`). # It is used to request WMI data from the non-default provider. Available options are: `32` or `64`. # For more information: https://msdn.microsoft.com/en-us/library/aa393067(v=vs.85).aspx # # `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. # # - 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. You can also use the '%' character as a wildcard. # See below for examples. # # `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"). # # `constant_tags` optionally lets you tag each metric with a set of fixed values. # # `tag_queries` optionally lets you specify a list of queries, to tag metrics # with a target class property. Each item in the list is a set of # [link source property, target class, link target class property, target property] # where: # # - 'link source property' contains the link value # # - 'target class' is the class to link to # # - 'link target class property' is the target class property to link to # # - 'target property' contains the value to tag with # # It translates to a WMI query: # SELECT 'target property' FROM 'target class' # WHERE 'link target class property' = 'link source property' # # Note: setting this will cause any instance number to be removed from tag_by values # i.e. name:process#1 => name:process # # This feature is available starting with version 5.3 of the agent # 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, tagging with 'role:test'. - class: Win32_PerfFormattedData_PerfProc_Process metrics: - [ThreadCount, my_app.threads.count, gauge] - [VirtualBytes, my_app.mem.virtual, gauge] filters: - Name: myapp constant_tags: - 'role:test' # 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 a set of processes, tagging by app name, and command line params. - class: Win32_PerfFormattedData_PerfProc_Process metrics: - [IOReadBytesPerSec, proc.io.bytes_read, gauge] filters: - Name: 'app%' tag_by: Name tag_queries: - [IDProcess, Win32_Process, Handle, CommandLine]
-
Check and make sure that all yaml files are valid with following command:
/etc/init.d/epoch-collectors configcheck
-
Restart the Agent using the following command:
/etc/init.d/epoch-collectors restart
-
Execute the info command to verify that the integration check has passed:
/etc/init.d/epoch-collectors info
The output of the command should contain a section similar to the following:
Checks
======
[...]
wmi
---
- instance #0 [OK]
- Collected 8 metrics & 0 events