Dependent Applications and Performance Issues on Google Kubernetes Engine (GKE)

Identifying Performance Issues with Dependent Applications on GKE

Question

You support a Node.js application running on Google Kubernetes Engine (GKE) in production.

The application makes several HTTP requests to dependent applications.

You want to anticipate which dependent applications might cause performance issues.

What should you do?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

B.

In order to anticipate which dependent applications might cause performance issues in a Node.js application running on Google Kubernetes Engine (GKE) in production, there are a few options to consider. Let's examine each answer choice in detail:

A. Instrument all applications with Stackdriver Profiler. Stackdriver Profiler is a tool that helps identify performance bottlenecks in production applications. It does this by collecting CPU and memory usage data, as well as detailed function-level profiling information. Instrumenting all applications with Stackdriver Profiler can help identify which parts of the application are causing performance issues. However, this answer choice does not specifically address identifying which dependent applications might be causing performance issues.

B. Instrument all applications with Stackdriver Trace and review inter-service HTTP requests. Stackdriver Trace is a tool that helps diagnose latency issues in production applications. It does this by tracing requests as they propagate through a distributed system, including inter-service HTTP requests. Instrumenting all applications with Stackdriver Trace can help identify which dependent applications are causing latency issues in the system. Therefore, this answer choice is a good option for anticipating which dependent applications might cause performance issues.

C. Use Stackdriver Debugger to review the execution of logic within each application to instrument all applications. Stackdriver Debugger is a tool that allows you to debug production applications in real-time without disrupting user traffic. It does this by capturing snapshots of application state and allowing you to inspect and modify the state. While this tool can help identify issues within each application, it does not specifically address identifying which dependent applications might be causing performance issues.

D. Modify the Node.js application to log HTTP request and response times to dependent applications. Use Stackdriver Logging to find dependent applications that are performing poorly. Modifying the Node.js application to log HTTP request and response times to dependent applications can help identify which dependent applications are performing poorly. By using Stackdriver Logging, you can search for logs related to these requests and identify which dependent applications are causing performance issues. Therefore, this answer choice is a good option for anticipating which dependent applications might cause performance issues.

In summary, the two best options for anticipating which dependent applications might cause performance issues are to either instrument all applications with Stackdriver Trace and review inter-service HTTP requests (answer choice B), or to modify the Node.js application to log HTTP request and response times to dependent applications and use Stackdriver Logging to find dependent applications that are performing poorly (answer choice D).