您需要了解的 APM “事务”知识

“事务”一词以许多不同的方式应用于整个 IT 行业中,且其各种含义之间有着细微的差异。在 System Center 2012 – Operations Manager 中,APM(“.NET 应用程序性能监视”)功能也将使用“事务”一词,而且其采用了一种非常特定的方式来进行事务处理,用户可能无法较快地对其进行直观把握。在本篇博文中,我将分析其使用方式,以及 APM 中“事务”一词的具体含义。

首先,我应提及此前曾记录的功能,.NET 应用程序性能监视模板的文档位于此处 https://technet.microsoft.com/zh-cn/library/hh457578.aspx 

您可在该文档中了解到您可从针对某一特定应用程序组件的“自定义”设置的对话中添加事务(提示:有关“应用程序组件”的定义,请参阅此前有关 APM 对象模型的博文),而且您还将了解事务共有许多不同的类型:

添加事务

其中每一个事务类型将在其各自的段落中予以详细介绍(以及一些其他内容):

以上三种事务是 OpsMgr 2012 RTM 中可用的类型。随着我们开始支持更多技术,今后可能出现更多事务类型。

本文档将向您介绍

"[…] The application component continues to monitor the page specified in the transaction by using the performance threshold that is set for the application component. This threshold is used as a second measure on the same page in the application component. If you set this threshold higher than the application component threshold, you get two performance events for the transaction when the threshold is breached—one from the application component and one from the transaction. Transactions are typically used to monitor the individual page more aggressively than the parent application, at a lower threshold, or to monitor a page where monitoring has been disabled on the parent. […]"

尽管本文档将向您介绍如何使用设置,但是您可能希望了解事实细节、“后台”的情况,以及某些行为背后的原因。

我在撰写有关 APM 对象模型的博文时,我并没有探讨“事务”的主题,这是因为我已经在那篇博文中介绍了很多概念。但是我曾承诺我将再次介绍“事务”这一主题。今天我就将在您所阅读的这一博文中兑现这一承诺。 

从本质上来说,“添加事务...”按钮可让您创建额外、特定的对象来代表某些驻留于应用程序组件内的页面、Web 服务和函数。换句话说,事务可启用应用场景,例如:

  • 在应用程序和应用程序组件级别禁用警报,并仅为特定页面/服务/方法启用警报
  • 在阈值应低于其所属组件阈值的组件代码中定义某些网页、Web 服务方法或函数

也许您已经明白了上述内容,但是接下来我将介绍一些需要您注意的“难点”或内容:

  • 一项事务将作为一个由应用程序组件承载的单独对象创建。
  • 因此,事务并不是对应用程序组件的“覆盖”。
  • 创建事务将不会从父级应用程序监视中删除特定的页面/Web 方法/函数。
  • 如果您为应用程序组件和事务同时启用警报,那么您将从父级应用程序组件中获得一个警报,并从事务中获得一个警报(如果超过了二者的阈值)。

示例应用场景:

  • 我将应用程序的阈值设置为 15 秒,并开启了警报规则。
  • 我将“default.aspx”页面的事务阈值设置为 10 秒,并开启了警报规则。
  • 如果“default.aspx”页面显示超过 16 秒,那么我将收到两条警报:一个是针对事务的警报,一个是针对应用程序的警报,其原因在于系统违反了这两个阈值。

以下关系图说明了这一概念:

APM 运算事

当然,如果您小心使用事务,那么您可只针对特定页面或 Web 方法启用警报,而不是对整个应用程序启用警报。同时还请注意,无论用户进行了怎样的警报设置,APM 都将针对应用程序诊断内的集合/虚拟化进行“事件”收集(如果您不是很明白这一内容,请参阅我的另一篇关于 APM 规则的博文,我在该文中介绍了更多详细内容)。

 

总结一番,了解事务的以下特性对您十分重要:

  • 可监视拥有不同阈值/设置的单个进入点
  • 如使用不当将很易形成双重警报,因此应将其作为“调谐”方法小心使用

希望本文有助于您理解如何使用事务来微调您的 .NET APM 配置!

 

…另外,如果您能前往 MMS 2012,那么您将在那的会议中看到我所主持的两次教师指导实验:

AM-IL302 System Center 2012 应用程序性能监视
AM-IL304 System Center 2012 Operations Manager Java 监视

期待在那与您见面!