APM for .NET评测系列:OneAPM vs SCOM

Stella981
• 阅读 915

随着.NET技术的开源和推广,越来越多的企业选择使用.NET语言开发业务系统,其性能问题是大家共同面临的最棘手的问题。

笔者在此向大家分享一款国内还算靠谱的产品OneAPM,来管理业务系统的性能及Http ERROR。并从安装,性能,功能等几个方面与SCOM进行一个简要的对比。

APM for .NET评测系列:OneAPM vs SCOM

  安装

  OneAPM:一键安装

  OneAPM for .NET提供免费版和付费版。免费版开放了响应时间,http error监控等常用功能,一些深度剖析的功能需要付费,不过注册后可以试用15天。

  安装方面基本上是一键安装,非常简单,步骤如下:

  注册OneAPM官网账号(网址为http://www.oneapm.com/)

  官网下载.NET Agent进行一键安装。

  部署.NET应用程序到本地IIS并重启IIS,即可使用。

  另外OneAPM支持的操作系统包含Windows Server 2003、Windows Server 2008、Windows Server 2012、Windows Vista、Windows7。

  流程如图所示:

APM for .NET评测系列:OneAPM vs SCOM

  官网查看应用性能情况

  SCOM:对比而言安装比较复杂,需要很多先决条件

  SCOM属于System Center产品组件,目前Microsoft不提供免费版使用,需要付费或者在一定的试用期内使用。其中标准版和数据中心版都包含SCOM组件,价格分别是$1,323和$3,607。

  SCOM的安装需要一些先决条件,比较繁琐:

  需要开启服务器管理器功能,并添加一些角色和功能。

  需要安装System CLR Types for SQL Server 2012。

  需要安装Reporting Viewer 2012。

  安装Operations Manager。

  导入Windows Server OS系统管理包。

  导入APM对应IIS平台管理包。

  导入APM管理包。

  建立.NET APM监视,并根据提示重新启动IIS。

  服务器自动启动APM监视服务,并等待Web应用程序数据收集。

  另外SCOM的Web控制台和管理服务器功能需要的操作系统版本是Windows Server 2008 R2 Service Pack 1或更高的版本,并只能安装在Active Directory目录服务的网络上。

  流程如图所示:

APM for .NET评测系列:OneAPM vs SCOM

  性能

  在开启代码级性能监控的同时,对系统自身性能的影响往往是最受关注的问题。

  OneAPM:低于3%,有国内大型企业使用的案例

  从Oneapm官方给的数据来看,这个值是低于3%。即安装.net探针后,对系统的CPU及内存的影响低于3%,一般这个程度的影响对系统来说是能够被接受的。

  从使用案例上来看,积木盒子、药房网,中国移动等一些大中型企业的生产系统都在用这个产品。

  SCOM:未发现官方性能数据及案例

  目前Microsoft System Center官方并未给出开启代码级监控功能后,实际的性能损耗。

  从使用案例上来看,目前没有了解到国内中大型企业在生产系统中使用SCOM的代码级监控的案例。

  功能

  下文中我将主要从代码级Trace、SQL以及Error三点常用功能对比OneAPM以及SCOM。

  代码级Trace:能够定位到缓慢的方法类及Sql语句。

  OneAPM

  当系统发生错误和缓慢时,OneAPM提供了trace功能能够定位到代码中缓慢的方法类和Sql预计。

  如图所示,我们可以看到OneAPM对Web事务(即一次http请求)的抓取。在左侧页面中,显示了Web事务的列表,用户可以查看事务的耗时,定位哪些http请求执行缓慢。

APM for .NET评测系列:OneAPM vs SCOM

  对于需要做深度剖析的Web事务,可以点击详情,查看每个组件及方法类的性能。

APM for .NET评测系列:OneAPM vs SCOM

  我们可以详尽地看到Trace耗时的时间戳。耗时百分比中将耗时最慢因素进行了红色标识,可以通过方法跟踪,辅助程序开发人员或者IT团队来修复问题。甚至,OneAPM还可以诊断出执行缓慢的SQL语句。很明显,一条Select语句是关键影响因素。

APM for .NET评测系列:OneAPM vs SCOM

  SCOM:能够定位到缓慢的方法类及Sql语句:

  Application Diagnostics控制台是System Center 2012 - Operations Manager中.NET应用程序性能监视的事件管理系统。用户可以使用Application Diagnostics控制台监视部署的.NET应用程序是否出现减速、故障和失败,并且可以确定问题的来源。

  在Application Diagnostics控制台中,可以查看网站APM性能及应用程序的错误,本质就是APM监视网站,提供给应用程序人员来做应用程序的监视。

  同OneAPM相似,Application Diagnostics也为两种事件提供监测:一种与应用程序性能相关,一种与应用程序失败和错误(通常为链接或安全性问题)相关。我们这一小节主要简述程序性能,有关应用程序的失败和错误将在下文涉及。

  如图所示,打开Application Diagnostics网站,可以查看某个应用的APM性能。

APM for .NET评测系列:OneAPM vs SCOM

  选择其中一个应用后,可以查看该应用下的其中一个请求,可以查看到该请求的耗时体验。SCOM也为用户提供了请求的堆栈信息,为运维人员向下挖掘到堆栈。

APM for .NET评测系列:OneAPM vs SCOM

  通过这些堆栈信息可以获取到事件发生的顺序,在视图中还可以看到花费时间的概述以及问题的所在,以及提供了代码级别的APM数据。

APM for .NET评测系列:OneAPM vs SCOM

  数据库监控

  OneAPM:缓慢的Sql列表及Sql trace

  OneAPM不仅提供代码级的Traces,还提供了Database监控,与Web事务监控相似,SQL性能监控为我们提供了不一样的视角。从图中我们可以看到左侧罗列出的SQL语句,OneAPM为我们诊断出了每一个SQL语句的平均响应时间以及它们的吞吐量。

APM for .NET评测系列:OneAPM vs SCOM

  点击一条你所关心的数据,就会在右侧页面看到它的详细情况。

APM for .NET评测系列:OneAPM vs SCOM

  与Web事务对应的Traces相似,我们同样可以看到某条SQL语句对应的多次慢SQL情况。

APM for .NET评测系列:OneAPM vs SCOM

  点击某一条所关心的SQL情况,就可以看到详情。OneAPM诊断出该条SQL语句的详细信息,包括调用该SQL的URL,方法类,执行计划等。

APM for .NET评测系列:OneAPM vs SCOM

  SCOM:未发现数据库监控功能

  目前,笔者暂没发现SCOM提供像OneAPM一样的SQL维度视角的性能监测功能,如果有读者提出异议,非常欢迎指正。

  对于Http ERROR的监控

  OneAPM:抓取Http ERROR并抓取Error Trace

  OneAPM默认监控非404的Http请求错误,通过OneAPM的监测,可以诊断出错误信息的详情。包括发生该错误的URL,代码栈,错误发生时间等信息。如图所示。

APM for .NET评测系列:OneAPM vs SCOM

  SCOM

  上文提到的Application Diagnostics为错误事件提供监测,一般与应用程序失败和错误(通常为链接或安全性问题)相关。打开Application Diagnostics网站,可以查看某个应用的程序错误信息。

  框架/平台

  基于.NET,两款产品对框架/平台上的支持情况如下:

  OneAPM:支持主流

  OneAPM支持所有的.NET语系,包含VB.NET、C#和C++/C LI for .NET 2.0及以上版本。

  OneAPM支持的主要程序框架,包含MVC 2.0、MVC 3.0、MVC 4.0、ASP .NET WebAPI、ASP .NET Web Forms和SOAP-based Web Services。

  OneAPM支持的框架为Microsoft .NET Framework 2.0以上版本。

  SCOM:基于Microsoft .NET Framework

  SCOM同样支持所有.NET语系,并支持基于Microsoft .NET Framework的应用程序。支持IIS5/6/7/8。

  结语

  从上述比较来看,我们发现OneAPM似乎更适应本土化用户使用习惯。

  从安装的角度看,OneAPM安装更便捷,并且提供免费版,付费版也比SCOM价格低。

  从性能的角度看,有很多国内的大中型的企业用户都在使用这个产品。

  从核心功能点的角度看,OneAPM与SCOM都有深入诊断应用程序性能的能力,两者都能提供代码级别的应用性能诊断和故障定位,以及详尽的Traces记录和错误诊断,但OneAPM还提供对Database视角分析的性能监测,不仅仅提供Web事务的分析,而且使用上更加直观,简单。对此,SCOM是没有SQL维度的。

  从可用性与性能体验方面的角度看,OneAPM和SCOM都有各自的机制为IT运营做决策分析,但OneAPM拥有面向真实用户体验的性能管理,视图更直观易懂,界面更加人性化。

  注:希望读者和小编一起感受OneAPM,小编也是初学者,文档有写的不妥的地方,欢迎指出,我的邮箱是corporation2013@163.com,希望大家一起交流进步!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
APM for .NET评测系列:OneAPM vs SCOM
随着.NET技术的开源和推广,越来越多的企业选择使用.NET语言开发业务系统,其性能问题是大家共同面临的最棘手的问题。笔者在此向大家分享一款国内还算靠谱的产品OneAPM,来管理业务系统的性能及HttpERROR。并从安装,性能,功能等几个方面与SCOM进行一个简要的对比。  安装  OneAPM:一键安装  OneAPMfor.NET提供免
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这