Autoscaling an Instance Group with Stackdriver Custom Metrics
- Deploy an autoscaling Compute Engine instance group.
- Create a custom metric used to scale the instance group.
- Use the Google Cloud Platform Console to visualize the custom metric and instance group size.
The Node.js script is used to seed a custom metric with values that the instance group can respond to. In a production environment, you would base autoscaling on a metric that is relevant to your use case.
The application includes the following components:
- Compute Engine instance template— A template used to create each instance in the instance group.
- Cloud Storage - A bucket used to host the startup script and other script files.
- Compute Engine startup script— A startup script that installs the necessary code components on each instance. The startup script is installed and started automatically when an instance starts. When the startup script runs, it in turn installs and starts code on the instance that writes values to the Stackdriver custom metric.
- Compute Engine instance group— An instance group that autoscales based on the Stackdriver monitoring metric values.
- Compute Engine instances— A variable number of Compute Engine instances.
- Custom Stackdriver Monitoring metric— A custom monitoring metric used as the input value for Compute Engine instance group autoscaling.
Setup and Requirements
What you'll need
To complete this lab, you’ll need:
- Access to a standard internet browser (Chrome browser recommended).
- Time. Note the lab’s Completion time in Qwiklabs. This is an estimate of the time it should take to complete all steps. Plan your schedule so you have time to complete the lab. Once you start the lab, you will not be able to pause and return later (you begin at step 1 every time you start a lab).
- The lab's Access time is how long your lab resources will be available. If you finish your lab with access time still available, you will be able to explore the Google Cloud Platform or work on any section of the lab that was marked "if you have time". Once the Access time runs out, your lab will end and all resources will terminate.
- You DO NOT need a Google Cloud Platform account or project. An account, project and associated resources are provided to you as part of this lab.
- If you already have your own GCP account, make sure you do not use it for this lab.
- If your lab prompts you to log into the console, use only the student account provided to you by the lab. This prevents you from incurring charges for lab activities in your personal GCP account.
Start your lab
When you are ready, click Start Lab. You can track your lab’s progress with the status bar at the top of your screen.
Find Your Lab’s GCP Username and Password
To access the resources and console for this lab, locate the Connection Details panel in Qwiklabs. Here you will find the account ID and password for the account you will use to log in to the Google Cloud Platform:
If your lab provides other resource identifiers or connection-related information, it will appear on this panel as well.
Log in to Google Cloud Console
Using the Qwiklabs browser tab/window or the separate browser you are using for the Qwiklabs session, copy the Username from the Connection Details panel and click the “Open Google Console” button.
You'll be asked to choose an account. Click Use another account.
Paste in the Username, and then the Password as prompted:
Accept the terms and conditions.
Since this is a temporary account, which you will only have access to for this one lab:
- Do not add recovery options
- Do not sign up for free trials
Activate Google Cloud Shell
Google Cloud Shell provides command-line access to your GCP resources.
From the GCP Console click the Cloud Shell icon on the top right toolbar:
Then click START CLOUD SHELL:
It takes a few moments to provision and connect to the environment:
The Cloud Shell is a virtual machine loaded with all the development tools you’ll need. It offers a persistent 5GB home directory, and runs on the Google Cloud, greatly enhancing network performance and authentication.
Once connected to the cloud shell, you'll see that you are already authenticated and the project is set to your PROJECT_ID:
gcloud auth list
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
[core] project = <PROJECT_ID>
Join Qwiklabs to read the rest of this lab...and more!
- Get temporary access to the Google Cloud Console.
- Over 200 labs from beginner to advanced levels.
- Bite-sized so you can learn at your own pace.