arrow_back

Debugging Applications for Site Reliability Engineers

Join Sign in

Debugging Applications for Site Reliability Engineers

1 hour 30 minutes 1 Credit

GSP989

Google Cloud self-paced labs logo

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:

  1. Understand the requirements for enabling Cloud Debugger in containerized applications

  2. Use Cloud Debugger to Debug running code with live request data

  3. Set a breakpoint using Cloud Debugger to examine what caused application issues

  4. 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).
Note: Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.
  • Time to complete the lab---remember, once you start, you cannot pause a lab.
Note: If you already have your own personal Google Cloud account or project, do not use it for this lab to avoid extra charges to your account.

How to start your lab and sign in to the Google Cloud Console

  1. 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
  2. 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.
  3. If necessary, copy the Username from the Lab Details panel and paste it into the Sign in dialog. Click Next.

  4. 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.
  5. 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.

Note: You can view the menu with a list of Google Cloud Products and Services by clicking the Navigation menu at the top-left. Navigation menu icon

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.

  1. Click Activate Cloud Shell Activate Cloud Shell icon 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:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud is the command-line tool for Google Cloud. It comes pre-installed on Cloud Shell and supports tab-completion.

  1. (Optional) You can list the active account name with this command:

gcloud auth list
  1. Click Authorize.

  2. Your output should now look like this:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Optional) You can list the project ID with this command:

gcloud config list project

Output:

[core] project = <project_ID>

Example output:

[core] project = qwiklabs-gcp-44776a13dea667a6 Note: For full documentation of 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

  1. In Cloud Shell, issue these commands to download a release of the Sandbox source code and extract the archive:

cd ~ wget https://storage.googleapis.com/kochasoft/gsp989/cloud-ops-sandbox-next19.tar.gz tar -xvf cloud-ops-sandbox-next19.tar.gz cd cloud-ops-sandbox-next19
  1. To download the source code locally, click on More (three dots More icon) and select Download.

  2. In the Download file path, extend the path with the required cloud-ops-sandbox-next19 folder name and click Download.

  3. Unzip the folder to upload it in later steps.

Upload source code to Debugger

  1. In the Debugger home page, select the recommendationservice in the Application dropdown.

  2. Under Alternative source code choose Select Source in the Local files section.

  3. Select the folder you have downloaded and click Upload.

  4. 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.

  1. In the Source capture tree, open the recommendation_server.py file under src > recommendationservice.

  2. Next, click on line number 63 and click Create Snapshot.

  3. To intercept the newly created Snapshot in a request, navigate to Left Menu > GKE > Services & Ingress.

  4. Click on the frontend-external IP address from the table of listed services. This will open the Hipster Shop application in your browser.

  5. 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.

  6. In Cloud Debugger, view the snapshot variables captured at the snapshot point.

Snapshot

Check if snapshot has been created

Create a logpoint

Switch to the Logpoint tab on the right side. To create the logpoint:

  1. Again, click on line 63 of recommendation_server.py to position the logpoint.

  2. In the Message field, type testing logpoint to set the message that will be logged.

  3. Set the File and Line field to recommendation_server.py:63.

  4. Click the Add button.

  5. 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.

Check if logpoint has been created

View the application

  1. To view the application, hover on Kubernetes Engine from the navigation panel on the Cloud console and click on Services & Ingress.

  2. 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

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 2022 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.