问题标签 [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 投票
1 回答
219 浏览

c# - 使用来自不同 C# 类库的 AWS X-Ray

我正在尝试将 AWS X-Ray 集成到我的一个应用程序中,但我感到很沮丧。我觉得亚马逊的文档在示例方面有点缺乏,但希望你们中的一些人能帮助我。

我的主要应用程序是一个用 C# 构建的 Web API 微服务。我有一个单独的客户端调用微服务,然后微服务与 1)第三方 API 和 2)一些 AWS 服务(如 DynamoDb 和 SNS)进行通信。此外,我围绕 AWS 服务构建了一个包装库,因此我没有直接调用 AWSDynamoDBClient,而是通过我的包装器调用它。

在 AWS X-Ray 控制台上,我可以查看到/来自我的微服务的所有传入和传出调用。但是我没有看到 DynamoDb 的任何内容。如果我直接在我的微服务中创建 AWSDynamoDBClient(绕过包装器),那么我会按预期看到所有流量。但是一旦我通过包装器调用它,就什么也没有发生。

我什至尝试将AWSXRayRecorder.Instance我的微服务注入到我的包装器中,但仍然没有。我不确定我做错了什么,在这一点上我有点不知所措。

有什么建议么?

编辑: 在我的 AWS 包装库中,我正在执行以下操作:

client = new AmazonDynamoDBClient(); new AWSSdkTracingHandler(recorder).AddEventHandler(client);

recorder正在AWSXRayRecorder.Instance从调用微服务注入(我不确定是否有必要像这样传递它,或者我是否可以AWSXRayRecorder.Instance直接从库中调用)。

这行不通。如果我在微服务中编写相同的代码,那么它可以工作,并且我可以在 AWS 控制台的 X-Ray 图中看到 DynamoDb 节点

0 投票
1 回答
121 浏览

.net-core - AWSRequestInfo.json 应该是什么样子?

这个文件在互联网上只提到过一次。但是,我需要它

X 射线监控库从我的 appsettings 文件中引用它。它应该是什么样子?

0 投票
1 回答
592 浏览

mysql - 使用 AWS X-Ray 在 Spring 中检测 Mysql Jpa 存储库不起作用

我正在尝试在我的 spring 应用程序中使用 AWS X-Ray 来检测 Mysql 调用。http 和 s3 检测工作正常。

我已经设置了属性:spring.datasource.jdbc-interceptors=com.amazonaws.xray.sql.mysql.TracingInterceptor

我在 build.gradle 中包含了以下依赖项

我正在使用 JpaRepositories。我希望在完成上述设置后自动检测我的所有 sql 查询。我在这个位置关注亚马逊文档: https ://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-java-sqlclients.html

我错过了什么?

更新:我可以看到 spring 的健康端点的 mysql 跟踪。但是 jpa 调用仍然看不见。

0 投票
1 回答
1334 浏览

amazon-web-services - 使用 AWS X-Ray 自动检测 Java 应用程序

我正在尝试自动检测 AWS SDKs for Java 使用 X-Ray 进行的所有调用。

当您在构建依赖项中包含 AWS SDK Instrumentor 子模块时,适用于 Java 的 X-Ray 开发工具包会自动检测所有 AWS 开发工具包客户端。(来自文档

我已将这些添加到我的 POM
aws-xray-recorder-sdk-core
aws-xray-recorder-sdk-aws-sdk
aws-xray-recorder-sdk-spring
aws-xray-recorder-sdk-aws-sdk-instrumentor

并且正在使用例如aws-java-sdk-ssmaws-java-sdk-sqs

我希望只需将 X-Ray 包添加到我的 POM 并提供足够的 IAM 策略。
但是,当我启动我的应用程序时,会出现以下异常:

com.amazonaws.xray.exceptions.SegmentNotFoundException: Failed to begin subsegment named 'AWSSimpleSystemsManagement': segment cannot be found.

我尝试将 SSM 调用包装在手动段中,这样就可以了,但随后来自另一个 AWS 开发工具包的下一个调用立即引发了类似的异常。

如何实现文档中提到的自动检测?我是不是误会了什么?

0 投票
1 回答
844 浏览

amazon-kinesis - 如何将 Java Kinesis 客户端库与 X-Ray 一起使用?

添加aws-xray-recorder-sdk-aws-sdk-instrumentorKCL 时会引发SegmentNotFoundException.

据我了解,这是因为 KCL 正在启动自己的线程,因此我的调用AWSXRay.beginSegment()不适用于在这些线程上运行的检测请求,但我无法直接控制这些线程,因此我无法设置上下文/段。

有什么解决方法吗?

0 投票
1 回答
522 浏览

python - AWS X-Ray 在服务地图中显示重复节点

我刚刚开始使用 AWS Xray,并且正在将它与 AWS Lambda 一起使用。问题是我注意到服务地图上 AWS Xray 节点的重复。例如,SNS 被归类为AWS::SNSRemote call。因为它们都是相同的东西,所以具有完全相同的跟踪和平均响应时间。只是显示为两个不同的节点。有谁知道如何减少这种噪音?

我正在使用 patch_all() 函数来修补所有服务。以下是图片:图片 1 图片 2

这是痕迹的图像和要点。 Image SNS , Image Remote , Image Remote (details) , Image SNS(Details) , Gist

更新

  • 我已按照@Rohit 的要求添加了图片
  • 问题已解决

使用以下替换

0 投票
2 回答
1836 浏览

amazon-web-services - AWS X-Ray GoLang Lambda 到 lambda 跟踪并显示在服务地图中

我有调用 Lamdba 函数 1 并在 Go 中调用 lambda 函数 2 的 API 网关。我想在服务地图中看到这两个功能。

到目前为止,我能够做到这一点的唯一方法是创建一个自定义段,例如称为“父”,并从该上下文创建一个子段,例如称为“子”。然后使用 client.InvokeWithContext 调用传递“子”段上下文的函数 2。

问题是这会在服务映射中创建跟踪父级 -> 子级,但也具有功能 1。

请问在服务地图上加入这两个功能的最佳方式是什么?笔记。我有超过 2 个我想在服务地图上看到链接,以向我展示我通过 lambdas 的整个流程。

请帮忙。

谢谢瑞克

0 投票
1 回答
802 浏览

java - 我可以在没有 Tomcat 或 Spring 的情况下使用 AWS-XRay 来跟踪 MySQL 查询吗?

我正在 AWS Lambda 中运行一些 SQL 查询,并希望利用 AWS-XRay 的跟踪功能来获取有关这些调用的更多详细信息。

该文档显示了使用 Spring 和 Tomcat 进行配置的示例,但在我明显的无服务器且应该是轻量级的 Lambda 中使用这两种方法都没有意义。以下是我目前建立连接的方式:

有什么方法可以在我的用例中使用 AWS-XRay SQL 跟踪?

0 投票
0 回答
202 浏览

node.js - 返回具有 X-Ray 依赖性的对象时出现内部服务器错误

我正在尝试将我当前的功能从节点 6.10 更新到节点 8.10。在这次迁移中,我想返回对象而不是调用 lambda 回调。例如,下面的代码可以正常工作。

添加 AWS X Ray 依赖项时会出现此问题。例如,下面的代码失败并出现 502“内部服务器错误”。

以前有人遇到过这个问题吗?

0 投票
1 回答
320 浏览

java - 如何在 Java 中将属性传递给 MySQL StatementInterceptor?

我正在制作一个自定义 MySQL StatementInterceptorV2,并希望将一些自定义属性传递给它(例如一些任意String的 s)。考虑到语句拦截器是这样创建的(根据https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html):

我如何将值传递给它?我显然没有调用构造函数或任何东西,这将是做这样的事情的正常方式。这是我的语句拦截器,如果它有帮助的话。

通过Properties对象传递自定义属性是唯一的方法吗?