在 SAP BTP Cloud Foundry 运行时中发现可观察性和监控

学习目标

  • 应用技术和 SAP 服务以在 SAP BTP Cloud Foundry 运行时中设置全面的监控系统。

简介

随着您公司的旗舰应用程序获得了吸引力和用户流量高峰,性能问题和意外错误开始显现。为了维护无缝的用户体验并确保系统可靠性,您需要实施强大的可观察性和监控策略。在本课中,您将了解如何利用 SAP BTP Cloud Foundry 运行时中的工具深入了解应用程序的性能并快速解决任何问题。

概览

可观察性和监控是进入软件和系统的内部工作的窗口。可观察性 使您能够通过分析其生成的数据来了解应用程序和基础架构中发生的情况。同时,监控会利用此可观察性数据主动检查和警报系统状态,确保性能保持最佳并快速解决问题。

SAP BTP Cloud Foundry 运行时提供以下可观察性指标:

标识范围

可观察性标识

定义

源文件

日志

有助于跟踪系统更改和行为的事件、错误或事务的定性记录。

应用程序中的应用程序日志。Cloud Foundry 组件中的系统日志。

指标

CPU 使用、内存消耗和网络流量等定量测量用于反映系统性能。

容器指标。开发人员定义的自定义指标。

事件

影响资源的重要操作的记录,包括用于详细了解部署和用户管理等操作的审计事件。

事件启动时由应用程序和 Cloud Foundry 组件生成。

日志

Cloud Foundry 中的日志源自两个主要源:您的应用程序和 Cloud Foundry 系统组件。

  • 应用程序日志 提供对应用程序中操作和问题的分析。开发人员可以根据内容和格式对其进行定义。有关详细信息,请参阅 Cloud Foundry 中的应用日志记录 。

  • 系统日志 提供对平台如何管理和与应用程序交互的概览。它们由 Cloud Foundry 的内部组件(例如云控制器)生成,或者当对应用的请求到达 cloud foundry 的路由器时,路由器会记录请求。这些日志无法禁用。

您可以使用 Cloud Foundry CLI 中的 cf logs 命令访问实时日志。使用此命令,您可以促进 SAP BTP Cloud Foundry 中的实时故障排除和分析。

对于长期数据保留和深入分析,需要将日志转发到外部系统,例如 Splunk 或 Elasticsearch。您可以配置 Syslog 引流,以选择性地将特定类型的日志路由到用于集中存储的 syslog 服务器。

日志进入外部存储系统后,您可以使用不同的可视化工具创建动态且富有洞察力的仪表盘。例如,Kibana 经常使用 Elasticsearch 以交互方式浏览日志。

获取 Cloud Foundry 应用程序日志的概览

在本教程中,您将发现应用程序日志以及用于查看这些日志的各种方法。

执行在此处找到的步骤。

指标

我们可以在 Cloud Foundry 类别中分离指标:容器指标和自定义指标,每个指标都满足不同的监控需求:

  • 容器指标 显示应用程序如何利用分配给其容器的资源,包括 CPU 使用情况、内存消耗和磁盘空间。运行应用程序的相应 Diego Cell 大约每 15 秒收集一次这些指标,并将其转发到日志记录器进行聚合。默认情况下,容器指标临时存储在日志缓存中以快速检索,并使用 Cloud Foundry CLI 命令(例如 cf logs )进行访问。对于长期存储和历史分析,指标通常转发到 Prometheus 等外部系统。可以使用 syslog-drains 转发指标。要将 Prometheus 与 syslog-drain 一起使用,您需要一个中间件,该中间件从 syslog-server 转换为 PromQL 端点,例如 Telegraf 。在 容器指标 中了解更多信息。

  • 自定义指标 是用户定义的,可以测量交易率、错误计数、用户参与指标或与应用程序性能和业务目标相关的任何其他数据。这通常需要您的代码中的检测,通过语言特定的库(例如,expvar for Golang)、第三方监控系统(例如 Prometheus)或 SAP 的 Java 库。大多数指标库允许通过 HTTP 端点公开指标。或者,您可以在应用程序的容器中运行代理。这些方法独立于应用程序逻辑处理指标收集,在收集和导出自定义指标方面提供了灵活性,并且对代码的更改最小。

这两种类型的指标通常都直接存储在 Prometheus 等监控工具中,从而实现详细分析、警报以及与其他系统的集成。对于可视化,Grafana 是 Cloud Foundry 社区中的热门选择。

获取 Cloud Foundry 应用程序容器指标的概览

在本教程中,您将全面了解应用程序容器指标。

执行此处找到的步骤。

获取自定义指标的概览

在本教程中,您将获得自定义指标和检测的概览。

执行此处找到的步骤。

转发日志和容器指标

在本教程中,您将了解如何转发日志和容器指标,以便用户使用这些指标。

执行此处找到的步骤。

审计事件

在 Cloud Foundry 中,审计事件通过记录应用程序部署、服务绑定、用户管理等操作来提供有关资源交互的洞察。与侧重于访问和授权或使用事件(面向计费)的安全事件不同,审计事件提供了影响资源的活动的更精细视图,记录了操作者(发起操作的实体)、目标(受影响的资源)和时戳等详细信息。

审核事件由应用程序和 Cloud Foundry 组件生成,然后由日志记录器捕获并流式传输到各种端点进行访问和分析。

观看以下视频,了解如何监控单个应用程序或整个空间的事件。

视频:本节含 SAP 官方视频(视频 ID 1_6d80yb0y),需在 learning.sap.com 在线观看。

请记住:由于 SAP BTP 将 Cloud Foundry 事件保留 14 天,因此您应将这些数据转发到外部存储解决方案以进行长期持久性和高级分析。

要更好地了解审计事件,请查看以下文档:审计事件概述

获取事件和 SAP Alert Notification 系统的概览

在本教程中,您将发现使用 SAP Alert Notification 服务发送警报的 Cloud Foundry 事件和选项。

执行此处找到的步骤。

健康检查

健康检查是 Cloud Foundry 对正在运行的应用程序实例执行的自动测试,用于确定其状态,确保可靠性和可用性。Cloud Foundry 采用活动和就绪检查,为不同的功能提供服务:

  • 准备情况检查 确保应用程序实例已准备好处理请求。如果就绪检查失败,实例将从负载平衡器中临时移除,防止实例在稳定之前接收流量。这在更新、扩展操作或长时间启动期间至关重要,以确保正常部署。

  • 活动检查 验证应用程序实例是否处于活动状态并正在运行。如果活动检查失败,实例将自动重新启动。这种自我恢复机制有助于有效缓解系统故障。

健康检查有三种类型:

  • 端口检查(缺省):检查是否可以在应用程序端口上建立 TCP 连接。

  • 流程检查:验证应用程序的主要流程是否正在运行。这对于不使用标准端口的工作进程或应用程序非常有用。

  • HTTP 检查(推荐):对指定端点执行 HTTP GET 请求,并检查 200 状态代码。它为 Web 应用程序提供更准确的反馈。

健康检查的生命周期可汇总如下:

  • 部署:健康检查配置在部署期间在应用程序的清单文件 (manifest.yml) 中或通过 Cloud Foundry CLI 定义。有关详细信息,请查看 配置健康检查 。

  • 初始化:Diego 启动并计划应用程序实例以及指定的健康检查。

  • 启动:启动后,健康检查每两秒立即开始一次。这将继续,直到应用程序通过检查或达到指定超时(默认值:60 秒,可按照 "部署大型应用程序 "指南中的说明在 SAP BTP 上配置最多 10 分钟。

  • 持续监控:应用程序成功启动后,会定期执行活动和就绪情况检查,以持续监控其健康状况。

  • 失败处理:活动检查失败会导致重新启动应用实例。就绪状况检查失败会导致实例从路由中移除,尽管它将继续运行以进行潜在恢复。当健康检查失败时,分析应用程序日志以获取错误或警告。如果使用自定义 HTTP 端点,请确保返回正确的响应。此外,将资源约束(内存、CPU)和网络连接视为潜在角色。最终,如果实例重复未通过健康检查,Cloud Foundry 将放弃重新启动并将其标记为崩溃。

要了解有关健康检查的详细信息,请参阅以下文档:Cloud Foundry 中的健康检查

执行应用程序准备情况健康检查

在本教程中,您将了解应用程序准备情况健康检查的工作原理以及如何为应用程序进行设置。

执行此处找到的步骤。

使用 SAP BTP 服务简化可观察性和监控

SAP 使您能够轻松为在 SAP BTP Cloud Foundry 运行时上运行的应用程序建立全面的可观察性和监控策略。这是通过一套强大的服务实现的,包括 SAP Cloud Logging、SAP Alert Notification 和 SAP Cloud Application Lifecycle Management (SAP Cloud ALM)。

SAP Cloud Logging:集中日志管理和分析

SAP Cloud Logging 通过集中收集、存储、可视化和分析日志、指标和跟踪来增强 SAP BTP 上应用程序的可观察性功能。此服务与 SAP BTP Cloud Foundry 运行时无缝集成,适应各种数据格式和源,以进行全面的数据收集和分析。它允许您使用灵活的保留策略管理可观察性数据的存储持续时间。您可以通过直观的 Web 界面利用可定制的仪表盘和预定义视图轻松浏览日志、指标和跟踪,以快速识别趋势和异常。此外,该服务还包括警报和异常检测等高级功能,可帮助您主动解决潜在问题。

要开始使用 SAP Cloud Logging,您可以通过 Cloud Foundry CLI 或 SAP BTP 主控室创建服务实例,然后选择最适合业务需求的服务计划。服务实例运行后,您可以开始发送日志,并使用提供的工具进行深入分析和可视化。有关详细说明,请参阅 SAP Help Portal

SAP Alert Notification 服务:主动警报和通知

SAP Alert Notification 服务通过为有关操作变更和系统健康状况的实时警报和通知提供集中平台来进一步增强您的监控功能。它充当强大的代理,收集和管理来自不同应用程序和服务中的警报。它跨 SAP BTP 提供了全面且不断增长的警报目录。它允许您根据与监控需求相关的特定事件或条件定制租用。此外,它还支持多个通知渠道,从传统电子邮件到 Slack 等现代集成,使您能够高效有效地联系利益相关方。

要开始使用 SAP Alert Notification,请通过 Cloud Foundry CLI(多目标应用程序描述符或 SAP BTP 主控室)在 SAP BTP 子账户中创建服务实例。有关定制警报条件和操作的完整设置说明和指南,可在服务的 SAP Help Portal 中找到。

SAP Cloud ALM:应用程序生命周期管理的中央中心

SAP Cloud ALM 是一款基于云的解决方案,专为管理 SAP 提供的 SaaS 和客户构建应用程序的整个生命周期而定制。通过集成的可观察性和监控,SAP Cloud ALM 通过技术指标、事件监控和嵌入式分析提供对应用程序性能的分析。通过启用高级警报和自动更正操作(例如服务重新启动),SAP Cloud ALM 允许主动检测和解决问题。作为集中管理界面,它可以简化 SaaS 和自定义应用程序的管理,并与现有 IT 服务管理流程集成。

您可以使用 SAP Cloud ALM 通过与 OpenTelemetry 库集成来监控自定义构建的应用程序,该库通过自动检测和配置选项可将代码更改降至最低。有关详细指导,请参阅此处。同时,您可以通过预配置和预检测的设置轻松将 SAP 服务与 SAP Cloud ALM 连接。有关最新信息,请查看我们的 SAP Help Portal

根据企业级支持合同,无需额外硬件或复杂配置,即可轻松激活 SAP Cloud ALM,无需额外成本。有关分步说明,请参阅以下 SAP 任务:

  • SAP Cloud ALM 的上线和第一步

  • 开始使用 SAP Cloud ALM 运维选项

摘要

本课为您提供在 SAP BTP Cloud Foundry 运行时中设置和管理可观察性和监控的知识。通过了解并应用这些工具,您可以确保您的应用程序可靠、高性能且安全。

进一步阅读

任务:在全栈 CAP 应用程序中实施可观察性