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_NAME1.googleapis.com/PATH2 | Metrics from Google Cloud products and services. For a full list of these metrics, see Google Cloud metrics. | 
| agent.googleapis.com/SERVICE_NAME1/PATH2 | 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/PATH2 | 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_NAME1/PATH2 | Metrics from Amazon Web Services. For a full list of these metrics, see AWS metrics. | 
| istio.io/PATH2 | Metrics from Istio for Google Cloud. For a full list of these metrics, see Istio metrics. | 
| kubernetes.io/PATH2 | Metrics from Google Kubernetes Engine. For a full list of these metrics, see Kubernetes metrics. | 
| knative.dev/PATH2 | Metrics from Knative. For a full list of these metrics, see Knative metrics. | 
| external.googleapis.com/EXT_SERVICE/PATH2external.googleapis.com/prometheus/PATH2 | 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/PATH2external.googleapis.com/user/PATH2 | User-defined metrics. You can use these metric types only in the projects where you define them. | 
| logging.googleapis.com/PATH2 | 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.
 
- Use upper and lower-case letters (
- 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.
 
- Use lower-case letters (