Datadog-VMware Integration

Overview

This check collects resource usage metrics from your vSphere cluster—CPU, disk, memory, and network usage. It also watches your vCenter server for events and emits them to Datadog.

Setup

Installation

The vSphere check is packaged with the Agent, so simply install the Agent on your vCenter server. If you need the newest version of the check, install the dd-check-mcache package.

Configuration

In the Administration section of vCenter, add a read-only user called datadog-readonly.

Then, create a file vsphere.yaml in the Datadog Agent’s conf.d directory. See the sample vsphere.yaml for all available configuration options:

init_config:

instances:
  - name: main-vcenter # how metrics will be tagged, i.e. 'vcenter_server:main-vcenter'
    host: <VCENTER_HOSTNAME>          # e.g. myvcenter.example.com
    username: <USER_YOU_JUST_CREATED> # e.g. datadog-readonly@vsphere.local
    password: <PASSWORD>

Restart the Agent to start sending vSphere metrics and events to Datadog.

Configuration Options

  • ssl_verify (Optional) - Set to false to disable SSL verification, when connecting to vCenter
  • ssl_capath (Optional) - Set to the absolute file path of a directory containing CA certificates in PEM format
  • host_include_only_regex (Optional) - Use a regex like this if you want only the check to fetch metrics for these ESXi hosts and the VMs running on it
  • vm_include_only_regex (Optional) - Use a regex to include only the VMs that are matching this pattern.
  • include_only_marked (Optional) - Set to true if you’d like to only collect metrics on vSphere VMs which are marked by a custom field with the value ‘DatadogMonitored’. To set this custom field with PowerCLI, use the follow command: Get-VM <MyVMName> | Set-CustomField -Name "DatadogMonitored" -Value "DatadogMonitored"
  • all_metrics (Optional) - When set to true, this will collect EVERY metric from vCenter, which means a LOT of metrics you probably do not care about. We have selected a set of metrics that are interesting to monitor for you if false.
  • event_config (Optional) - Event config is a dictionary. For now the only switch you can flip is collect_vcenter_alarms which will send as events the alarms set in vCenter.

Validation

Run the Agent’s info subcommand and look for vsphere under the Checks section:

  Checks
  ======
    [...]

    vsphere
    -------
      - instance #0 [OK]
      - Collected 26 metrics, 0 events & 1 service check

    [...]

Compatibility

The vsphere check is compatible with all Windows platforms.

Data Collected

Metrics

vsphere.cpu.extra
(gauge)
Milliseconds of extra CPU time.
shown as millisecond
vsphere.cpu.ready
(gauge)
Milliseconds of CPU time spent in ready state.
shown as millisecond
vsphere.cpu.usage
(gauge)
Percentage of CPU capacity being used.
shown as percent
vsphere.cpu.usagemhz
(gauge)
Total megehertz of CPU being used.
shown as megahertz
vsphere.disk.commandsAborted
(gauge)
Number of SCSI commands aborted.
shown as occurrence
vsphere.disk.deviceLatency
(gauge)
Average amount of time it takes to complete an SCSI command from physical device.
shown as millisecond
vsphere.disk.deviceReadLatency
(gauge)
Average amount of time it takes to complete read from physical device.
shown as millisecond
vsphere.disk.deviceWriteLatency
(gauge)
Average amount of time it takes to complete write to the physical device (LUN).
shown as millisecond
vsphere.disk.queueLatency
(gauge)
Average amount of time spent in VMkernel queue (per SCSI command).
shown as millisecond
vsphere.disk.totalLatency
(gauge)
Sum of average amount of time (in kernel and device) to process an SCSI command issued by the Guest OS to the vm.
shown as millisecond
vsphere.mem.active
(gauge)
Kilobytes of memory that the VMkernel estimates is being actively used based on recently touched memory pages.
shown as kibibyte
vsphere.mem.compressed
(gauge)
Kilobytes of memory that have been compressed.
shown as kibibyte
vsphere.mem.consumed
(gauge)
Kilobytes of used memory.
shown as kibibyte
vsphere.mem.overhead
(gauge)
Kilobytes of memory allocated to a vm beyond its reserved amount.
shown as kibibyte
vsphere.mem.vmmemctl
(gauge)
Kilobytes of memory allocated by the virtual machine memory control driver (vmmemctl).
shown as kibibyte
vsphere.network.received
(rate)
Number of kilobytes received by the host.
shown as kibibyte
vsphere.network.transmitted
(rate)
Number of kilobytes transmitted by the host.
shown as kibibyte

Events

This check watches vCenter’s Event Manager for events and emits them to Datadog. It does NOT emit the following event types:

  • AlarmStatusChangedEvent:Gray
  • VmBeingHotMigratedEvent
  • VmResumedEvent
  • VmReconfiguredEvent
  • VmPoweredOnEvent
  • VmMigratedEvent
  • TaskEvent:Initialize powering On
  • TaskEvent:Power Off virtual machine
  • TaskEvent:Power On virtual machine
  • TaskEvent:Reconfigure virtual machine
  • TaskEvent:Relocate virtual machine
  • TaskEvent:Suspend virtual machine
  • TaskEvent:Migrate virtual machine
  • VmMessageEvent
  • VmSuspendedEvent
  • VmPoweredOffEvent

Service Checks

vcenter.can_connect:

Returns CRITICAL if the Agent cannot connect to vCenter to collect metrics, otherwise OK.

Troubleshooting

How should the Datadog Agent be set up with vCenter and ESX?

How will a VMware integration impact my monthly billing?

The base pricing is $15 per virtual machine per month. For general info on Datadog pricing, please visit our Billing FAQ page.

Further Reading

See our blog post on monitoring vSphere environments with Datadog.