适用于 .NET 的Amazon X-Ray开发工具包 - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

适用于 .NET 的Amazon X-Ray开发工具包

适用于 .NET 的 X-Ray 开发工具包是用于在上检测 C# .NET Web 应用程序、.NET Core Web 应用程序和 .NET Core 函数的库。Amazon Lambda. 它提供用于生成跟踪数据并发送到X-Ray 守护. 这包括有关由应用程序提供服务的传入请求的相关信息以及应用程序对下游的调用。Amazon服务、HTTP Web API 和 SQL 数据库。

注意

SDK for .NET X-Ray 开发工具包是一个开源项目。您可以跟踪该项目并在 GitHub 上提交问题和提取请求:github.com/aws/aws-xray-sdk-dotnet

对于 Web 应用程序,首先向 Web 配置中添加消息处理程序跟踪传入请求。消息处理程序创建对于每个被跟踪的请求,并在发送响应时完成该分段。当分段打开时,您可以使用开发工具包客户端的方法将信息添加到分段,并创建子分段以跟踪下游调用。开发工具包还会自动记录在分段打开时应用程序引发的异常。

对于由分析应用程序或服务调用的 Lambda 函数,Lambda 会读取跟踪标头并自动跟踪采样的请求。对于其他功能,你可以配置 Lambda对传入请求进行采样和跟踪。无论哪种情况,Lambda 都会创建区段并将其提供给 X-Ray SDK。

注意

在 Lambda 上,X-Ray 开发工具包是可选的。如果您不在函数中使用它,则您的服务映射仍将包含 Lambda 服务的节点,每个 Lambda 函数都包含一个节点。通过添加开发工具包,您可以对函数代码进行调整,将子区段添加到 Lambda 记录的函数区段。参阅 Amazon Lambda 和 Amazon X-Ray 了解更多信息。

接下来,使用适用于 .NET 的 X-Ray 开发工您的分析Amazon SDK for .NET客户. 每当你打电话给下游Amazon具有分析的客户端的服务或资源时,开发工具包会在子分段中记录调用的相关信息。Amazon您访问的 服务及其资源将在服务地图中显示为下游节点,帮助您标识单个连接上的错误和限制问题。

适用于 .NET 的 X-Ray 开发工具包还为下游调用提供分析HTTP Web APISQL 数据库. 这些区域有:GetResponseTraced的扩展方法System.Net.HttpWebRequest跟踪传出 HTTP 调用。您可以使用适用于 .NET 的 X-Ray 开发工具包SqlCommand来测试 SQL 查询。

在您开始使用开发工具包后,通过以下方法自定义配置录制器和消息处理程序. 您可以添加插件来记录有关应用程序上运行的计算资源的数据,通过定义采样规则来自定义采样行为,设置日志级别以在应用程序日志中查看来自开发工具包的更多或更少的信息。

记录有关请求以及应用程序在注释和元数据中所做的工作的其他信息。注释是简单的键值对,已为这些键值对编制索引以用于筛选条件表达式,以便您能够搜索包含特定数据的跟踪。元数据条目的限制性较低,并且可以记录整个对象和数组 - 可序列化为 JSON 的任何项目。

注释和元数据

注释和元数据是您使用 X-Ray 开发工具包添加到分段的任意文本。系统会对注释编制索引,以便与筛选表达式一起使用。元数据未编制索引,但可以使用 X-Ray 控制台或 API 在原始区段中查看。任何你授予对 X-Ray 的读取权限的人都可以查看这些数据。

当代码中具有大量分析的客户端时,一个请求分段可包含大量子分段,分析的客户端发起的每个调用均对应一个子分段。您可以通过将客户端调用包含在自定义子分段中来整理子分段并为其分组。您可以为整个函数或任何代码部分创建自定义子分段,并记录子分段的元数据和注释,而不是编写父分段的所有内容。

有关开发工具包的类和方法的参考文档,请参阅以下内容:

同一个程序包同时支持 .NET 和 .NET Core,但使用的类不同。本章中的示例与 .NET API 参考相关,除非该类特定于 .NET Core。

要求

适用于 .NET 的 X-Ray 开发工具包 4.5 或更高版本以及Amazon SDK for .NET.

对于 .NET Core 应用程序和函数,开发工具包需要 .NET Core 2.0 或更高版本。

添加适用于 .NET 的 X-Ray 开发工具包

使用 NuGet 将适用于 .NET 的 X-Ray 开发工具包添加到应用程序。

在 Visual Studio 中使用 NuGet 包管理器安装适用于 .NET 的 X-Ray 开发工具包

  1. 选择工具NuGet 包管理器管理解决方案的 NuGet 包

  2. 搜索awsxRay 记录器.

  3. 依次选择此程序包和 Install

依赖项管理

适用于 .NET 的 X-Ray 开发工具包NuGet. 使用软件包管理器安装 SDK:

Install-Package AWSXRayRecorder -Version 2.10.1

这些区域有:AWSXRayRecorder v2.10.1nuget 包具有以下依赖关系:

NET Framework 4.5

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|      
|-- AWSXRayRecorder.Handlers.AspNet (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- EntityFramework (>= 6.2.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)      
      

NET Framework 2.0

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|   |-- Microsoft.AspNetCore.Http (>= 2.0.0)
|   |-- Microsoft.Extensions.Configuration (>= 2.0.0)
|   |-- System.Net.Http (>= 4.3.4)
|      
|-- AWSXRayRecorder.Handlers.AspNetCore (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.AspNetCore.Http.Extensions (>= 2.0.0)
|   |-- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.0.0)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.EntityFrameworkCore.Relational (>= 3.1.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- System.Data.SqlClient (>= 4.4.0)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)
      

有关依赖关系管理的更多详细信息,请参阅 Microsoft 的文档Nuet 依赖Nuet 依赖关系.