Dynatrace最佳实践(一)

来源:互联网 发布:淘宝代付申请超限 编辑:程序博客网 时间:2024/05/22 02:41

经常有客户问我,如何利用Dynatrace捕获必要的应用性能监控信息,从而快速诊断性能问题?所谓捕获必要的信息,即是在应用出现性能下降的时候,PurePath能够捕获导致事务响应缓慢的方法,或是导致事务失败的异常栈信息,亦或是用户请求的上下文参数。如何通过Dynatrace捕获必要的信息,则需要我们掌握一些Dynatrace使用的技巧和最佳实践。在本文中,我将结合我个人的实施经验,与大家一起分享一下我的一些Dynatrace使用技巧和最佳实践,希望能够帮忙大家更加有效的使用Dynatrace来做应用性能监控。

选择适合的技术类型

通过只选择适用于系统配置文件的技术,可以使Agent组的配置变得更容易,因为只有与选择的技术相关的传感器包会出现在Agent组的“传感器放置”里,比如,只选择Java技术,则不会出现与.NET相关的传感器包,减少一些无相关的配置。要设置所使用的技术,请在系统配置文件的常规配置中,勾选相应的技术类型即可,如下图所示。
这里写图片描述

传感器组和Agent组一一对应

为每个Agent组创建一个专门传感器组(Sensor Group),可以帮忙我们在Agent组中更精确地放置传感器(Sensor),即需要捕获的方法。同时也有助于确保不会在其他Agent上监视不必要的方法,此外,还能防止因为创建了太多的传感器组,并关联到多个Agent组所带来的的混淆,一一对应的方法使得关联关系更加清晰。

1.将传感器移动到对应的传感器组中
这里最好的做法是,创建一个与Agent组一对一匹配的传感器组,设置传感器组的名称和Agent组的名称一样。传感器组可以在系统配置文件中创建,右键单击默认的传感器组,选择“添加传感器组”。小技巧:自定义的传感器可以通过复制和粘贴的方式移动到新创建的传感器组中。如下所示
这里写图片描述

2.将传感器组放置在对应的Agent组中
在Agent组中,放置新创建的具有相同名称的传感器包。在Agent组的“传感器放置”设置中,勾选对应的传感器包的复选框。
这里写图片描述

自动传感器的采样频率设为最低

Dynatrace自动传感器(auto sensor)的作用是定位出任何运行缓慢的方法,它的工作原理是通过对CPU运行时间较长的方法进行采样,当采用频率的设置的越低,自动传感器的CPU采样的间隔越长 ,Dynatrace所带来的系统开销也就越小。因此,我们需要设置CPU的采样频率调至最小,以确保在生产环境中,自动传感器所带来的开销保证最低(通常能维持在1%内)。若要做此更改,请进入Agent组的“高级”设置里,在自动传感器设置中选择“最低”,如下图所示。
这里写图片描述

排除不必要的传感器包

排除那些不被任何应用程序所使用的传感器包,只保留客户想要监视的方法的传感器包被捕获,使得配置变得更加简化。在Agent组的“传感器放置”的设置里,通过不勾选传感器包,可以排除那些不希望监控的传感器包。
这里写图片描述

按照个人的经验,可以排除的传感器包包括了用户体验,EJB和Hibernate等,下图是我通常保留下来的传感器包,其他的都会被排除掉。原则上是,当客户用了某些技术时,我们才开启对这些技术的传感器包
这里写图片描述

过滤静态资源

禁用对静态资源生成PurePath有助于减少Dynatrac分析的PurePath数量,分析更少的PurePath可以降低Dynatrace服务器自身的运行压力。由于静态资源通常不是应用程序中性能问题的根源,所以忽略这些静态资的性能分析通常是安全的,同时也可以让我们更加关注于对核心的业务请求的监控。
这里写图片描述

在Dynatrace里,可以在Servlet的传感器配置里,设置需要过滤的静态资源请求,比如JavaScript,CSS,字体,图片,F5的健康检查等。
这里写图片描述

过滤无关紧要的异常

默认情况下,Dynatrace对所有名称以java开始的异常都进行了过滤,目的是降低捕获这些异常所带来的系统开销。但是,往往一些非常有价值的,能够定位问题根源的异常是以java为开始的 ,比如java.sql.SQLException。而如果完全放开对所有异常的监控(包括java开始的),除了带来系统开销外,太多没有价值的异常也会使诊断问题变得复杂。因此,我们需要做一些异常捕获得优化,使得Dynatrace既能够只捕获那些有价值的异常,又能够减少系统开销。我通常的做法是,先捕获所有的异常(同时关闭异常栈的捕获),然后异常仪表板中,选择并逐一过滤掉那些没有价值的异常,比如反射机制调用抛出的异常java.lang.NoSuchMethodException。
技巧:异常过滤的原则是,异常发生的次数多,且没对事务请求结果产生影响,则可以安全的过滤掉。
这里写图片描述

0 0
原创粉丝点击