0

我正在构建一个部署在 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.ymlspring.sleuth.sampler.probability: 1.0

基本上,我希望在 Cloud Trace UI 上看到的是主要请求下方的第二个栏。像这样:

预期结果

这在 Cloud Trace 中是否可行?我希望它会是因为图表太高了,在我看来,它似乎有空间容纳额外的条形图。如果是,我做错了什么?

谢谢。

4

1 回答 1

0

需要谷歌产品团队进行调查。

然后我建议通过公共问题跟踪器转发它以获得进一步的支持。或者您可以通过 Google Cloud 支持(对于免费用户此链接)开票,以便我们进一步调查此问题。

于 2020-09-10T17:10:18.933 回答