【问题标题】:How to use StackDriver on GCP to get how long does it take to process a request如何在 GCP 上使用 StackDriver 来获取处理请求需要多长时间
【发布时间】:2021-11-24 19:17:29
【问题描述】:
我需要了解托管在 Google Kubernetes Engine 之上的 Python 应用程序处理给定请求需要多长时间。
如何获取和调试此值?我应该使用 StackDriver Profiler 还是配置 StackDriver Trace?我不清楚应该配置哪个工具才能以正确的方式从 StackDriver 获取此信息。
【问题讨论】:
标签:
google-cloud-platform
google-kubernetes-engine
stackdriver
google-cloud-stackdriver
【解决方案1】:
Cloud Trace 告诉您应用程序处理给定请求需要多长时间。 Cloud Trace 从App Engine、HTTP(S) load balancers 和使用Cloud Trace API 检测的应用程序收集延迟数据,它可以帮助您回答以下问题:
- 我的应用程序处理给定请求需要多长时间?
- 为什么我的应用程序需要这么长时间来处理请求?
- 为什么我的某些请求比其他请求花费的时间更长?
Cloud Trace 是一个分布式跟踪系统,它从您的应用程序中收集延迟数据并将其显示在 Google Cloud Console 中。您可以跟踪请求如何在您的应用程序中传播并接收详细的近乎实时的性能洞察,您的应用程序处理来自用户或其他应用程序的传入请求需要多长时间,以及在处理要求。 Cloud Trace 会自动分析您应用的所有跟踪,以生成深入的延迟报告以显示性能下降,并且可以从您的所有虚拟机、容器或 App Engine 项目中捕获跟踪。确定哪些请求可能需要优化后,您可以使用 Cloud Profiler 查看这些请求的哪些代码部分使用的 CPU 和内存最多。
分析报告向您显示应用程序的latency distribution,并尝试识别性能瓶颈,这是一个很棒的功能。不过,您必须至少有 100 条跟踪记录才能运行报告。
- 要查看跟踪,请在 Google Cloud Console 中选择跟踪,然后选择跟踪列表。如果您是第一次使用 Trace,则可能需要几分钟时间才会显示痕迹。
- Trace 列表页面默认显示前一小时的数据,您可以更改此间隔。标有 选择跟踪 的图表会为您选择的时间间隔内的每个请求显示一个点。请求的 (x,y) 坐标对应于请求的时间和延迟。
- 您还可以使用过滤器来查找单个跟踪。与过滤器不匹配的跟踪将从视图中隐藏。每个过滤器都由与 VALUE 配对的预定义 OPTION 指定。一般语法是:[OPTION] : [VALUE]。
有关信息,请参阅Finding and viewing traces。