如何在 GCP 上使用 StackDriver 来获取处理请求需要多长时间

How to use StackDriver on GCP to get how long does it take to process a request

我需要了解托管在 Google Kubernetes Engine 之上的 Python 应用程序处理给定请求需要多长时间。

如何获取和调试该值?我应该使用 StackDriver Profiler 还是配置 StackDriver Trace?我不清楚应该配置哪个工具才能以正确的方式从 StackDriver 获取此信息。

Cloud Trace 告诉您应用程序处理给定请求需要多长时间。 Cloud Trace 从 App Engine, HTTP(S) load balancers, and applications instrumented with the Cloud Trace API 收集延迟数据,它可以帮助您回答以下问题:

  • 我的应用程序处理给定请求需要多长时间?
  • 为什么我的应用程序需要这么长时间来处理一个请求?
  • 为什么我的某些请求比其他请求花费的时间更长?

Cloud Trace 是一个分布式跟踪系统,它从您的应用程序收集延迟数据并将其显示在 Google 云端控制台中。您可以跟踪请求如何在您的应用程序中传播并接收详细的近乎实时的性能洞察,您的应用程序处理来自用户或其他应用程序的传入请求需要多长时间,以及完成操作需要多长时间,例如在处理请求时执行的 RPC 调用要求。 Cloud Trace 会自动分析您应用程序的所有跟踪以生成深入的延迟报告以显示性能下降,并且可以从您的所有 VM、容器或 App Engine 项目捕获跟踪。确定哪些请求可能需要优化后,您可以使用 Cloud Profiler 查看这些请求的代码的哪些部分使用最多 CPU 和内存。

分析报告向您显示应用程序的 latency distribution 并尝试识别性能瓶颈,这是一个很棒的功能。不过,您必须至少有 100 条轨迹才能 运行 生成报告。

  • 要查看跟踪,请在 Google 云控制台 select 跟踪,然后是 select 跟踪列表。如果您是第一次使用 Trace,可能需要几分钟才能显示跟踪。
  • Trace列表页面默认显示前一小时的数据,您可以更改此间隔。标记为 Select a trace 的图表为您 selected 时间间隔内的每个请求显示一个点。请求的 (x,y) 坐标对应于请求的时间和延迟。
  • 您还可以使用过滤器来查找单独的痕迹。与过滤器不匹配的轨迹将从视图中隐藏。每个过滤器都由与值配对的预定义选项指定。一般语法是:[OPTION] : [VALUE].

参考Finding and viewing traces获取信息。