Amazon X-Ray 故障排除 - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon X-Ray 故障排除

本主题列出了您在使用 X-Ray API、控制台或开发工具包时可能会遇到的常见错误和问题。如果您发现某个问题未在此处列出,可以使用此页上的 Feedback 按钮来报告。

Java X-Ray 软件开发工具包

Error: 线程 “Thread-1” 中发生异常 com.amazonaws.xray.SegmentNotFoundException:名为 “AmazonSNS” 的子分段开始失败:无法找到分段。

此错误指示 X-Ray 开发工具包尝试记录对Amazon,但找不到打开的段。这可在以下情况下发生:

  • 服务过滤器未配置— X-Ray 开发工具包会使用名为的筛选条件为传入请求创建分段。AWSXRayServletFilter配置 servlet 筛选条件来分析传入请求。

  • 您正在使用 servlet 代码之外的分析客户端— 如果您使用分析过的客户端来发出调用,并非运行用于响应传入请求的其他代码,则必须手动创建一个分段。有关示例,请参阅分析启动代码

  • 您正在工作线程中使用分析客户端— 当您创建新线程时,X-Ray 记录器会丢失对打开的分段的引用。您可以使用 getTraceEntitysetTraceEntity 方法来获取对当前分段或子分段的引用 (Entity),并将其传递回线程内部的记录器。有关示例,请参阅在工作线程中使用分析客户端

适用于 Node.js 的 X-Ray 开发工

问题: CLS 无法与 Sequelize 一起使用

传递适用于 Node.js 命名空间的 X-Ray 开发工具包以使用cls方法。

var AWSXRay = require('aws-xray-sdk'); const Sequelize = require('sequelize'); Sequelize.cls = AWSXRay.getNamespace(); const sequelize = new Sequelize('database', 'username', 'password');

问题: CLS 无法与 Bluebird 一起使用

使用 cls-bluebird 实现 Bluebird 与 CLS 配合工作。

var AWSXRay = require('aws-xray-sdk'); var Promise = require('bluebird'); var clsBluebird = require('cls-bluebird'); clsBluebird(AWSXRay.getNamespace());

X-Ray 守护程序

问题: 守护程序使用错误的凭证

守护程序使用Amazon开发工具包用于加载凭证。如果您使用多种方法提供凭证,将使用优先顺序最高的方法。参阅 运行守护程序 了解更多信息。