OpenSearch查看Trace

本节我们将在OpenSearch中查看Trace。我们将通过trace来定位微服务中存在问题的模块

WEB页面的入口通过LoadBalancer类型的service来暴露:

 kubectl get svc -nclient-service | awk '{print $4}' | tail -n1

首先进入这个页面,点击添加商品到购物车,并完成Step1到Step4的购买过程。不断重复这四个过程,生成几条购买记录,其中的几条购物记录可以在中间取消订单:

image-20230826172948471

在OpenSearch控制台中,进入Observability页面:

![image-20230826173147416](/Users/kongpingfan/Library/Application Support/typora-user-images/image-20230826173147416.png)

点击Create application

image-20230826173257415

输入应用的名称及描述:

image-20230826173325028

展开Log source部分,在Base Query中输入source = sample_app_logs:

image-20230826173349088

Service & entities部分,选择所有的服务:

image-20230826173450483

其他保持默认,点击Create:

image-20230826173511248

创建完成后,自动进入test-app这个应用的Observability页面。在Overview部分,可以查看每个trace group的延迟情况、错误率:

image-20230826173929416

在Service部分,能看到每个服务的情况:

image-20230826174022069

Trace & Spans部分,点击某个trace id,能够查看具体的信息:

image-20230826174051058

这些信息包括Time spent by serviceSpans

image-20230826174121187

image-20230826174151364

定位应用问题

目前我们收到用户的反馈,整个购物的流程经常出现报错。现在我们将通过trace来定位具体是哪个模块出了问题

进入之前的Overview页面,查看Application Composition Map。在Error Rate我们看到是payment这个模块颜色最深,表示它的出错率最高,点击它:

image-20230826174240073

进入到Traces & Spans页面,里面展示了跟payment相关的所有trace:

image-20230826174418826