

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

# 跟踪
<a name="tracing"></a>

**重要**  
终止支持通知：2026 年 9 月 30 日， AWS 将停止对的支持。 AWS App Mesh 2026 年 9 月 30 日之后，您将无法再访问 AWS App Mesh 控制台或 AWS App Mesh 资源。有关更多信息，请访问此博客文章[从迁移 AWS App Mesh 到 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

**重要**  
要完全实现跟踪，你需要更新应用程序。  
要查看所选服务中的所有可用数据，您必须使用适用的库来检测您的应用程序。

## 使用 AWS X-Ray 监控 App Mesh
<a name="x-ray"></a>

**重要**  
终止支持通知：2026 年 9 月 30 日， AWS 将停止对的支持。 AWS App Mesh 2026 年 9 月 30 日之后，您将无法再访问 AWS App Mesh 控制台或 AWS App Mesh 资源。有关更多信息，请访问此博客文章[从迁移 AWS App Mesh 到 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

AWS X-Ray 是一项服务，它提供的工具可让您查看、筛选并深入了解从您的应用程序所服务的请求中收集的数据。这些见解可帮助您发现问题和机会，从而优化您的应用程序。您可以查看有关请求和响应的详细信息，以及您的应用程序对其他 AWS 服务的下游调用。

X-Ray 与 App Mesh 集成以管理您的 Envoy 微服务。来自 Envoy 的跟踪数据将发送到您的容器中运行的 X-Ray 进程守护程序。

使用具体适用于您的语言的 [SDK](https://docs.aws.amazon.com/xray/index.html) 指南，在您的应用程序代码中实现 X-Ray。

### 通过 App Mesh 启用 X 射线追踪
<a name="enable-x-ray"></a>
+ 

**视服务类型而定：**
  + **ECS —** 在 Envoy 代理容器定义中，将 `ENABLE_ENVOY_XRAY_TRACING` 环境变量设置为 `1`，将 `XRAY_DAEMON_PORT` 环境变量设置为 `2000`。
  + **EKS —** 在 App Mesh 控制器配置中，包括 `--set tracing.enabled=true` 和 `--set tracing.provider=x-ray`。
+ 在 X-Ray 容器中，公开端口 `2000` 并以用户身份运行 `1337`。

### X-Ray 示例
<a name="x-ray-examples"></a>

亚马逊 ECS 的 Envoy 容器定义

```
      {
        "name": "envoy",
        "image": "840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod",
        "essential": true,
        "environment": [
          {
            "name": "APPMESH_VIRTUAL_NODE_NAME",
            "value": "mesh/myMesh/virtualNode/myNode"
          },
          {
            "name": "ENABLE_ENVOY_XRAY_TRACING",
            "value": "1"
           }
        ],
        "healthCheck": {
          "command": [
            "CMD-SHELL",
            "curl -s http://localhost:9901/server_info | cut -d' ' -f3 | grep -q live"
            ],
           "startPeriod": 10,
           "interval": 5,
           "timeout": 2,
           "retries": 3
      }
```

更新亚马逊 EKS 的 App Mesh 控制器

```
helm upgrade -i appmesh-controller eks/appmesh-controller \
--namespace appmesh-system \
--set region=${AWS_REGION} \
--set serviceAccount.create=false \
--set serviceAccount.name=appmesh-controller \
--set tracing.enabled=true \
--set tracing.provider=x-ray
```

### 使用 X-Ray 的演练
<a name="x-ray-walkthrough"></a>
+ [使用 AWS X-Ray 进行监控](https://github.com/aws/aws-app-mesh-examples/tree/main/examples/apps/colorapp#monitor-with-aws-x-ray)
+ [带亚马逊 EKS 的 App Mesh — 可观测性：X-Ray](https://github.com/aws/aws-app-mesh-examples/blob/main/walkthroughs/eks/o11y-xray.md)
+ 在 AWS App Mesh [研讨会上](https://www.appmeshworkshop.com/introduction/)[使用 X-Ray 进行分布式追踪](https://www.appmeshworkshop.com/x-ray/)

### 要了解有关 AWS X-Ray 的更多信息
<a name="x-ray-learn-more"></a>
+ [AWS X-Ray 文档](https://docs.aws.amazon.com/xray/index.html)

### 使用 App Mesh AWS 对 X-Ray 进行故障排除
<a name="x-ray-troubleshooting"></a>
+ [无法看到我的应用程序的 AWS X-Ray 轨迹。](https://docs.aws.amazon.com/app-mesh/latest/userguide/troubleshoot-observability.html)

## 带 Amazon EKS 的 App Mesh 的 Jaeger 版
<a name="jaeger"></a>

Jaeger 是一个开源的、端到端的分布式跟踪系统。它可用于分析网络和进行监控。Jaeger 还可以帮助您对复杂的云原生应用程序进行故障排除。

[要在应用程序代码中实现 Jaeger，您可以在 Jaeger 文档跟踪库中找到具体适用于您的语言的指南。](https://www.jaegertracing.io/docs/1.21/client-libraries/)

### 使用 Helm 安装 Jaeger
<a name="installing-jaeger"></a>

1. 将 EKS 存储库添加到 Helm：

   ```
   helm repo add eks https://aws.github.io/eks-charts
   ```

1. 安装 App Mesh Jaeger

   ```
   helm upgrade -i appmesh-jaeger eks/appmesh-jaeger \
   --namespace appmesh-system
   ```

### Jaeger 示例
<a name="jaeger-sample"></a>

以下是为 Jaeger 创建永久存储 `PersistentVolumeClaim` 的示例。

```
helm upgrade -i appmesh-controller eks/appmesh-controller \
--namespace appmesh-system \
--set tracing.enabled=true \
--set tracing.provider=jaeger \
--set tracing.address=appmesh-jaeger.appmesh-system \
--set tracing.port=9411
```

### 使用 Jaeger 的演练
<a name="jaeger-walkthrough"></a>
+ [带有 EKS 的 App Mesh — 可观测性：Jaeger](https://github.com/aws/aws-app-mesh-examples/blob/main/walkthroughs/eks/o11y-jaeger.md)

### 要了解有关 Jaeger 的更多信息
<a name="jaeger-eks"></a>
+ [Jaeger 文档](https://www.jaegertracing.io/)

## 用于追踪的 Datadog
<a name="datadog-tracing"></a>

Datadog 既可以用于跟踪，也可以用于指标。有关更多信息和安装说明，请在 [Datadog](https://docs.datadoghq.com/tracing/setup_overview/) 文档中找到具体适用于您的应用程序语言的指南。