服务网格 ASM 集成了阿里云链路追踪服务 Tracing Analysis,为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等能力,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提升开发诊断效率。本文介绍如何在 ASM 中使用链路追踪服务。
背景信息
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
部署示例
在按照部署应用到 ASM 实例进行应用部署之后,查看示例中以 Python 语言实现的 productpage 服务,则会发现该应用程序使用了 OpenTracing 库从 HTTP 请求中提取了所需的标头。
def getForwardHeaders(request):
headers = {}
# x-b3-*** headers can be populated using the opentracing span
span = get_current_span()
carrier = {}
tracer.inject(
span_context=span.context,
format=Format.HTTP_HEADERS,
carrier=carrier)
headers.update(carrier)
# ...
incoming_headers = ['x-request-id']
# ...
for ihdr in incoming_headers:
val = request.headers.get(ihdr)
if val is not None:
headers[ihdr] = val
return headers
查看以 Java 语言实现的 reviews 服务是也可以看到相应的 HTTP 标头。
@GET
@Path("/reviews/{productId}")
public Response bookReviewsById(@PathParam("productId") int productId,
@HeaderParam("end-user") String user,
@HeaderParam("x-request-id") String xreq,
@HeaderParam("x-b3-traceid") String xtraceid,
@HeaderParam("x-b3-spanid") String xspanid,
@HeaderParam("x-b3-parentspanid") String xparentspanid,
@HeaderParam("x-b3-sampled") String xsampled,
@HeaderParam("x-b3-flags") String xflags,
@HeaderParam("x-ot-span-context") String xotspan) {
if (ratings_enabled) {
JsonObject ratingsResponse = getRatings(Integer.toString(productId), user, xreq, xtraceid, xspanid, xparentspanid, xsampled, xflags, xotspan);
访问示例
在浏览器地址栏输入 http://{入口网关服务的IP地址}/productpage,可以看到 Bookinfo 应用的页面。
查看应用列表
应用列表页面展示了所有被监控应用的健康度得分、本日请求数、本日错误数等关键指标。您还可以为应用设置自定义标签,从而通过标签进行筛选。
- 登录链路追踪 Tracing Analysis 控制台
- 在左侧导航栏中选择应用列表,并在应用列表页面顶部选择目标地域。
查看应用详情
应用详情页面可展示应用在所部属的每一台机器上的关键性能指标、调用拓扑图和调用链路。
查看调用链瀑布图
调用链路的瀑布图展示了调用链路的日志产生时间、状态、IP 地址/机器名称、服务名、时间轴等信息。
在文档使用中是否遇到以下问题
更多建议
匿名提交