Skip to main content
compliance · gcp

GKE Standard clusters that no longer send system metrics to Cloud Monitoring

resource types
1
rule IDs covered
1
severity
high

What does ZopNight detect here?

GKE clusters are flagged at high severity when ZopNight records Cloud Monitoring as disabled, typically after `--monitoring=NONE`. Google states that with system metrics off, basic CPU, memory and disk usage are unavailable for the cluster, even though ingesting GKE system metrics under the `kubernetes.io` prefix costs nothing.

Signal and threshold

How ZopNight evaluates GKE Standard clusters that no longer send system metrics to Cloud Monitoring.
Field Value
Rule IDsRC-1220
Categorycompliance
Severityhigh
Metricnone — pure configuration read
Thresholdcluster monitoring recorded as disabled
SourceZopNight
Permissions usedcontainer.clusters.list · container.clusters.get

Free metrics that disappear with one flag

When a GKE cluster is created, it collects metrics from system components by default and sends them to Cloud Monitoring under the kubernetes.io prefix. Google’s metrics configuration page notes that Cloud Monitoring does not charge for ingesting these system metrics, and that if you disable them, basic information such as CPU, memory and disk usage is no longer available for the cluster.

Two more consequences are easy to miss. Google warns that with Cloud Logging or Cloud Monitoring disabled, GKE support is offered on a best-effort basis. And Autopilot clusters cannot disable system metrics at all, so this finding almost always concerns a Standard cluster.

Checking a cluster’s metric packages

Terminal window
gcloud container clusters describe CLUSTER_NAME --location=LOCATION \
--format="value(monitoringConfig.componentConfig.enableComponents)"

SYSTEM_COMPONENTS in the result means system metrics are on. Other packages, such as APISERVER, or POD and DEPLOYMENT, which need Managed Service for Prometheus, are optional extras on top.

When ZopNight raises it

ZopNight records a monitoring status for each GKE cluster during inventory and fires only on an explicit disabled value. No utilisation data or time window is involved; the finding is about the collection setting itself.

Situations where it stays silent

A cluster with no recorded monitoring status is skipped. The rule does not assess alerting policies, dashboards or retention. Missing logs are a separate finding: GKE Cluster Logging Disabled.

No bill, only blindness

The saving is $0, and turning system metrics back on does not add ingestion charges for them. What it restores is the evidence needed to right-size nodes and to see an outage coming.

Restoring system metrics

  1. Enable system metrics: gcloud container clusters update CLUSTER_NAME --location=LOCATION --monitoring=SYSTEM.
  2. Add API_SERVER or other packages if you use them, for example --monitoring=SYSTEM,API_SERVER,POD; the Pod and workload packages require Managed Service for Prometheus.
  3. Check that the cluster’s observability metrics show node CPU and memory usage again.
  4. Review alerting policies built on kubernetes.io metrics; they had no data while collection was off.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·