Checkpoints
Verify break point is set
/ 50
Verify log point is set
/ 50
Debugging Applications for Site Reliability Engineers
GSP989
Overview
Cloud Debugger lets developers debug running code with live request data. In this lab you will set breakpoints and log points to examine what caused an application's performance issues.
Objectives
In this lab, you will learn how to:
-
Understand the requirements for enabling Cloud Debugger in containerized applications
-
Use Cloud Debugger to Debug running code with live request data
-
Set a breakpoint using Cloud Debugger to examine what caused application issues
-
Set a log point using Cloud Debugger to add logging statements without redeploying your application
Prerequisites
Understanding of general software development lifecycle processes as well as a general understanding of remediation and escalation processes.
Setup and requirements
Before you click the Start Lab button
Read these instructions. Labs are timed and you cannot pause them. The timer, which starts when you click Start Lab, shows how long Google Cloud resources will be made available to you.
This hands-on lab lets you do the lab activities yourself in a real cloud environment, not in a simulation or demo environment. It does so by giving you new, temporary credentials that you use to sign in and access Google Cloud for the duration of the lab.
To complete this lab, you need:
- Access to a standard internet browser (Chrome browser recommended).
- Time to complete the lab---remember, once you start, you cannot pause a lab.
How to start your lab and sign in to the Google Cloud Console
-
Click the Start Lab button. If you need to pay for the lab, a pop-up opens for you to select your payment method. On the left is the Lab Details panel with the following:
- The Open Google Console button
- Time remaining
- The temporary credentials that you must use for this lab
- Other information, if needed, to step through this lab
-
Click Open Google Console. The lab spins up resources, and then opens another tab that shows the Sign in page.
Tip: Arrange the tabs in separate windows, side-by-side.
Note: If you see the Choose an account dialog, click Use Another Account. -
If necessary, copy the Username from the Lab Details panel and paste it into the Sign in dialog. Click Next.
-
Copy the Password from the Lab Details panel and paste it into the Welcome dialog. Click Next.
Important: You must use the credentials from the left panel. Do not use your Google Cloud Skills Boost credentials. Note: Using your own Google Cloud account for this lab may incur extra charges. -
Click through the subsequent pages:
- Accept the terms and conditions.
- Do not add recovery options or two-factor authentication (because this is a temporary account).
- Do not sign up for free trials.
After a few moments, the Cloud Console opens in this tab.
Activate Cloud Shell
Cloud Shell is a virtual machine that is loaded with development tools. It offers a persistent 5GB home directory and runs on the Google Cloud. Cloud Shell provides command-line access to your Google Cloud resources.
- Click Activate Cloud Shell
at the top of the Google Cloud console.
When you are connected, you are already authenticated, and the project is set to your PROJECT_ID. The output contains a line that declares the PROJECT_ID for this session:
gcloud
is the command-line tool for Google Cloud. It comes pre-installed on Cloud Shell and supports tab-completion.
-
(Optional) You can list the active account name with this command:
-
Click Authorize.
-
Your output should now look like this:
Output:
-
(Optional) You can list the project ID with this command:
Output:
Example output:
gcloud
, in Google Cloud, refer to the gcloud CLI overview guide.
Debugger overview
You might have experienced situations where you see problems in production environments but they can't be reproduced in test environments. To find a root cause, then, you need to step into the source code or add more logs of the application as it runs in the production environment. Typically, this would require re-deploying the app, with all associated risks for production deployment.
Cloud Debugger (documentation) lets developers debug running code with live request data. You can set breakpoints and log points on the fly. When a breakpoint is hit, a snapshot of the process state is taken, so you can examine what caused the problem. With log points, you can add a log statement to a running app without re-deploying, and without incurring meaningful performance costs.
You do not have to add any instrumentation code to your application to use Cloud Debugger. You start the debugger agent in the container running the application, and you can then use the Debugger UI to step through snapshots of the running code.
The following Hipster Shop microservices are configured to capture debugger data:
-
Currency service
-
Email service
-
Payment service
-
Recommendation service
Task 1. Using Debugger
- To bring up the Debugger, select Debugger from the navigation panel on the Google Cloud console.
Debugger requires access to source code to function. For this exercise, you'll download the code locally and link it to Debugger.
Download source code
-
In Cloud Shell, issue these commands to download a release of the Sandbox source code and extract the archive:
-
To download the source code locally, click on More (three dots
) and select Download.
-
In the Download file path, extend the path with the required
cloud-ops-sandbox-next19
folder name and click Download. -
Unzip the folder to upload it in later steps.
Upload source code to Debugger
-
In the Debugger home page, select the
recommendationservice
in the Application dropdown. -
Under Alternative source code choose Select Source in the Local files section.
-
Select the folder you have downloaded and click Upload.
-
Confirm the upload.
You are now ready to debug your code!
Create a snapshot
Start by using the Snapshot functionality to understand the state of your variables.
-
In the Source capture tree, open the
recommendation_server.py
file under src > recommendationservice. -
Next, click on line number 63 and click Create Snapshot.
-
To intercept the newly created Snapshot in a request, navigate to Left Menu > GKE > Services & Ingress.
-
Click on the
frontend-external
IP address from the table of listed services. This will open the Hipster Shop application in your browser. -
Click on any of the products on the resulting homepage to view a product's details. This will surface recommended products at the bottom of the product details page and trigger the snapshot created.
-
In Cloud Debugger, view the snapshot variables captured at the snapshot point.
Create a logpoint
Switch to the Logpoint tab on the right side. To create the logpoint:
-
Again, click on line 63 of
recommendation_server.py
to position the logpoint. -
In the Message field, type
testing logpoint
to set the message that will be logged. -
Set the File and Line field to
recommendation_server.py:63
. -
Click the Add button.
-
To see all messages that are being generated in Cloud Logging from your logpoint, click the Logs tab in the middle of the UI. This brings up an embedded viewer for the logs.
View the application
-
To view the application, hover on Kubernetes Engine from the navigation panel on the Cloud console and click on Services & Ingress.
-
From the services find the frontend-external and click on the IP address under endpoints to connect to the Hipster shop application.
Congratulations!
In this lab, you understand the requirements for enabling Cloud Debugger in containerized applications, use Cloud Debugger to Debug running code with live request data, set a breakpoint using Cloud Debugger to examine what caused application issues which allows Site Reliability Engineers (SRE) to investigate and diagnose issues experienced with workloads deployed.
Finish your quest
This self-paced lab is part of the Google Cloud's Operations Suite on GKE, Cloud Architecture, and DevOps Essentials quests and the Measure Site Reliability using Cloud Operations Suite skill badge quest. A quest is a series of related labs that form a learning path. Completing a quest earns you a badge to recognize your achievement. You can make your badge or badges public and link to them in your online resume or social media account. Enroll in any quest that contains this lab and get immediate completion credit. Refer to the Google Cloud Skills Boost catalog for all available quests.
Take your next lab
Continue your quest with Cloud Logging on Kubernetes Engine, or check out these suggestions:
Next steps
- Learn more about the Google Cloud Operations Suite.
- Practice and learn Cloud Operations on Google Cloud with the Cloud Operations Sandbox.
Google Cloud training and certification
...helps you make the most of Google Cloud technologies. Our classes include technical skills and best practices to help you get up to speed quickly and continue your learning journey. We offer fundamental to advanced level training, with on-demand, live, and virtual options to suit your busy schedule. Certifications help you validate and prove your skill and expertise in Google Cloud technologies.
Manual Last Updated: September 21, 2022
Lab Last Tested: July 25, 2022
End your lab
When you have completed your lab, click End Lab. Your account and the resources you've used are removed from the lab platform.
You will be given an opportunity to rate the lab experience. Select the applicable number of stars, type a comment, and then click Submit.
The number of stars indicates the following:
- 1 star = Very dissatisfied
- 2 stars = Dissatisfied
- 3 stars = Neutral
- 4 stars = Satisfied
- 5 stars = Very satisfied
You can close the dialog box if you don't want to provide feedback.
For feedback, suggestions, or corrections, please use the Support tab.
Copyright 2023 Google LLC All rights reserved. Google and the Google logo are trademarks of Google LLC. All other company and product names may be trademarks of the respective companies with which they are associated.