Google Cloud拥有强大的跟踪工具,可用于分析请求和RPC的延迟。但它似乎只是选择一些它发现值得追踪的请求。有时这很好,你可以浏览现有的痕迹。但是,如果您正在进行性能增强,那么您现在需要对特定查询进行跟踪,您不希望等到它被认为有趣。
问题是
在决定跟踪哪些查询时会有哪些规则干预?
是否有办法要求为给定的URI捕获跟踪?
从开发人员控制台内部,还是从我们的应用程序中调用某些API?或者通过一些app.yaml配置?或者,我们是否必须等待,并祈求伟大的算法选择我们的请求?
答案 0 :(得分:3)
您可以通过正确设置云跟踪上下文标头来强制跟踪HTTP请求:
$ curl -H "X-Cloud-Trace-Context: 01234567890123456789012345678901;o=1" http://<your-app>.appspot.com/<path>
01234567890123456789012345678901
(32个十六进制字符)是跟踪ID。您希望每次使用不同的一个。
o=1
启用跟踪。
使用以下URL查看跟踪(最后一部分是跟踪ID): http://console.developer.google.com/traces/details/01234567890123456789012345678901
答案 1 :(得分:1)
由于您对特定请求感兴趣,为什么不使用appstats? https://cloud.google.com/appengine/docs/python/tools/appstats?hl=en你可以提高性能,打开appstats并将其部署到不同的版本,并从appengine_config.py获得一些控制权
我使用云跟踪来获取聚合分析,以便根据请求获得更多详细信息,我总是使用appstats,因为它包含更多信息。
答案 2 :(得分:1)
在决定跟踪哪些查询时有哪些规则干预?
目前有一个采样率可以指导跟踪哪个请求。每个实例每秒以少量请求对请求进行采样。
有没有办法要求为给定的URI捕获跟踪?
根据您的情况,以下内容可能会有所帮助。
您可以添加跟踪上下文以强制请求强制跟踪请求。跟踪上下文本质上是一个HTTP标头(X-Cloud-Trace-Context)
这是一个帮助注入跟踪上下文的指针:https://github.com/liqianluo/gcloud-trace-java/blob/master/cloud-trace-sdk-java-core/src/main/java/com/google/cloud/trace/sdk/TraceContext.java