【问题标题】:How to calculate the average time taken by services from Kibana logs如何从 Kibana 日志中计算服务所花费的平均时间
【发布时间】:2020-08-13 23:04:51
【问题描述】:

我们有一些 Spring Boot 微服务,它们通过 AWS SQS 队列和 AWS SNS 主题进行交互。我们使用 Kibana 来满足我们的数据可视化需求。我想计算从服务 A --> 服务 B --> AWS SNS 主题 --> AWS SQS --> 服务 C 开始的请求所花费的时间。所有这些服务都在 EKS 集群上运行

如果我将每个请求的开始时间和结束时间分别放在服务 A 和服务 C 中,有没有办法可以在 kibana 中生成仪表板,显示端到端请求在一段的时间? Kibana 是否适合做这件事?

【问题讨论】:

  • 我认为您可以传入一个唯一的 ID,该 ID 将传递给每个层。记录每个服务/层的总时间。然后使用 kibana 的可视化选项卡根据唯一 ID 聚合结果。
  • @Smile 你的意思是像 mdc traceId 吗?
  • 是 MDC 跟踪 ID
  • @Smile :我确实尝试过 Kibana 中的“可视化”选项卡。对于其他一些要求(每天计数),我确实创建了“垂直条”可视化,其中 Y 轴为“计数”,X 轴为“@timestamp per day”。但是,当我尝试根据 traceId 分组获得请求所花费的总时间的可视化时,我对将什么作为 X 轴变量和 Y 轴变量感到困惑。 x 轴是否应该超过按跟踪 ID 分组的时间戳? y 轴是百分位数?
  • 您好,我也遇到了同样的问题,请问您是怎么​​解决的?

标签: spring-boot kibana


【解决方案1】:

我相信在 AWS 中有一个最合适的选项。

看看 AWS X-Ray,您为自己生成了一个唯一 ID https://aws.amazon.com/pt/xray/,您可以传递此 ID 来生成这样的网络图:

【讨论】:

  • 我看到的更像是一个聚合器。我不想一个一个地传递 id,但想检查给定时间范围内所有请求的平均时间
  • 您可以创建一个日志并将此日志放在 Elasticsearch 集群上。这样,您将拥有一个可以执行此操作的仪表板。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 2020-05-16
  • 2021-04-23
  • 2022-11-28
  • 1970-01-01
  • 2021-11-06
相关资源
最近更新 更多