作者:Eduardo Monich Fronza, Arpit Nanavati, Muralidhar Chavan
日期:2023年3月15日
发表于 ,,,,[Amazon Simple Storage Service
(S3)](https://aws.amazon.com/blogs/architecture/category/storage/amazon-
simple-storage-
services-s3/),
和
随着客户在 Amazon Web Services (AWS) 上构建创新且可扩展的应用,微服务架构的普及也日益增加。客户需要全面的可视化解决方案,以帮助他们有效监控和管理应用的实时性能。
是一个完全集成的应用性能管理(APM)解决方案,作为一个完全托管的 [软件即服务 (SaaS)](https://aws.amazon.com/marketplace/pp/prodview- hnqy5e3t3fzda?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) 提供给客户。它专为帮助客户应对实时监控微服务和云原生应用的挑战而设计,利用人工智能和机器学习技术提供应用健康状态和行为的深入洞察,从而使开发人员和 IT团队能够实时了解微服务应用,优化性能,并迅速识别和解决问题。
本文将解释 IBM Instana 如何自动收集托管在 AWS 云以及本地环境中的可观测性指标、追踪和事件,以全面了解单个组件和整体应用性能。
IBM Instana 设计旨在高度可扩展,以适应不断变化的微服务应用环境。它的架构(见图1)由多个组件组成,它们共同提供对微服务和云原生应用的全面监控。
Instana 的主要构建模块是 和 ,这些模块部署在客户的 AWS 账户中,负责收集、聚合和发送应用及 AWS 服务的详细监控信息到 Instana SaaS 后端。
Instana SaaS后端服务提供了几个关键组件,包括数据收集器、存储服务、分析引擎和用户界面,允许客户实时处理和分析数据,产生可操作的洞察,全面了解应用和基础设施的性能,从而快速识别和解决问题,提升整体运营效率。

图1. IBM Instana 架构在 AWS 上
Instana 通过收集信标、追踪和每秒指标来监控和观察微服务及云原生应用:
这些信息由 Instana 代理和传感器捕获,同时收集应用配置和事件,自动发现应用构建块,包括集群、容器和服务。
是一个轻量级软件组件,负责从各种传感器收集和聚合数据,然后将数据发送到 Instana 后端。它可以部署到多种 AWS 服务中,包括 AmazonElastic Compute Cloud (Amazon EC2)、AmazonElastic Kubernetes Service (Amazon EKS)、、 或 Red Hat OpenShift Service on AWS (ROSA)。单个主机代理用于收集来自监控系统的数据。
一旦 Instana 代理启动,它们会自动检测应用和服务,例如运行在 Amazon EKS 上的容器,以及像 、、、、 或 的进程。对于每个检测到的组件,Instana 会自动下载、安装并配置不同的传感器以监控环境。
Instana 传感器是小型程序,设计用于直接监控特定技术并将数据传递给代理。它们由主机代理自动进行管理、更新、加载和卸载。
这些传感器可以监控多种 AWS 服务,如 Lambda、、Amazon Simple Storage Service (Amazon S3)、、 及 。它们通过 和 收集如请求和错误率、延迟、CPU 利用率等数据。
Instana 还提供用于收集在 AWS 上运行的应用数据的传感器,如 、 或 。请查看 和 AWS 服务。
Instana 还提供跟踪器,适用于 Java、.NET、NodeJS 等运行时。它们修改代码执行以记录日志、请求级别的追踪,并将其发送回 Instana代理。
通过使用传感器,主机代理收集配置信息并监控其检测的应用。主机代理还处理与 Instana SaaS后端服务的通信。它以实时方式收集、聚合并发送日志、追踪和记录的指标(如响应时间、错误率和资源利用率)每秒到 Instana SaaS后端,使用安全且高效的通信协议。
Instana SaaS 后端是 Instana APM 解决方案的核心,负责处理、存储和分析从客户基础设施中安装的 Instana代理和传感器收集的监控数据。
它由多个组件和服务组成,这些组件和服务共同为微服务应用提供实时监控和分析,包括:
Instana SaaS 平台自动从代理接收数据并持续更新 (见图2)。此图提供每个依赖关系的上下文,用户可以轻松理解应用组件和服务之间的相互关系。
这种理解使用户能够识别任何问题的上游和下游影响,确保他们始终了解任何潜在影响。

图2. IBM Instana 依赖关系图示例
Instana 对每个请求进行端到端的追踪,不进行采样。这些追踪实时分析,提供的指标能够立即揭示任何性能问题。在发生事件时,Instana可以展示单个问题是如何引发涟漪效应,并影响多个直接和间接连接的服务。使用动态图提供的关系信息,Instana的自动根本原因分析能够精确地将单个问题聚合为一个事件。

图3. 使用 IBM Instana 监控应用
开发人员、IT 运维或站点可靠性工程师 (SRE) 可以访问 Instana 后端的最终用户监控界面(见图3)或最终用户监控 (EUM) 界面(见图4),以查看其工作负载的监控数据。这些工作负载可以是网站、移动应用、AWS 服务和基础设施层。从此 UI,相关人员可以访问服务仪表板,显示关键性能指标 (KPI),如响应时间和错误率。

图4. 使用 IBM Instana 进行最终用户监控
以下行动展示了如何为部署到 Amazon S3 的 JavaScript 应用实现 EUM:

图5. IBM Instana EUM JavaScript 代理
Instana 还提供智能警报(见图6),使警报管理更加直观。通过智能警报,客户可以自动生成警报配置,利用相关 KPI和自动阈值检测,处理像网站缓慢或错误等用例。

图6. IBM Instana 智能警报
在这篇文章中,我们讨论了 IBM Instana如何提供全面的监控解决方案,为您实施实时可见性和监控解决方案提供合适的工具。它使您能够深入了解微服务和云原生应用的性能,包括对 AWS服务、容器、本地基础设施和其他技术的可视化。Instana 可以快速识别和解决问题,确保您的应用运行最佳,避免影响最终用户。
作为 IT 管理员、开发人员或业务负责人,IBM Instana 在 AWS 上为您提供对应用的深刻理解,帮助您做出数据驱动的决策,以提升整体性能。

Eduardo Monich Fronza 是 AWS的合作伙伴解决方案架构师。他的经验包括云、解决方案架构、应用平台、容器、负载现代化和混合解决方案。在乎的角色中,Eduardo 帮助 AWS合作伙伴和客户推进其云采用之旅。
![Arpit删除)
Arpit Nanavati 是 IBM-AWS战略合作团队的云软件架构师。他的经验涵盖云、解决方案架构、微服务、容器和混合解决方案。在当前角色中,Arpit 帮助客户在 AWS 云上设计、规划和实施 IBM 软件解决方案。
![MuralidharChavan](https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2023/03
Leave a Reply