Metric naming conventions

This document describes the naming conventions Cloud Monitoring enforces for metrics.

Metric resource name

The resource name for a metric type consists of a string with three primary sub-structures:

  • An identifier for a specific project.
  • A marker, which is always set to metricDescriptors, to indicate that the string represents a metric descriptor.
  • The metric type.

Resource names for metric types follow this pattern:

projects/PROJECT_ID/metricDescriptors/METRIC_TYPE

The sub-string METRIC_TYPE is an identifier that represents the metric type. It comes in a variety of formats, for example:

agent.googleapis.com/agent/api_request_count
compute.googleapis.com/firewall/dropped_bytes_count
istio.io/service/client/received_bytes_count
kubernetes.io/anthos/APIServiceOpenAPIAggregationControllerQueue1_adds

In the metric descriptor, the name field stores the metric type's resource name, and the type field stores the METRIC_TYPE sub-string.

The following table shows how to parse the METRIC_TYPE sub-strings contained in a resource name:

Possible structures Description
SERVICE_NAME 1.googleapis.com/PATH 2 Metrics from Google Cloud products and services. For a full list of these metrics, see Google Cloud metrics.
agent.googleapis.com/SERVICE_NAME 1/PATH 2 Metrics from the Monitoring and Logging agents running on VM instances in Google Cloud or AWS. For a full list of these metrics, see Agent metrics.
kubernetes.io/anthos/PATH 2 Metrics from GKE Enterprise, a Google Cloud service that enables you to run Kubernetes clusters both on-prem and in the cloud. For a full list of these metrics, see Anthos metrics.
aws.googleapis.com/SERVICE_NAME 1/PATH 2 Metrics from Amazon Web Services. For a full list of these metrics, see AWS metrics.
istio.io/PATH 2 Metrics from Istio for Google Cloud. For a full list of these metrics, see Istio metrics.
kubernetes.io/PATH 2 Metrics from Google Kubernetes Engine. For a full list of these metrics, see Kubernetes metrics.
knative.dev/PATH 2 Metrics from Knative. For a full list of these metrics, see Knative metrics.
external.googleapis.com/EXT_SERVICE/PATH 2
external.googleapis.com/prometheus/PATH 2
Third-party custom metrics such as Prometheus. This open-source monitoring tool is often used with Kubernetes. For more information about these metrics, see External metrics. You can use these metric types only in the projects that define them.
custom.googleapis.com/PATH 2
external.googleapis.com/user/PATH 2
User-defined metrics. You can use these metric types only in the projects where you define them.
logging.googleapis.com/PATH 2 Logs-based metrics from Cloud Logging. You can use predefined metrics or you can create custom metrics. Custom metrics can only be used in projects where you define them.

1 SERVICE_NAME identifies a Google Cloud product, such as compute for Compute Engine.
2 PATH identifies the metric within the product, such as instance/cpu/utilization.

Rules for metric types and labels

This list contains rules to follow when you create custom metric types. Labels associated with a metric type are specified as key-value pairs of type LabelDescriptor. The key acts as the name of the label.

  • Metric types

    • Use upper and lower-case letters (A-Z, a-z), digits (0-9), periods (.), and underscores (_) in the string.
    • Use forward slashes (/) to separate path elements.
    • You must start each path element with a letter or digit.
    • The maximum length of a metric-type string is 200 characters.
  • Label keys

    • Use lower-case letters (a-z), digits (0-9), and underscores (_) in a label key.
    • You must start label keys with a letter.
    • The maximum length of a label key is 100 characters.
    • Each key must be unique within the metric type.
    • You can have no more than 30 labels per metric type.