

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

# 应用程序监控
<a name="observability-app-monitoring"></a>

应用程序监控提供服务性能的实时视图。它将存储的拓扑数据 OpenSearch 与来自 Amazon Prometheus 托管服务的时间序列 RED 指标（速率、错误、持续时间）相结合，以显示分布式系统中的运行状况、延迟、吞吐量和错误信息。

要访问应用程序监控，请在 OpenSearch 用户界面中导航到**可观察性** > **应用程序监控**。侧栏显示两个视图：
+ **应用程序地图**-服务依赖关系的交互式拓扑图
+ **服务**-所有仪器化服务的目录，包括筛选、详细信息视图和关联链接

## 先决条件
<a name="observability-app-monitoring-prereqs"></a>

必须先配置以下资源，然后才能使用应用程序监控。
+ [OTLP 跟踪从您的 OTel 收集器流向 OpenSearch 摄取的数据](observability-ingestion.md)（指标和日志是可选的）
+ [适用于 Prometheus 的亚马逊托管服务配置为接收来自 Ingestion 的远程写入 OpenSearch ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configure-client-prometheus.html)
+ 启用了可观测性的 OpenSearch 界面工作区

## 工作原理
<a name="observability-app-monitoring-how-it-works"></a>

下图显示了应用程序监控的 end-to-end架构。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/otel-sdk-service.png)


1. 您的应用程序和基础架构通过 OpenTelemetry SDKs、自动检测或 OTel API 向收集器发送遥测数据。 OTel

1.  OTel 收集器通过 OTLP 将跟踪数据转发给 OpenSearch Ingestion。

1.  OpenSearch 摄取`otel_apm_service_map`处理器提取 service-to-service关系并计算 RED 指标。

1. 拓扑和原始跟踪数据已编入索引。 OpenSearchRED 指标通过远程写入导出到适用于 Prometheus 的亚马逊托管服务。

1. OpenSearch 用户界面会查询两个商店以呈现应用程序地图、服务目录和服务详细信息视图。

## Services
<a name="observability-app-services"></a>

“服务” 视图提供了所有已检测服务的集中目录，显示红色指标（比率、错误、持续时间）一目了然。您可以使用此视图快速识别不健康的服务，并深入了解详细信息视图以进行更深入的分析。

**要访问服务视图，请在 OpenSearch 用户界面中导航到可观察性工作区，然后选择 **APM** > 服务。**

服务主页显示所有已检测服务的表格以及摘要面板。下图显示了服务主页。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/services-home.png)


下表描述了服务表中的各列。


| 列 | 说明 | 
| --- | --- | 
| 服务名称 | 仪器化服务的名称。 | 
| P99 延迟 | 服务的第 99 个百分位延迟。 | 
| P90 延迟 | 服务的第 90 个百分位延迟。 | 
| P50 延迟 | 服务的第 50 个百分位数（中位数）延迟。 | 
| 请求总数 | 在所选时间范围内处理的请求总数。 | 
| 失败率 | 失败的请求数与请求总数的比率。 | 
| 环境 | 服务的部署环境，例如production或staging。 | 

主页还包括以下摘要面板：
+ **按故障率排列的热门服务**-5xx 响应百分比最高的服务。
+ **按故障率排列的顶级 Service-to-service依赖**路径 — 故障率最高的依赖路径。

您可以使用以下过滤器筛选服务表：
+ **环境**-按部署环境筛选。
+ **延迟**-按延迟范围筛选。
+ **吞吐量**-按请求吞吐量范围筛选。
+ **故障率**-按故障率范围筛选。

### 服务概览
<a name="observability-app-services-overview"></a>

要打开服务详细信息视图，请在服务表中选择一个服务名称。概述选项卡显示所选服务的指标分块和时间序列图表。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/services-overview.png)


概述选项卡包括以下时间序列图表：
+ **按服务依赖关系划分的延迟** — 按下游依赖关系细分的 P50、P90 和 P99 延迟。
+ **按操作分列**的请求-服务每项操作的请求量。
+ **按操作划分的可用性**-每项操作成功响应的百分比。
+ **按操作划分的故障率和错误率-每项操作**的 5xx 和 4xx 响应百分比。

### 操作
<a name="observability-app-services-operations"></a>

“操作” 选项卡提供了所选服务的每个操作的细分。您可以按任意列对表进行排序，以识别有问题的操作。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/service-operations.png)


下表描述了操作表中的各列。


| 列 | 说明 | 
| --- | --- | 
| 操作名称 | 操作的名称。 | 
| P50/P90/P99 延迟 | 操作的第 50、90 和 99 个百分位延迟。 | 
| 请求总数 | 在所选时间范围内请求操作的总数。 | 
| 错误率 | 返回错误的请求的百分比。 | 
| 可用性 | 操作成功响应的百分比。 | 

### 依赖项
<a name="observability-app-services-dependencies"></a>

依赖关系选项卡显示所选服务调用的下游服务。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/service-dependencies.png)


下表描述了依赖关系表中的各列。


| 列 | 说明 | 
| --- | --- | 
| 依赖服务 | 下游服务的名称。 | 
| 远程操作 | 该操作在下游服务上调用。 | 
| 服务操作 | 当前服务上调用此依赖项的操作。 | 
| P99/P90/P50 延迟 | 依赖路径的第 99、90 和第 50 个百分位延迟。 | 
| 请求总数 | 在所选时间范围内向依赖项发出的请求总数。 | 
| 错误率 | 向依赖项发出的请求中返回错误的百分比。 | 
| 可用性 | 依赖项成功响应的百分比。 | 

### 关联
<a name="observability-app-services-correlations"></a>

服务详细信息视图提供上下文相关性，使您可以直接从服务指标导航到相关的跟踪和日志。您可以使用相关性来调查延迟峰值或错误率增加的根本原因。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/service-span-correlations.png)


以下关联选项可用：
+ **查看相关跟踪**-为所选服务或操作打开经过筛选的跟踪视图。
+ **查看相关日志**-打开所选服务或操作的筛选日志视图。
+ **按属性筛选**-按特定跨度属性缩小关联结果范围。

## 应用程序地图
<a name="observability-app-map"></a>

应用程序地图是一种交互式拓扑可视化， OpenSearch Ingestion 使用处理器根据您的跟踪数据自动生成该地图。`otel_apm_service_map`地图将服务显示为具有显示通信模式的方向边缘的节点，上面覆盖着红色指标（速率、错误、持续时间）。

要访问应用程序地图，请在 OpenSearch 用户界面中导航到可观察性工作区，然后选择 **APM** > **应用程序**地图。

下图显示了 “应用程序地图”。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/application-map.png)


该地图显示了每项服务的以下红色指标：
+ **速率**-服务每秒处理的请求数。
+ **错误**-4xx 和 5xx 响应的百分比。
+ **持续时间**-服务的 P50 和 P99 延迟。

`otel_apm_service_map`处理器生成这些指标，并通过远程写入将其存储在适用于 Prometheus 的亚马逊托管服务中。

拓扑可视化将服务表示为节点，将通信方向表示为边。颜色编码表示每项服务的运行状况。当 Ingesti OpenSearch on 摄取新的追踪数据时，地图会自动更新。

### 分组服务
<a name="observability-app-map-groupby"></a>

您可以按编程语言、团队或环境等属性对服务进行分组。选择分组依据属性时，地图会从拓扑图切换到卡片网格视图。每张卡片代表一组共享相同属性值的服务。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/groupby-attributes.png)


可用的分组依据属性由 Ingestion 中`otel_apm_service_map`处理器配置中的`group_by_attributes` OpenSearch 设置确定。

### 查看节点详情
<a name="observability-app-map-node-details"></a>

要查看服务的详细信息，请在地图上选择一个节点。将打开一个包含以下部分的详细信息面板。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/application-map-node-details.png)


“**Heal** th” 部分显示以下摘要指标：
+ 请求总数
+ 错误总数 4xx
+ 故障总数 5xx

**指标**部分显示以下时间序列图表：
+ 请求
+ 延迟 P50/P90/P99
+ 故障 5xx
+ 错误 4xx

选择**查看详细信息**以导航到所选服务的服务详细信息视图。

### 筛选地图
<a name="observability-app-map-filters"></a>

您可以使用以下过滤器来筛选 “应用程序地图”：
+ **故障率**-按服务器端故障率 (5xx) 筛选服务。
+ **错误率**-按客户端错误率 (4xx) 筛选服务。
+ **环境**-按部署环境筛选服务。

下图显示了按错误率筛选的地图。

![](http://docs.aws.amazon.com/zh_cn/opensearch-service/latest/developerguide/images/apm/filter-by-error-rate.png)


### 上下文中的相关性
<a name="observability-app-map-correlations"></a>

您可以直接从拓扑视图导航到相关的跟踪和日志。在任何服务节点上，都可以使用以下关联选项：
+ **查看相关跟踪**-为所选服务打开经过筛选的跟踪视图。
+ **查看相关日志**-打开所选服务的筛选日志视图。