Bird
Raised Fist0
GCPcloud~10 mins

Metrics and dashboards in GCP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a metric descriptor for a custom metric in Google Cloud Monitoring.

GCP
metric_descriptor = monitoring_v3.MetricDescriptor()
metric_descriptor.type = "custom.googleapis.com/[1]"
metric_descriptor.metric_kind = monitoring_v3.MetricDescriptor.MetricKind.GAUGE
metric_descriptor.value_type = monitoring_v3.MetricDescriptor.ValueType.DOUBLE
Drag options to blanks, or click blank then click option'
Amemory_usage
Bnetwork_latency
Cdisk_io
Dcpu_usage
Attempts:
3 left
💡 Hint
Common Mistakes
Using a metric name without the 'custom.googleapis.com/' prefix.
Choosing a metric name that is not descriptive.
2fill in blank
medium

Complete the code to create a dashboard widget that shows a line chart of CPU utilization.

GCP
widget = {
  "xyChart": {
    "dataSets": [{
      "timeSeriesQuery": {
        "timeSeriesFilter": {
          "filter": "metric.type = \"compute.googleapis.com/instance/cpu/utilization\"",
          "aggregation": {
            "perSeriesAligner": monitoring_v3.Aggregation.Aligner.[1]
          }
        }
      }
    }]
  }
}
Drag options to blanks, or click blank then click option'
AALIGN_MAX
BALIGN_MEAN
CALIGN_MIN
DALIGN_SUM
Attempts:
3 left
💡 Hint
Common Mistakes
Using ALIGN_SUM which sums values and may not represent average usage.
Using ALIGN_MAX or ALIGN_MIN which show extremes, not average.
3fill in blank
hard

Fix the error in the alerting policy condition filter to monitor high memory usage.

GCP
condition = {
  "conditionThreshold": {
    "filter": "metric.type = \"compute.googleapis.com/instance/memory/usage_bytes\" AND resource.type = [1]",
    "comparison": monitoring_v3.ComparisonType.COMPARISON_GT,
    "thresholdValue": 8000000000,
    "duration": "300s"
  }
}
Drag options to blanks, or click blank then click option'
A"compute_instance"
B"gce-vm"
C"gce_instance"
D"vm_instance"
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect resource type strings that cause the filter to fail.
Omitting quotes around the resource type.
4fill in blank
hard

Fill both blanks to create a dashboard widget that displays a stacked bar chart of network traffic by direction.

GCP
widget = {
  "xyChart": {
    "chartOptions": {
      "mode": monitoring_v3.XyChart.ChartOptions.Mode.[1],
      "chartType": monitoring_v3.XyChart.ChartType.[2]
    },
    "dataSets": [{
      "timeSeriesQuery": {
        "timeSeriesFilter": {
          "filter": "metric.type = \"compute.googleapis.com/instance/network/received_bytes_count\" OR metric.type = \"compute.googleapis.com/instance/network/sent_bytes_count\"",
          "aggregation": {
            "perSeriesAligner": monitoring_v3.Aggregation.Aligner.ALIGN_SUM
          }
        }
      }
    }]
  }
}
Drag options to blanks, or click blank then click option'
ASTACKED
BGROUPED
CLINE
DBAR
Attempts:
3 left
💡 Hint
Common Mistakes
Using LINE mode or chart type which shows lines, not bars.
Using GROUPED mode which shows bars side by side, not stacked.
5fill in blank
hard

Fill all three blanks to define an alerting policy that triggers when average CPU utilization exceeds 70% for 5 minutes.

GCP
alert_policy = {
  "conditions": [{
    "conditionThreshold": {
      "filter": "metric.type = \"compute.googleapis.com/instance/cpu/utilization\" AND resource.type = \"[1]\"",
      "comparison": monitoring_v3.ComparisonType.[2],
      "thresholdValue": [3],
      "duration": "300s"
    }
  }]
}
Drag options to blanks, or click blank then click option'
Agce_instance
BCOMPARISON_GT
C0.7
DCOMPARISON_LT
Attempts:
3 left
💡 Hint
Common Mistakes
Using COMPARISON_LT which triggers below threshold.
Using incorrect resource type strings.
Setting threshold value as 70 instead of 0.7.

Practice

(1/5)
1. What is the main purpose of a dashboard in Google Cloud Monitoring?
easy
A. To visually display metrics and help monitor cloud resources
B. To store data permanently for backup
C. To write code for cloud functions
D. To manage user permissions

Solution

  1. Step 1: Understand what dashboards do

    Dashboards show visual summaries of metrics to help users watch cloud resources easily.
  2. Step 2: Identify the correct purpose

    Among the options, only displaying metrics visually matches the dashboard's role.
  3. Final Answer:

    To visually display metrics and help monitor cloud resources -> Option A
  4. Quick Check:

    Dashboard = Visual metric display [OK]
Hint: Dashboards show data visually, not store or code [OK]
Common Mistakes:
  • Confusing dashboards with storage or coding tools
  • Thinking dashboards manage permissions
2. Which of the following is the correct way to filter CPU usage metric in a Google Cloud Monitoring dashboard widget?
easy
A. filter: cpu_usage_metric
B. metric = "cpu_usage"
C. metric.type = "compute.googleapis.com/instance/cpu/utilization"
D. metric.cpu = "usage"

Solution

  1. Step 1: Recall correct metric filter syntax

    Google Cloud Monitoring uses metric.type with full metric names like "compute.googleapis.com/instance/cpu/utilization".
  2. Step 2: Match options to syntax

    Only metric.type = "compute.googleapis.com/instance/cpu/utilization" uses the correct full metric.type format.
  3. Final Answer:

    metric.type = "compute.googleapis.com/instance/cpu/utilization" -> Option C
  4. Quick Check:

    Correct metric filter uses metric.type with full name [OK]
Hint: Use full metric.type path for filters [OK]
Common Mistakes:
  • Using incomplete or shorthand metric names
  • Wrong filter keywords like 'filter:' or 'metric.cpu'
3. Given this snippet for a dashboard widget filter:
metric.type = "compute.googleapis.com/instance/disk/read_bytes_count" AND resource.label.instance_id = "12345"
What does this filter show?
medium
A. Disk read bytes count for instance with ID 12345
B. CPU usage for instance 12345
C. Network bytes sent by instance 12345
D. Disk write bytes count for instance 12345

Solution

  1. Step 1: Analyze metric.type value

    The metric is "disk/read_bytes_count", which means bytes read from disk.
  2. Step 2: Check resource label filter

    The filter limits data to instance with ID "12345".
  3. Final Answer:

    Disk read bytes count for instance with ID 12345 -> Option A
  4. Quick Check:

    Disk read bytes + instance filter = Disk read bytes count for instance with ID 12345 [OK]
Hint: Match metric.type and resource label to understand filter [OK]
Common Mistakes:
  • Confusing read bytes with write bytes
  • Mixing disk metrics with CPU or network
4. You created a dashboard widget but it shows no data. Which of these is the most likely cause?
medium
A. The user has read access to the project
B. The dashboard widget is set to refresh every 5 seconds
C. The dashboard has more than 5 widgets
D. The metric filter uses an incorrect metric type name

Solution

  1. Step 1: Identify common reasons for no data

    Incorrect metric type names cause filters to match no data, so widget shows empty.
  2. Step 2: Evaluate other options

    Refresh rate or widget count do not prevent data display; read access is needed but assumed correct here.
  3. Final Answer:

    The metric filter uses an incorrect metric type name -> Option D
  4. Quick Check:

    No data usually means wrong metric filter [OK]
Hint: Check metric type spelling if no data shows [OK]
Common Mistakes:
  • Blaming refresh rate or widget count
  • Ignoring permission issues but assuming access is correct
5. You want to create a dashboard showing both CPU utilization and network bytes sent for multiple instances, but only for instances tagged with "env:production". Which approach is best?
hard
A. Create a widget with a filter for "env:production" but only for disk metrics
B. Create two widgets with filters for CPU and network metrics, each filtering resource labels for "env:production"
C. Create a widget filtering only CPU metrics for all instances, ignoring network metrics
D. Create one widget showing CPU and network metrics without filters, then manually check instance tags

Solution

  1. Step 1: Understand the requirement

    You need to show two different metrics (CPU and network) filtered by instance tag "env:production".
  2. Step 2: Choose filtering and widget setup

    Best practice is separate widgets for each metric with proper filters on resource labels for the tag.
  3. Step 3: Evaluate other options

    Options A, B, and C either miss filtering, use wrong metrics, or ignore one of the required metrics.
  4. Final Answer:

    Create two widgets with filters for CPU and network metrics, each filtering resource labels for "env:production" -> Option B
  5. Quick Check:

    Separate widgets + correct filters = best dashboard [OK]
Hint: Use separate widgets with filters for each metric [OK]
Common Mistakes:
  • Trying to combine unrelated metrics in one widget without filters
  • Ignoring resource label filters for tags
  • Showing irrelevant metrics
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard