问题标签 [aws-xray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
797 浏览

node.js - 如何在 AWS X-Ray 管理控制台中打印自定义子分段?

我为我的 REST API 添加了一个主要的路由段,它是用 Node.js 编写并在 Lambda 函数上运行的。我还为 X-Ray 启用了 API 网关跟踪。我想将 sql 查询时间视为 X-Ray 控制台的子段,因此我使用了 AWSXRay.captureAsyncFunc 函数并将其添加到所有 sql 查询中,并且我能够打印跟踪日志。以下屏幕截图显示了 GET 请求的分段和子分段。

记录 X 射线分段和子分段

我想在 AWS X-Ray 管理控制台中查看子分段。在 X-Ray 的跟踪部分,我只能看到 API Gateway 和 Lambda 计时。

AWS X-Ray 控制台中的 API Gateway 和 Lambda 段

有谁知道如何在 X 射线时间轴中打印自定义子段?

当我从 X-Ray 控制台点击原始数据时,我看到的就是这个。我希望能够看到我的自定义细分。原始数据选项卡仅显示 API Gateway 和 Lambda 的片段。

原始数据选项卡

0 投票
1 回答
519 浏览

aws-lambda - 在不同的 Lambda 函数中显式设置 requestId

我正在尝试使用 AWS APIGateway/Lambda 函数集成构建无服务器应用程序。

我有以下设置:

现在,根据设置 serviceA 可以调用 ServiceB。我想跟踪一个从 serviceA 到 serviceB 的请求。我想这样做的一种方法是通过 requestIds。我试图查看在 serviceA 调用 serviceB 时是否有某种特定的方式来持久/明确提供 requestIds?我查阅了 AWS 文档,但找不到任何具体的机制。

我的另一个选择是将我的 Lambda 函数与 Xray 集成,然后可能在 Xray 上下文映射/跟踪中传递 requestId。我怀疑我是第一个尝试跨多个 Lambda 函数跟踪请求的人,并认为已经有一种机制可以做到这一点。任何帮助将不胜感激!

0 投票
1 回答
466 浏览

node.js - AWS X Ray 节点 js 轨迹未显示

我正在使用 Lambda(节点 8.10)并使用 AWS X Ray。我正在使用 Promise 调用外部 IP 地址。当我打电话时,会显示其他痕迹但无法获取自定义段。我没有使用任何框架,只是一个纯节点 js。

}

0 投票
2 回答
1321 浏览

python-3.x - lambda 函数上的 aws-xray-sdk

我看到我可以通过选中一个复选框(或设置跟踪:如果使用 SAM,则设置为活动)在我的 lambda 函数上启用 X 射线跟踪。这增加了高级日志记录。

如果我想要更详细的日志记录,我的理解是我需要添加:

但是,xry sdk 不是 lambda 的一部分。显然,其中一种解决方案是安装它,pip install aws-xray-sdk -t .但这会给函数的代码增加 42Mb。

有替代解决方案吗?谢谢

0 投票
1 回答
240 浏览

node.js - AWS X 射线未生成

我正在尝试使用 aws x-ray 生成 x 射线,但它没有生成。目前我正在为 node.js 中的 lambda 函数生成它

我试过下面的例子,但它仍然没有生成

在 serverless.yml

有什么我想念的吗

0 投票
1 回答
1092 浏览

python - AWS xray + lambda 异常处理,我如何返回错误消息并将我的 xray 跟踪标记为失败

我有一个使用最新稳定的 aws_xray_sdk 用 Python 3.6 编写的 AWS Lambda,并部署为 lambda 函数,而不是 API 网关端点。

一切都按预期运行,但是,我为我的 lambda 创建了一个自定义异常处理程序,因此如果发生异常,则会记录错误并将错误响应发送给调用者,而不仅仅是return false.

有没有办法将我当前的 aws xray 子段标记为错误?我发现该subsegment对象有一个apply_status_code方法,但是,这似乎也没有达到我所希望的效果。

编辑 1: 我已经能够使用以下代码在 x 射线跟踪中获得至少我自己的 400 和错误状态的子段报告。

aws 控制台 x 射线跟踪

但是,这不是用于生成 X 射线服务地图的内容。 aws 控制台 xray 服务地图

我开始认为我应该让我的 lambdas 休息 API,因为至少那些会返回我可以跟踪的 HTTP 状态代码。

0 投票
2 回答
807 浏览

python - 如何使用 AWS Xray 跨多个 lambda 和 SQS 连接跟踪

我们正在尝试使用 AWS Xray 通过多个服务跟踪事件。我们通过复选框在 lambda 中启用了 Xray,并添加了 python (v2) SDK。这为我们提供了每个 lambda 的良好信息,但它们没有连接。这是我们的模型:

  1. 事件点击 SNS
  2. 触发 Lambda 以预处理对 SQS 的写入
  3. SQS 中的事件
  4. 另一个 Lambda 获取事件和进程,写入另一个 SNS

我们可以通过patch_all().

我希望看到端到端的连接,但我不知道如何关联这些组件。现在,我们将 Lambda 视为独立的部分,而 SQS 则没有。

0 投票
1 回答
1040 浏览

java - X 射线跟踪未从 ec2 出现,出现异常

我正在编写一个将在 ec2 中运行并为我的帐户列出 s3 中的存储桶的代码。代码运行良好。但是,当我尝试将 X 射线检测到其中时,X 射线痕迹不会出现。我在 pom.xml 中包含了 X 射线依赖项

我尝试了许多方法,例如引入 Config,但没有奏效。

有示例代码的人会有所帮助,因为关于它的资源并不多,AWS 官方示例项目也不是很清楚。

得到以下异常

2019-04-27 10:46:28.706 错误 3865 --- [pool-1-thread-1] caxssampling.pollers.RulePoller:遇到错误轮询 GetSamplingRules:

com.amazonaws.SdkClientException:无法执行 HTTP 请求:连接到 127.0.0.1:2000 [/127.0.0.1] 失败:com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:第1163章~[aws-java-sdk-core-1.11.430.jar!

0 投票
1 回答
747 浏览

python - 如何在 Python Lambda 中设置分段(顶级)级 AWS Xray 注释

我在 Python v2 Lambda 中成功使用了 AWS Xray。patch_all()为 Xray 自动修补我的部分库(即 boto3)效果很好 。

我无法设置在较低级别子段中持续存在的高级注释。lambda中的注释可以这样设置吗?如果不是,它们应该如何设置?我试过获取最新的subsegmentsegment.

0 投票
1 回答
770 浏览

node.js - aws-xray 捕获AWS 注释

我已经开始使用 AWSXRay 来更深入地了解为什么我的 lambda 函数的性能并不理想。这个 lambda 函数运行一个 gql 服务,这意味着它对其他 lambda 函数以及用于缓存的 dynamodb 有大量出站请求。

通过在我的处理程序中使用以下内容,我已将跟踪添加到所有 aws-sdk 客户端调用。它会改变导入的 AWS 模块,以便成功使用 AWS 客户端的所有后续使用都包括 aws-xray 跟踪,而不管导入的是哪个模块。惊人的!

下面是输出示例: 在此处输入图像描述

问题

问题是没有一个“跟踪”有关于请求参数的任何注释。每个跟踪的注释和元数据都是空的: 在此处输入图像描述

希望

希望有一种方法可以配置 AWSXRay CaptureAWS 修改,以便它们在注释或元数据中包含每个 aws-client 请求的参数。

问题

是否可以请求AWSXRay.captureAWS(AWS);在其生成的跟踪的注释或元数据中包含传递给 aws sdk 客户端调用的参数?