QuestionQ154

Building and testing applications

You are monitoring a Go web application deployed in Google Kubernetes Engine. You observe increased CPU and memory utilization. You need to identify which source code consumes the most CPU and memory resources. What should you do?

  • A Download, install, and start the Snapshot Debugger agent in your VM. Take debug snapshots of the functions that take the longest time. Review the call stack frame, and identify the local variables at that level in the stack.
  • B Import the Cloud Profiler package into your application, and initialize the Profiler agent. Review the generated flame graph in the Google Cloud console to identify time-intensive functions.
  • C Import OpenTelemetry and Trace export packages into your application, and create the trace provider.Review the latency data for your application on the Trace overview page, and identify where bottlenecks are occurring.
  • D Create a Cloud Logging query that gathers the web application's logs. Write a Python script that calculates the difference between the timestamps from the beginning and the end of the application's longest functions to identity time-intensive functions.
Explanation

Cloud Profiler supports Go workloads running on Google Kubernetes Engine and collects CPU-time and heap/allocation profiles that are attributed to source-code functions. Its console flame graphs show each function’s relative resource consumption, allowing CPU-intensive and memory-consuming functions to be identified.

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!