OpenSearch Dashboards 的追踪分析插件
Trace Analytics 插件基于 OpenTelemetry (OTel) 协议数据,提供应用程序性能的即时可见性。OpenTelemetry 协议数据标准化了从云原生软件收集遥测数据的仪器。
安装插件
有关如何安装 Trace Analytics 插件的说明,请参阅独立 OpenSearch Dashboards 插件安装。
设置 OpenTelemetry 演示
带有 OpenSearch 的 OpenTelemetry 演示 模拟了一个生成实时遥测数据的分布式应用程序,为您提供了一个实用环境,让您可以在实际部署 Trace Analytics 插件之前探索其可用功能。
步骤 1:设置 OpenTelemetry 演示
- 克隆 带有 OpenSearch 的 OpenTelemetry 演示 仓库:
git clone https://github.com/opensearch-project/opentelemetry-demo
。 - 按照入门说明,使用 Docker 部署演示应用程序,Docker 会运行多个生成遥测数据的微服务。
步骤 2:摄入遥测数据
- 使用现有设置,配置 OTel 收集器将遥测数据(跟踪、指标、日志)发送到您的 OpenSearch 集群。
- 确认 Data Prepper 已设置为处理传入数据,处理跟踪分析和服务映射管道,将数据提交到所需索引,并执行预聚合计算。
步骤 3:在 OpenSearch Dashboards 中探索跟踪分析
跟踪分析应用程序包含两个选项:服务和跟踪
- 服务列出应用程序中的所有服务,并提供一个交互式地图,显示各种服务如何相互连接。与仪表板(通过操作帮助识别问题)不同,服务地图帮助您根据错误率和延迟按服务识别问题。要访问此选项,请转到 Trace Analytics > 服务。
- 跟踪按 HTTP 方法和路径将跟踪分组在一起,以便您可以看到与特定操作相关的平均延迟、错误率和趋势。为了获得更集中的视图,请尝试按跟踪组名称进行筛选。要访问此选项,请转到 Trace Analytics > 跟踪。在跟踪组面板中,您可以查看跟踪组中的跟踪。在跟踪面板中,您可以分析单个跟踪以获取详细摘要。
步骤 4:执行关联分析
选择服务关联以显示遥测信号之间的关系。此功能可帮助您从逻辑服务级别导航到特定服务的相关指标和日志。
Trace Analytics 插件支持将 Span、跟踪和服务与其相应的日志关联起来。这使您可以在 Trace Analytics 界面中直接从跟踪或 Span 跳转到相关的日志条目,或从服务跳转到其关联的日志。关联通过提供遥测数据的统一视图来简化故障排除,从而更容易识别根本原因并理解应用程序上下文。
使用以下选项执行关联
- 跟踪到日志关联:在跟踪详细信息页面上,选择查看相关日志。
- Span 到日志关联:在 Span 详细信息弹出窗口(通过在甘特图或 Span 表中选择 Span ID 打开)中,选择查看相关日志。
- 服务到日志关联:在服务页面上,选择所需服务旁边的发现图标。
- 服务到服务关联:在服务页面上,使用服务地图中的聚焦选项查看服务及其依赖项。
架构依赖和假设
该插件要求您使用 Data Prepper 来处理和可视化 OTel 数据,并依赖以下 Data Prepper 管道进行 OTel 关联和服务映射计算
标准化遥测数据
该插件要求遥测数据遵循 OTel 架构约定,包括 OTel 规定的 Span、跟踪和指标的结构和命名,并使用 可观测性简单架构 实现。
服务名称和依赖图
为了准确的服务映射和关联分析,请遵循以下准则
- 服务名称必须是唯一的,并在应用程序组件中保持一致使用。
serviceName
字段必须使用 Data Prepper 管道填充。- 服务必须通过预定义的上游和下游依赖项进行摄入,以构建准确的服务地图并理解服务关系。
跟踪和 Span ID
跟踪和 Span 必须在分布式系统中一致地生成和维护唯一标识符,以实现端到端跟踪和准确的性能洞察。
RED 指标遵循
该插件期望指标数据包含每个服务的速率、错误和持续时间 (RED) 指标,这些指标可以通过 Data Prepper 管道预聚合或根据 Span 动态计算。这使您能够有效地计算和显示关键绩效指标。
关联字段
某些字段,例如 serviceName
,必须存在才能执行关联分析。这些字段使插件能够链接相关的遥测数据,并提供服务交互和依赖项的整体视图。
关联索引
从服务对话框导航到其相应的跟踪或日志需要存在关联字段,并且目标索引(例如,日志)遵循 可观测性简单架构 中所述的命名约定。
使用 OTel 协议分析的跟踪分析
2.15 版引入
使用 OTel 协议分析的跟踪分析提供对分布式系统的全面洞察。您可以可视化和分析以下资产
- 服务:分布式应用程序的组件。这些组件是用于衡量和监控应用程序构建块以验证系统健康状况的重要逻辑术语。
- 跟踪:请求跨服务路径的可视化表示,深入了解跨服务的请求旅程,提供对延迟和性能问题的洞察。
- RED 指标:衡量服务健康和性能的指标,以每秒请求数(速率)、失败请求数(错误)和请求处理时间(持续时间)进行衡量。
跟踪分析可视化
服务可视化(例如表格或地图)可帮助您逻辑分析服务行为和准确性。以下可视化可帮助您识别异常和错误
-
服务表
- 每个表列中都显示了 RED 指标,以及连接的上游和下游服务及其他操作。下图显示了一个示例服务表。
- 通用过滤器选择用于字段或过滤器组合。下图显示了此过滤器。
- 服务吞吐量工具提示提供服务过去 24 小时传入请求趋势的即时概览。下图显示了一个示例工具提示。
- 服务关联对话窗口提供服务详细信息的即时概览,包括其 24 小时吞吐量趋势。您可以使用这些详细信息通过基于
serviceName
字段进行筛选来分析相关日志或跟踪。下图显示了此窗口。
- 服务 RED 指标对话窗口提供服务 RED 指标的即时概览,包括 24 小时错误、持续时间和吞吐率。下图显示了此窗口。
- Span 详细信息对话窗口提供跟踪的详细信息。您可以使用此信息进一步分析跟踪的元素,例如属性和关联日志。下图显示了此窗口。
-
服务地图
- 服务地图显示节点,每个节点代表一个服务。节点颜色表示该服务及其依赖项的 RED 指标严重程度。下图显示了一个地图。
-
您可以选择一个节点以打开其关联服务的详细对话窗口。此交互式地图可视化了服务之间的互连,有助于按服务识别问题,这与通过操作识别问题的仪表板不同。您可以按错误率或延迟进行排序,以精确定位潜在问题区域。
-
在服务地图对话窗口中,节点表示依赖于所选服务的下游连接服务。节点颜色表示该服务及其下游依赖项的 RED 指标严重性。下图显示了此对话窗口。
-
追踪组
- 追踪按其 HTTP API 名称分组,可以根据其业务功能单元进行聚类。追踪按 HTTP 方法和路径分组,显示与特定操作相关的平均延迟、错误率和趋势。您可以按追踪组名称进行筛选。下图显示了追踪组窗口。
- 在追踪组窗口中,您可以按组名称和其他条件进行筛选。您还可以分析相关追踪。要深入查看构成组的追踪,请选择右侧列中的追踪数量,然后选择单个追踪以查看详细摘要。
- 追踪详情窗口显示了单个追踪的详细分解,包括其对应的跨度、相关服务名称以及跨度时间与持续时间交互的瀑布图。下图显示了此视图。
支持自定义索引名称和跨集群索引
于 3.1 版本引入
OpenSearch 3.1 中的追踪分析包括对自定义索引名称和跨集群索引的扩展支持,为分布式环境提供了更大的灵活性和可伸缩性。以下增强功能现已可用:
-
您可以为可观测性跨度、服务和日志索引配置自定义索引名称。这使您能够使索引命名与您组织的约定保持一致,并更有效地管理跨多个环境的数据。您还可以配置关联的日志索引并映射其对应的字段,例如
timestamp
、serviceName
、spanId
和traceId
。如果您的日志不遵循 OpenTelemetry (OTel) 格式并需要自定义字段映射,此功能特别有用。自定义跨度索引必须遵循 Data Prepper 跨度索引映射。下图显示了可观测性设置面板中的自定义索引名称配置界面。
-
追踪详情页面现在包含一个相关日志面板,可帮助您分析与特定追踪关联的日志,从而改进故障排除和根本原因分析。下图显示了日志面板。
-
新的下拉菜单允许您查看所有跨度、根跨度、服务入口跨度或追踪。自定义数据网格提供高级排序和显示选项,包括全屏模式,以便更轻松地探索数据,如下图所示。
-
服务地图现在显示在追踪分析页面上的追踪表下方,在您分析追踪数据时,为服务关系和依赖项提供了即时的视觉上下文。
-
追踪详情页面新增了一个树状视图,显示跨度的分层分解。布局已更新,将饼图置于概览面板旁边,以更直观地总结追踪指标,如下图所示。
-
甘特图现在上方包含一个可选择的迷你地图,让您可以快速导航并聚焦于追踪时间轴的特定部分,如下图所示。
-
服务地图已经过重新设计,以更好地支持大型节点组,从而更容易可视化复杂的服务拓扑。您现在可以专注于特定服务以查看其依赖项,并根据需要重置地图,如下图所示。
-
服务视图表现在包含更多快速选择图标,允许您在相应的视图中查看关联的追踪和日志,并传递正确的上下文,以及在不离开页面的情况下查看服务详情,如下图所示。