Bahubali Shetti

使用 Elastic AI 助手和 APM 分析 OpenTelemetry 应用

Elastic 可观测性提供原生 OpenTelemetry 支持,但分析应用程序日志、指标和追踪可能很复杂。Elastic 可观测性不仅提供 AIOps 功能,还提供 AI 助手(副驾驶)以帮助更快地缩短 MTTR。

阅读时间:8 分钟
Analyzing OpenTelemetry apps with Elastic AI Assistant and APM

OpenTelemetry 正在迅速成为云原生计算基金会 (CNCF) 内最广泛的项目,其提交次数与 Kubernetes 一样多,并获得了客户的广泛支持。许多公司正在采用 OpenTelemetry 并将其集成到他们的应用程序中。Elastic® 提供了有关为应用程序实施 OpenTelemetry 的详细指南。但是,与许多应用程序一样,查明和解决问题可能非常耗时。

Elastic AI 助手 显著增强了此过程,不仅在识别问题方面,还在解决问题方面。Elastic 的新型服务级别目标 (SLO) 功能进一步增强了这一点,使您可以简化整个站点可靠性工程 (SRE) 流程,从检测潜在问题到增强整体客户体验。

在本博客中,我们将演示您作为 SRE 如何检测配备 OpenTelemetry 的服务中的问题。我们将探讨使用 Elastic APM、Elastic 的 AIOps 功能和 Elastic AI 助手进行问题识别。

我们将使用OpenTelemetry 演示来说明这一点,其中启用了特性标志 (cartService)

我们的演练将涵盖两种场景

  1. 当购物车服务的 SLO 不符合要求时,我们将通过 Elastic APM 分析错误。Elastic AI 助手将通过提供运行手册和 GitHub 问题来协助进行问题分析。

  2. 如果购物车服务的 SLO 不符合要求,我们将检查指示高失败率的追踪。我们将使用 AIOps 进行故障关联,并使用 AI 助手直接从助手分析日志和 Kubernetes 指标。

先决条件和配置

如果您打算遵循本博客,以下列出了一些我们用来设置配置的组件和详细信息

  • 确保您拥有Elastic Cloud的帐户和已部署的堆栈(请参阅此处的说明)。

  • 我们使用了 OpenTelemetry Demo。使用 Elastic 和 OpenTelemetry Demo 的说明在此

  • 此外,您需要将 AI 助手连接到您喜欢的 LLM。我们使用了 Azure OpenAI GPT-4。

  • 我们还在 Kubernetes(具体来说是在 GKE 上)运行 OpenTelemetry Demo。

SLO 不符合要求

Elastic APM 最近在8.12版本中发布了 SLO(服务级别目标)功能。此功能允许为服务设置可衡量的性能目标,例如可用性、延迟、流量、错误和饱和度,或者定义您自己的目标。关键组件包括:

  • 定义和监控 SLI(服务级别指标)

  • 监控错误预算,指示允许的性能不足

  • 根据消耗率发出警报,显示错误预算消耗情况

我们为购物车服务设置了两个 SLO:

  • **可用性 SLO**,通过确保事务成功来监控其可用性。我们在 OpenTelemetry 应用程序中设置了特性标志,该标志会以 10% 的概率为 EmptyCart 事务生成错误。

  • **延迟 SLO**,以确保事务不会低于特定延迟,这将降低客户体验。

由于 OTel cartservice 特性标志,可用性 SLO 被触发,并且在 SLO 详细信息中,我们看到在七天的时间内,可用性远低于我们的 99.9 的目标,仅为 95.5。此外,所有可用的错误预算也已用尽。

使用 SLO,您可以轻松识别客户体验问题何时发生,或者服务潜在问题何时出现,从而防止问题变得更糟。

方案 1:使用 AI 助手分析 APM 追踪和日志

一旦发现 SLO 不符合要求,我们就可以深入研究购物车服务以在 Elastic APM 中进行调查。以下介绍了您可以在 Elastic APM 中执行的一系列步骤以及如何使用 AI 助手来分析问题。

Video Thumbnail

从视频中,我们可以看到,一旦进入 APM,我们执行了以下步骤。

  1. 调查了 EmptyCart 追踪,该追踪的失败率高于正常水平。

  2. 追踪显示大量失败,这也导致延迟略微增加。

  3. 我们使用 AIOps 故障关联来识别可能导致故障的组件,该组件与“FailedPrecondition”的字段值相关。

  4. 在过滤该值并查看日志时,我们仍然无法理解这意味着什么。

  5. 这时您可以使用 Elastic 的 AI 助手来进一步了解问题。

AI 助手帮助我们分析了以下内容:

  1. 它帮助我们理解了日志消息的含义,以及它与 Redis 连接失败问题相关。

  2. 由于无法连接到 Redis,我们请求 AI 助手为 Redis Kubernetes Pod 提供指标。

  3. 我们在过去两小时的日志中了解到有两个 Redis Pod。

  4. 但是,我们还了解到其中一个 Pod 的内存似乎在不断增加。

  5. 看起来 Redis 重启了(因此出现了第二个 Pod),有了这些信息,我们可以更深入地了解 Redis 发生了什么。

您可以看到,通过 AI 助手和 Elastic 的 APM 功能,我们可以多快地关联大量信息、日志、指标和追踪。我们无需在多个屏幕之间来回查找信息。

场景 2:使用 AI 助手分析 APM 错误

一旦发现 SLO 不符合要求,我们就可以深入研究购物车服务以在 Elastic APM 中进行调查。以下是您可以在 Elastic APM 中采取的步骤,并使用 AI 助手来分析问题。

Video Thumbnail

从视频中,我们可以看到,一旦进入 APM,我们采取了以下步骤:

  1. 我们注意到 APM 服务存在特定错误。

  2. 我们在错误选项卡中对此进行了调查,虽然我们看到这是与 Redis 连接的问题,但我们仍然需要更多信息。

  3. AI 助手帮助我们理解堆栈跟踪,并提供一些潜在的错误原因以及诊断和解决方法。

  4. 我们还请求了由我们的 SRE 团队创建的操作手册,该手册为我们提供了解决此特定问题的步骤。

但正如您所看到的,AI 助手不仅提供有关错误消息的信息,还提供如何诊断错误以及如何使用内部操作手册来解决错误的方案。

实现卓越运营、最佳性能和可靠性

我们展示了如何使用 Elastic 的功能(特别是 AI 助手与 Elastic APM、AIOps 和最新的 SLO 功能相结合)来分析使用 OpenTelemetry 进行检测的应用程序 (OTel 演示)。Elastic 大大简化了识别和解决应用程序中问题的过程。

通过我们对两个不同场景的详细介绍,我们已经了解了 Elastic APM 和 AI 助手如何有效地分析和解决购物车服务中 SLO 不符合要求的问题。通过这些工具快速关联信息、日志、指标和追踪的能力,不仅节省了时间,还提高了故障排除过程的整体效率。

在这些场景中使用 Elastic 的 AI 助手,突显了将先进的 AI 功能集成到运营工作流程中的价值。它不仅仅是简单的错误分析,还提供对潜在原因的见解,并提供可行的解决方案,有时甚至包括定制的操作手册。这种技术的集成从根本上改变了 SRE 解决问题的方法,使流程更高效,并减少对人工调查的依赖。

总的来说,Elastic 的 APM、AIOps 功能和 AI 助手(尤其是在处理 OpenTelemetry 数据方面的改进)代表着运营卓越方面的一大进步。这些工具使 SRE 不仅能够迅速应对新出现的问题,还可以主动管理和优化其服务的性能和可靠性,从而确保增强客户体验。

试一试

现有的 Elastic Cloud 客户可以直接从 Elastic Cloud 控制台 访问许多这些功能。没有使用云端的 Elastic?开始免费试用

本文中描述的任何功能或功能的发布和时间安排完全取决于 Elastic 的自行决定。任何当前不可用的功能或功能可能无法按时或根本无法交付。

在本博文中,我们可能使用了或参考了第三方生成式 AI 工具,这些工具由其各自的所有者拥有和运营。Elastic 对第三方工具没有任何控制权,我们对这些工具的内容、运行或使用,以及因您使用这些工具而可能造成的任何损失或损害概不负责。使用 AI 工具处理个人、敏感或机密信息时,请务必谨慎。您提交的任何数据都可能用于 AI 培训或其他用途。我们不能保证您提供的信息将被安全或保密地保存。在使用任何生成式 AI 工具之前,您应该熟悉其隐私惯例和使用条款。

Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine 和相关的标记是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。所有其他公司和产品名称是其各自所有者的商标、徽标或注册商标。