我正在构建一个部署在 Google App Engine 上的 Spring Boot 应用程序。为了找出一些奇怪的延迟问题的原因,我想我应该启用 Google Cloud Trace 来查看详细的延迟报告。
添加基本跟踪非常简单,因为 GAE 本身就支持这一点。但是,我很难为任何单独的跟踪添加细节。
例如; 以下代码:
public MediaContent getMediaContent(long contentId) {
Optional<MediaContent> found;
try (Scope ss = tracer.spanBuilder("databaseSubSpan").setSampler(Samplers.alwaysSample()).startScopedSpan()) {
tracer.getCurrentSpan().addAnnotation("Retrieving MediaContent " + contentId + " from repository");
found = mediaContentRepository.findById(contentId);
}
if (found.isEmpty()) {
tracer.getCurrentSpan().setStatus(Status.NOT_FOUND);
throw new NoSuchContentException(contentId);
}
return found.get();
}
我认为在 Cloud Trace UI 中,这将显示一条单独的小延迟线,以便我可以看到总请求时间的哪一部分用于数据库通信。但是,我看不到此类信息:
我已经确保通过在它周围添加一些日志条目来调用这个确切的方法。所有日志条目(甚至是try
块内的条目)都显示在我的日志中。
我通过将以下内容添加到我的中,将采样率设置为 100% application.yml
:spring.sleuth.sampler.probability: 1.0
基本上,我希望在 Cloud Trace UI 上看到的是主要请求下方的第二个栏。像这样:
这在 Cloud Trace 中是否可行?我希望它会是因为图表太高了,在我看来,它似乎有空间容纳额外的条形图。如果是,我做错了什么?
谢谢。