Monitoring agent overview

The Monitoring agent is a collectd-based daemon that gathers system and application metrics from virtual machine instances and sends them to Monitoring. By default, the Monitoring agent collects disk, CPU, network, and process metrics. You can configure the Monitoring agent to monitor third-party applications to get the full list of agent metrics.

To install the agent, see Installing the Monitoring agent.

Purpose

Using the Monitoring agent is optional but recommended. Monitoring can access some instance metrics without the Monitoring agent, including CPU utilization, some disk traffic metrics, network traffic, and uptime information. Monitoring uses the Monitoring agent to access additional system resources and application services in virtual machine (VM) instances. If you want these additional capabilities, you should install the Monitoring agent.

After installing the Monitoring agent, you can monitor supported third-party applications by adding application-specific collectd configurations. See Monitoring third-party applications for details.

For a complete list of the built-in metrics you can get with the Monitoring agent, see Agent metrics.

To send any custom metric to Monitoring using the agent, see Monitoring custom applications. If you have access to the source code of your application, it may be more convenient to instrument it with OpenTelemetry. For information about instrumentation, see Instrumentation and observability.

Supported configurations

The Monitoring agent is compatible with the following environments.

Virtual machine instances

You can install the Monitoring agent on the following kinds of VM instances:

  • Compute Engine instances. The Monitoring agent sends monitoring information to each instance's associated project.

    For instances without external IP addresses, you must enable Private Google Access to allow the Monitoring agent to send metrics.

    To create a Compute Engine instance, see Compute Engine getting started guide.

  • Amazon Elastic Compute Cloud (Amazon EC2) instances.

    The Monitoring agent sends monitoring information from AWS to a Google Cloud project.

    For the Monitoring agent to function correctly, the Amazon EC2 instance it runs on must be able to communicate with Google Cloud APIs, particularly the Monitoring API. This requires either an external IP address or a NAT Gateway.

    To create an Amazon EC2 instance, see Amazon EC2 Getting Started Guide.

The following types of VM instances belong to managed services that implement service-specific Monitoring support. Don't try to manually install or configure the Monitoring agent on them:

  • App Engine standard has built-in Monitoring support. Agents aren't needed.
  • App Engine flexible environment instances have pre-installed agents with service-specific configurations.
  • Dataflow instances have pre-installed Monitoring agents with service-specific configurations.
  • Dataproc instances prior to image version 2.2 have pre-installed Monitoring agents with service-specific configurations.

    You can install the Ops Agent on Dataproc clusters that use image version 2.2 and later to collect syslog logs and host metrics. For more information, see Dataproc 2.2.x release versions.

  • Google Kubernetes Engine node instances:

Operating systems

The Monitoring agent supports the following operating systems on compatible VM instances.

Linux operating systems

The Monitoring agent supports the following Linux operating systems:

  • Amazon Linux AMI
  • CentOS 7
  • CentOS 8
  • Rocky Linux 8
  • RHEL 7: rhel-7, rhel-7-6-sap-ha, rhel-7-7-sap-ha
  • RHEL 8: rhel-8, rhel-8-4-sap-ha, rhel-8-6-sap-ha, rhel-8-8-sap-ha
  • Debian 9 (Stretch)
  • Debian 10 (Buster)
  • Debian 11 (Bullseye)
  • SLES 12: sles-12, sles-12-sp5-sap
  • SLES 15: sles-15, sles-15-sp2-sap, sles-15-sp3-sap, sles-15-sp4-sap, sles-15-sp5-sap
  • OpenSUSE Leap 15: opensuse-leap (opensuse-leap-15-3-*, opensuse-leap-15-4-*)
  • Ubuntu 20.04 LTS (Focal Fossa): ubuntu-2004-lts, ubuntu-minimal-2004-lts

The Monitoring agent does not presently support the Container-Optimized OS that is the default in Google Kubernetes Engine clusters.

Windows operating systems:

All versions of the Monitoring agent support the following Windows operating systems:

  • Windows Server 2019
  • Windows Server Core 2019
  • Windows Server 2016
  • Windows Server Core 2016

The Monitoring agent does not presently support Windows Server Core 2019 for containers.

Supported applications

You can configure Monitoring to monitor a variety of popular open source software applications. Configuration is only possible for agents running on Linux. Agents running on Windows can monitor IIS and MS SQL applications, but they are not configurable for other applications.

For more information, see Monitoring third-party applications.

Agent access requirements

Running the agent requires access to the following DNS names:

  • OAuth2 token server: oauth2.googleapis.com

    Earlier versions of the agent may require access to www.googleapis.com (full URL: https://www.googleapis.com/oauth2/v3/token).

    If you're using an older version of the agent, it's recommended that you upgrade your agent to the latest version.

  • Monitoring APIs: monitoring.googleapis.com

Installing the agent requires access to the following DNS names:

  • (Linux) Google Cloud package repository: packages.cloud.google.com

  • (Linux) Google downloads subdomain: dl.google.com

  • (Windows) Legacy Stackdriver download server: repo.stackdriver.com

Getting the Monitoring agent source code

The source code for the Monitoring agent is available for only the Linux-hosted Monitoring agent. The Windows-hosted Monitoring agent is not open source.

The Monitoring agent is installed by a script described in the installation instructions. You can skip this section if you only want to install and use the agent. If you want to understand the source code, then read this section.

The Monitoring agent, stackdriver-agent, is based on the original collectd system statistics collection daemon. stackdriver-agent source code is available at Stackdriver/collectd. The build and packaging scripts for the Monitoring agent are available at Stackdriver/agent-packaging. The configuration files for third-party applications are in the agent's GitHub configuration repository.

The software package for stackdriver-agent contains:

  • The collectd daemon.
  • The plugin shared libraries, including the Cloud Monitoring API output plugin.
  • The top-level configuration files for the Monitoring agent.

Deprecation policy

The Monitoring agent is subject to the Agents deprecation policy.

For deprecation information for legacy features and versions, refer to Google Cloud Observability deprecations.

What's next

  • See Quickstart to monitor a VM instance running an Apache web server. The quickstart includes installing the agent.
  • See Installing the Monitoring agent to install the agent on Compute Engine or Amazon EC2 VM instances.