应用程序性能监控之旅

我们工作中最好的部分之一就是使您成为最佳的ITPerformanceHero。但在幕后,eG Innovations充满了穿着自己的IT英雄斗篷的才华横溢的团队成员。我们想花一些时间向您介绍一些eG Innovations使市场领先的绩效监控公司的人

我们很高兴介绍阿伦·阿拉瓦穆丹(Arun Aravamudhan)产品负责人APM

有关应用程序性能监视的主要问题

  1. 向我们介绍你自己
  2. 是什么吸引了您进入eG Innovations,您在eG Innovations中扮演什么角色
  3. 什么是APM解决方案
  4. APM如何适应eG Innovations已交付的产品
  5. 您着手进行的APM项目的目标是什么
  6. 您提到不必更改应用程序代码如何在不更改应用程序代码的情况下实现Java代码级别的监视
  7. 字节码检测已经存在一段时间了吗
  8. 字节码检测可以让您做什么
  9. 此级别的事务分析是否会增加开销
  10. 字节码检测是APM的唯一挑战
  11. 确实听起来确实具有挑战性标签和后续跟踪有哪些挑战?
  12. 市场上有许多APM解决方案使eG Enterprise APM与众不同
  13. eG Enterprise APM的未来前景如何
  14. 当您不是ITPerformanceHero时,您喜欢在业余时间做什么?

向我们介绍你自己

阅读更多内容abot Arun Aravamudhan eG Innovations APM和Web UX产品负责人回答我是Arun Aravamudhan,我领导产品工程团队APM应用程序性能监控EUM最终用户监视在eG Innovations的产品线我从事软件行业多年,包括开发架构和跨多个垂直领域(如银行电子商务和电信公司)的运营。自从20世纪90年代中期以来,我一直是APM产品的较早采用者,而我的重点主要是致力于大型分布式应用程序的性能调整和监视

是什么吸引了您进入eG Innovations,您在eG Innovations中扮演什么角色

回答eG Innovations为我提供了一个机会,可以吸收我在过去几十年中所经历的一切,然后将其倾注用于构建出色的APM产品。该公司已经在IPM基础架构性能监控我看到了带头APM功能集的机会

在eG Innovations,我的任务是执行我们的使命,即交付世界一流的APM产品,为我们的客户提供有形的商业价值。我们通过将应用程序和基础架构的观点整合到一个整体的单一玻璃解决方案中,以监控诊断警报和报告基准来实现这一目标。容量规划等我们称之为融合应用程序和基础架构监控

在与高度技术的客户讨论高度动态的IT环境中的需求方面,我的角色非常多方面,将其转换为工程师可执行的一组规范,并平衡多个因素以优先考虑要使用的功能与应推迟的功能

什么是APM解决方案

应用程序性能管理需要监视许多基础结构功能回答APM产品通过向您展示最终用户体验来帮助您评估应用程序的性能。它允许您深入研究业务交易和底层基础结构的运行状况,想象用户登录到系统该请求已发送到防火墙,负载均衡器Web服务器,应用程序服务器以及可能的身份验证服务器或数据库APM系统启动,并跟踪从浏览器到数据库的所有呼叫,并返回整个通信流在登录呼叫链的任何步骤中是否缓慢?是由于浏览器,网络还是后端引起的错误。如果是后端,则是代码,SQL或第三方依赖关系,甚至是基础架构

本质上,APM解决方案使用标签显示了数据如何在应用程序层之间流动,并遵循机制在每个层中花费了多少时间,并提供了有关其行为方式的可见性

APM如何适应eG Innovations已交付的产品

eG Innovations回答了问题回答eG Innovations一直致力于回答当今最棘手的IT性能问题,即为什么应用程序运行缓慢无法轻松地解决此问题,因为服务器硬件云平台存储数据库或DNS等基础架构服务的基础架构存在问题,因此出现了问题。eG Innovations的eG Enterprise套件已经解决了性能监控的这些方面。应用程序代码本身或应用程序查询数据库的方式或应用程序依赖的外部服务的方式我们意识到,如果我们必须提供可靠的答案来回答为什么我的应用程序速度慢的问题,那么APM功能必不可少

您着手进行的APM项目的目标是什么

回答有几个目标

  • 我们必须提供对应用程序性能的深入可见性,包括代码级见解。无需开发人员更改代码或添加新的检测钩子此外,Java广泛用于COTS应用程序中,例如SAP Netweaver使用Java前端Siebel,而PeopleSoft基于Java堆栈,依此类推,因此APM解决方案要求进行应用程序修改以实现监视是不切实际的
  • 我们必须对应用程序进行检测,以便最小化监控开销eG Enterprise中包含的许多其他监视器都处于带外状态,即它们无法在应用程序上下文中运行。另一方面,APM必须处于带内状态,这带来了一系列完全不同的挑战,因为我们的仪器存在的任何问题都可能降低设备的性能。应用
  • 此外,市场上已经有几种APM解决方案,所以我们必须寻找清楚的理由来说明为什么客户会采用我们的解决方案。商业和技术差异化因素
您可以轻松地开始构建第一个Hello APM工具并使用JVM内部组件,但是构建完整的APM解决方案并不适合胆小者

如何在分布式软件堆栈的每一层上跟踪事务
通过Trevor Parsons Dzone

您提到不必更改应用程序代码如何在不更改应用程序代码的情况下实现Java代码级别的监视

动态字节码工具允许我们修改Java应用程序代码回答我们使用一种称为动态字节码检测的技术,该技术允许我们通过Java代理将Java应用程序的代码加载到内存中时即时修改它们。这似乎是一个疯狂的想法,即应用程序可以在运行时进行自我修改,但这就是JVM之所以有效,是因为Java是一种动态加载的语言,我们具有将Java代理动态附加到已在运行的JVM的功能,这样您就无需编辑任何启动脚本,甚至不需要重新启动应用程序服务器。磁盘,但在运行时内存中动态

字节码检测已经存在一段时间了吗

监视系统的组装方式决定了该系统的效率和生产力回答字节码检测是自Java以来​​就存在的一种众所周知的技术。目前有开放源代码库(例如ASM cglib javassist和Byte Buddy)可用于实现字节码操作。尽管如今实现字节码检测的机制非常简单,但实际上使用字节码工具实施监视解决方案

为了提供一个类比,定义好手机的组件,您需要一个显示器,一个麦克风,一个扬声器,一个网络连接器电池等。同时,从定义手机的不同组件到实际组装可操作电话要比说起来容易得多。完成如何从其组件创建手机不是一个明确定义的过程,结果可能会有所不同,具体取决于所选择的体系结构,做出的设计决策和所遵循的过程。您最终可能会制造出像Apple iPhone或功能性手机这样的时尚手机。早期的诺基亚手机

字节码检测可以让您做什么

回答使用字节码检测,您可以跟踪每个应用程序层的事务处理。您可以确定在每个JVM中花费了多少时间来执行Java代码,重要的是花费了多少时间来发布和等待数据库查询Web服务调用到第三方HTTP调用其他层等通过准确地知道在事务处理过程中花费的时间,管理员可以确定导致速度慢的原因是Java代码数据库查询Web服务调用等

此级别的事务分析是否会增加开销

回答这就是许多挑战所在。为确保开销最小,我们必须回答一些关键问题

  • 是否应该检测每个Java方法?如果不应该检测哪个方法
  • 请求的检测应运行多长时间
  • 如何确定何时停止检测请求
  • 由于服务器可能正在处理成千上万的请求,检测结果将存储在何处,这些请求将在何处汇总以及存储频率如何
  • 如何执行聚合而不需要在线程之间进行同步,这可能会很昂贵
  • 如何做到这一点而又不影响最终用户的响应时间

字节码检测是APM的唯一挑战

APM工具使用回答否如今,大多数应用程序都不是孤岛分布式和多层体系结构非常普遍一个应用程序层与它上游和/或下游的其他层进行通信为了提供端到端可见性,需要将事务的端到端流程结合在一起期望管理员手动向下钻取每个层并将端到端处理流程汇总在一起是不切实际的,在这种情况下,APM工具使用称为标记并遵循跟踪机制的概念

标记和跟随是一个概念,但是与字节码工具不同,字节码检测是一种技术,并且具有许多支持库,标记和跟随是一个没有库工具来实现标记和跟随的概念,当事务处理呈线性时,很容易概念化标记和跟随,如下面的例子

普通线性路径交易模型

非线性路径变化挑战管理员,并使交易跟踪成为挑战但是,现实世界中的应用程序流很少是线性且简单的。该请求可能会跨应用程序边界来回跳转,某些系统将其称为“自身调用”。非线性流使事务跟踪具有挑战性

另一个挑战涉及不同的Java框架,这些框架实际上可以看作是不同的应用程序领域。现实世界中的应用程序具有多个团队,他们采用的框架本质上是完全异构的,其中一些可能是OLTP在线事务处理系统,而其他可能是异步消息系统,其他系统可能是依赖于不同类型数据存储的OLAP在线分析处理

确实听起来确实具有挑战性标签和后续跟踪有哪些挑战?

回答鉴于标记和跟踪中与领域相关的各种复杂性,我们不得不回答各种各样的问题

  • 标签应在何处添加
  • 如何添加它而不影响正在监视的应用程序的功能
  • 标签如何跨层携带
  • 如果每个层使用不同的通信机制Web服务HTTP JMX等怎么办
  • 标签是否应跨层带有通用时间戳,以实现端到端视图
  • 如何将标记信息保持在最低限度,以免增加负载开销,并且仍然能够提供跨层的见解
  • 是否应该在每个层进行时间同步,这是否可行?
  • 如果路径中的一个或多个层不支持标记或在这些层中未部署监视工具,会发生什么情况
  • 鉴于应用程序接收到数千个请求,因此不可能将其所有处理数据存储在内存中进行处理如果每个层上仅存储了最高请求,那么如何构造请求处理映射
  • 地图的构建应该集中在一个地方还是应该分散

市场上有许多APM解决方案使eG Enterprise APM与众不同

融合应用程序和基础架构监控回答我们与许多客户的讨论表明,仅APM还是不够的IPM基础架构性能监控客户可能会购买一个点APM解决方案,而必须购买另一个IPM,那么您就很难将两者整合在一起。如果您想真正解决为什么我的应用程序运行缓慢的问题,您需要一个融合的解决方案来促进真正的根本原因诊断。我们解决方案的关键差异化因素从一个控制台中,您可以看到IT环境中所需的一切用户体验业务交易应用程序性能基础结构性能

我们的解决方案的部署也比其他解决方案简单得多。我们提供了一个通用代理,该代理具有操作系统所需的所有监视功能,应用程序日志进程,JVM,Web容器事务等。许多其他解决方案都需要针对OS的单独机器代理每个应用程序实例的应用程序代理

许可是另一个差异化因素到目前为止,APM解决方案非常昂贵,它们已由JVM实例许可,因此,如果您在系统上具有JVM,则需要许可证。我们通过受监视的操作系统(而不是要监视的JVM数量)来许可eG Enterprise。在许多客户无法获得APM定价的市场中,该解决方案具有很高的成本竞争力

eG Enterprise APM的未来前景如何

回答我们有一段非常激动人心的旅程,我们正在寻找几个领域

  • AI ML自动化eG Enterprise在智能警报,自动关联触发,自动动作因果分析和自动基线分析方面已经具有重要的AI功能,我们计划在跨域模式检测,预测分析和优化建议方面进一步加深该功能
  • 可视化如今,您可以在eG中利用RBAC和基于角色的仪表板,但我们将加深角色驱动的统一可视化,该可视化可与IT组织中的不同角色(例如DevOps Helpdesk IT Ops等)进行交流。今天,例如,我们已经捕获了用户名IP地址和可以标记用于业务交易的任意业务上下文信息。我们正在为客户提供更好的客户体验旅程可视化,以供业务线经理主动管理数字旅程

当您不是ITPerformanceHero时,您喜欢在业余时间做什么?

回答一整天都容易沉迷于技术,所以我尝试去体育馆并定期游泳。这不仅仅在于身体方面,我认为锻炼对我的心理健康至关重要,我也喜欢参观寺庙并享受精神诵经

感谢Arun eG Innovations还有更多ITPerformanceHeroes,敬请期待更多访谈我们等不及您与他们见面

apm一台显示器