小程序性能监控

APM入门

应用程序性能管理(APM)是对软件应用程序的可用性和性能的监视和管理。 不同的人对这个定义的理解不同,因此本文试图确定APM是什么,包括什么以及为什么对您的业务很重要。

如果要控制应用程序的性能,那么了解您要衡量的内容以及如何在业务环境中解释它就很重要。

什么是应用程序性能管理(APM)?

随着应用程序从独立应用程序发展到客户端服务器应用程序再到分布式应用程序,最终到基于云的弹性应用程序,应用程序性能管理也随之发展。

当我们提到APM时,是指管理应用程序的性能,以便我们可以确定它们何时正常运行以及何时异常运行。 此外,当有人出错并且应用程序行为异常时,我们需要快速找出问题的根本原因,以便我们进行补救。

我们可能会观察到如下情况:

—在其上运行应用程序的物理硬件
—在其中运行应用程序的虚拟机
—承载应用程序环境的JVM —在其中运行应用程序的容器(应用程序服务器或Web容器) —应用程序本身的行为 —支持基础结构,例如网络通信,数据库,缓存,外部Web服务和旧系统

一旦我们从所有这些来源捕获了绩效指标,就需要对它们对业务交易的影响进行解释和关联。 这是APM真正发挥作用的地方。APM供应商聘请了不同技术的专家,使他们可以深入了解每个单独系统中的性能指标,然后将这些指标汇总到您的应用程序的整体视图中。

下一步是从构成正常性的角度来分析您的应用程序性能的整体视图。 最后,根据您的应用程序和部署环境,您可能可以告诉APM解决方案执行某些操作来自动修复问题。

有兴趣阅读整篇名为“ Java 5最佳性能指标,技巧和窍门”的全文吗? 在这里下载!

APM为什么重要?

在您看来,APM很重要,但您可能需要向想知道为什么她必须为此支付费用的老板或公司CFO这样的人回答APM重要性的问题。 为了证明APM的重要性,让我们考虑采用APM解决方案的替代方案,并评估解决方案工作量和停机时间所带来的影响。

合成事务是您针对应用程序执行并用来衡量性能的事务。 根据应用程序的复杂性,构建调用服务并验证响应的小程序并不困难。

下一个选项是手动检测应用程序,这意味着您可以将性能监视代码直接添加到应用程序中,并将其记录在数据库或文件系统等位置。 手动检测的一些挑战包括:我检测代码的哪些部分,如何对其进行分析,如何确定正常性,如何将这些问题传播给他人进行分析,哪些上下文信息很重要等等。

还有其他技术选择,但我最常发现的是,当其自定义服务组织收到用户的投诉时,公司会被提醒注意性能问题。 我认为我不需要详细说明为什么这是一个坏主意!

首先,让我们考虑一下我们如何发现问题。 APM解决方案会提醒您应用程序异常行为,但是如果您没有APM解决方案,则可以选择以下几种方法:

—建立综合交易
—手动仪器
—等待您的用户致电客户支持!!

接下来,让我们考虑在没有APM解决方案的情况下如何确定性能问题的根本原因。 我最经常看到公司做以下两件事之一:

—查看运行时日志
—尝试在开发/测试环境中重现问题

日志文件是信息的重要来源,并且它们很多时候都可以(通过捕获异常堆栈跟踪信息)识别应用程序中的功能缺陷,但是当遇到不会引发异常的性能问题时,它们通常只会带来其他混乱。

另外,通常并行执行,开发团队的任务是在测试环境中重现问题。 这里的挑战是您通常没有足够的上下文来使这些尝试富有成效。

综上所述,APM对您很重要,因此您可以了解应用程序的行为,在用户受到影响之前检测问题并快速解决这些问题。 用业务术语来说,APM解决方案很重要,因为它可以减少平均解决时间(MTTR),这意味着可以更快,更有效地解决性能问题,从而减少对业务底线的影响。

另外,请查看有关Java Performance的AppDynamics网络研讨会。 在这里注册!

APM的演变

多年来,APM市场已经有了长足发展,主要是为了适应不断变化的应用程序技术和部署。 当我们有直接访问数据库的非常简单的应用程序时,APM仅仅是数据库的性能分析器。

但是随着应用程序转移到Web上,我们看到了第一波应用程序服务器,然后APM解决方案才真正出现。 当时,我们非常关注单个运动部件的性能和行为,例如:

—托管我们应用程序的物理服务器和操作系统
— JVM
—应用程序服务器行为 —应用程序响应时间

云改变了我们对世界的看法,因为我们不再对应用程序的行为采取系统级的看法,而是对应用程序的行为采取以应用程序为中心的看法。 运行应用程序的基础结构仍然很重要,但是更重要的是,应用程序是否能够以正常方式执行其业务交易。

此外,通过扩展和收缩您的环境,您可能会发现单个服务器实例仅可以使用几个小时。 我听说过一个大型的基于云的应用程序,该应用程序在其JVM中使用大量RAM,但是其回收策略可确保在垃圾回收有机会运行之前关闭这些服务器。 这可能是一个极端的例子,但是它说明,曾经是最具影响力的性能问题之一,但创意部署模型已使该问题不再存在。

您可能仍然可以找到一些来自旧世界的APM解决方案,但是现代APM供应商已经看到了行业中的这些变化,并设计了APM解决方案以专注于您的应用程序行为,并更加重视业务交易的性能和可用性而不是支持它们的基础系统。

有兴趣阅读整篇名为“ Java 5最佳性能指标,技巧和窍门”的全文吗? 在这里下载!

购买与构建

本文涵盖了很多领域,现在您面临一个选择:您是评估APM解决方案并选择最适合您的解决方案还是尝试自己开发。 我真的认为这归结为您在购买或构建决策中需要问自己的相同问题:您的核心业务是什么,构建自己的解决方案在财务上是否值得?

如果您的核心业务是销售小部件,那么构建自己的绩效管理系统可能就没有多大意义。 另一方面,如果您的核心业务是为客户构建技术基础结构和中间件,那么这可能是有道理的(但请参阅下面对第二个问题的回答)。

下一个问题是:建立自己的解决方案在财务上是否值得? 这取决于应用程序的复杂程度以及停机时间或性能问题如何影响您的业务。 如果您的应用程序利用许多不同的技术(例如Java,.NET,PHP,Web服务,数据库,NoSQL数据存储),那么为所有这些环境开发性能管理代码将是一项艰巨的任务。 但是,如果您有一个简单的servlet来调用数据库,则它可能不是不可克服的。

最后,问自己有关停机或性能问题对业务的影响。 如果您的公司通过在线销售产品来维持生计,那么停机时间将是灾难性的。 在当今竞争激烈的在线销售世界中,性能问题对您的影响可能超出您的预期。

所有这些都是说,如果您有一个复杂的环境,而性能问题或宕机对您的企业造成了巨大的损失,那么您最好购买APM解决方案,该解决方案可以让您专注于核心业务,而不是构建用于支持的基础架构您的核心业务。

结论

应用程序性能管理包括测量应用程序的性能,从支持您的应用程序的各个系统中捕获性能指标,然后将它们关联到整体视图中。

APM解决方案会观察您的应用程序以确定正常状态,并在检测到异常行为时捕获有关异常行为的上下文信息并通知您问题。 高级实现甚至允许您通过更改部署来应对异常行为,例如通过向处于压力下的应用程序层添加新的虚拟服务器。

APM解决方案对您的业务很重要,因为它可以帮助您减少平均解决时间(MTTR),并减少性能问题对利润的影响。 如果您的应用程序复杂,性能或停机问题可能会对您的业务造成负面影响,那么评估APM解决方案并为您的应用程序选择最佳解决方案是您的最大兴趣。

有兴趣阅读整篇名为“ Java 5最佳性能指标,技巧和窍门”的全文吗? 在这里下载!

另外,请查看有关Java性能指标的AppDynamics网络研讨会。 在这里注册!

翻译自: https://www.javacodegeeks.com/2015/07/level-up-monitoring-application-performance-management.html

小程序性能监控

小程序性能监控_通过应用程序性能管理升级监控相关推荐

  1. 安卓9可用的性能监视器_监视应用程序生态系统的性能和可用性

    在这个三篇文章的系列的第1部分和第2部分中 ,我介绍了监视Java应用程序的技术和模式,重点是JVM和应用程序类. 在最后的最后一部分中,我将重点放在介绍用于从应用程序的依赖项(例如底层操作系统,网络 ...

  2. 如何为python程序设置使用次数_提升Python程序性能的7个习惯

    Python不以性能见长,但掌握一些技巧,也可尽量提高程序性能,避免不必要的资源浪费. 1.使用局部变量 尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存. 使用局部变量替换模块名字空间中的 ...

  3. 哪些模块可用于python性能分析_提升Python程序性能的方法有哪些?看完你就知道啦!...

    掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的资源浪费.今天就为大家带来七个可以提升python程序性能的好习惯,赶快来学习吧:. 1.使用局部变量 尽量使用局部变量代替全局变量:便 ...

  4. python做服务器监控_使用python进行服务器的监控

    在Linux服务器中,一切皆为文件,就是说,服务器运行的个中信息,其实是可以从某些文件中查询得到的:百度后,你会知道,在Linux系统中,有一个/proc的虚拟文件系统: Linux 系统为管理员提供 ...

  5. mysql 可视化监控_基于Prometheus构建MySQL可视化监控平台

    对于MySQL的监控平台,相信大家实现起来有很多了:基于天兔的监控,还有基于zabbix相关的二次开发.相信很多同行都应该已经开始玩起来了.我这边的选型是prometheus + granafa的实现 ...

  6. java程序性能优化_怎么做JAVA程序性能优化

    展开全部 1)尽量指定类.方62616964757a686964616fe59b9ee7ad9431333433623731法的final修饰符.带有final修饰符的类是不可派生的,Java编译器会 ...

  7. 以太坊代币事件监控_以太坊程序员的常见误解

    最近,我偶然读到了一篇题为<程序员关于时区的误解>的文章,让我爆笑不已.这篇文章让我想到了程序员在其它方面的误解,如人名和时间,于是我开始寻找有没有关于以太坊的.奈何寻觅无果,我只得尽自己 ...

  8. 开发java程序的步骤_开发 Java 程序的一般步骤是:源程序编辑、 和 。_学小易找答案...

    [多选题]财务报表分析具有广泛的用途,一般包括( ). [单选题]在财务报表分析中,投资人是指( ). [单选题]阅读下列代码,选出该代码段正确的文件名( ). class A{ void metho ...

  9. python程序运行原理_谈谈 Python 程序的运行原理

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的 ...

最新文章

  1. 提取nds游戏的音乐
  2. Swift 4.1增强了泛型、编译器和包管理器
  3. 使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法
  4. WebView 和JS 之间交互
  5. leetcode:剑指offer----数组中重复的数字
  6. Filecoin网络目前总质押量约为4172万枚FIL
  7. 2017c语言自学贴吧,【图片】17年1.9开启我的C语言学习之路—小白篇【c语言吧】_百度贴吧...
  8. 点击一下就射击的java代码_Java面向对象(6) —— 射击小游戏
  9. 程序员的恶性循环:加班-没空学习-老是写同等水平代码-无法提升代码质量-老是出BUG-老是需要修改-加班-......
  10. User-Agent的变迁——浏览器大战之前世今生
  11. IReport导出PDF字体加粗失效
  12. 第三部分 :简单句的补充(复合句/定语从句)
  13. Android手机电池不耐用,手机电池用久了不耐用?教你几招让它“起死回生”!
  14. ORB_VI思想框架
  15. 基于Django框架的零食商城系统之Python毕设选题推荐
  16. SQL:查找或删除重复行
  17. 多线程初体验——使用2个线程根据莱布尼兹级数计算PI、多线程排序
  18. 【机器学习】“冷启动” 问题
  19. 极差问题:c++求解1-10的极差问题的初等解法
  20. 树莓派上使用python

热门文章

  1. project euler 19: Counting Sundays
  2. Telnet移植到开发板
  3. hadoop单机版配置
  4. 帝国cms 标签php,帝国Cms中如何实现tag标签中文url
  5. 2018年12月六级考试真题笔记
  6. 关于百度网盘群组,链接 转存问题 教程。
  7. 天气质量指数爬取代码
  8. 互联网公司【端午礼包】汇总
  9. pygame中time模块方法详解
  10. TI6678 MSMC关闭Cache方法总结