CA APM CEM:未找到事务序列中的非标识事务
CA APM CEM: Non-identifying transactions in transaction sequence are not being found
我在定义交易方面有一些经验,并且已经审查了 transaction definition guide and bookshelf。我们使用的是 CA APM 9.1.5 版。我在下面的记录会话中捕获了一个由 4 部分组成的交易。
在升级记录、调整识别交易的匹配标准并从交易中删除可缓存后,我有这个业务交易:
同步监视器后,我看到了结果。但是,对于捕获的每笔交易,我都会遇到 3 个缺陷:所有非识别交易都缺少交易。
识别交易已正确定义(我没有从没有此调用链的其他交易中流血)。非识别交易也被正确定义;为了证明这一点,我将识别交易从注册表单更改为 login.fcc,获取了该用例特有的流量,并且每个交易仍然有 3 个缺陷(3 个非识别交易丢失,这次是注册-表格缺失)。最诱人的是,今天记录了一笔成功的交易(还有更多的失败)。既然成功了一次,我觉得可能是超时定义的太短了,所以就增加到20s,没改。
潜在问题及其不是原因的总结:
- 更改之间不同步。
- 我确保在每次更改之间都执行此操作。
- 识别交易太vague/capturing不相关的流量。
- 匹配条件仅适用于此定义。
- 非识别交易定义不正确。
- 匹配条件仅适用于此定义。
- 将一项交易切换为识别一项正确匹配的流量。
- 事务超时时间太短。
- 将事务超时增加到 20 秒但没有成功。
- 交易在应该缓存时被标记为不可缓存。
- 每笔交易都是必经的一步;即使涉及缓存,大多数用户也不会多次执行链(因此至少大多数人会成功)。
- APM 正确报告故障。
- 能够自己完成成功的交易链,如果它不工作,很多警报都会响起。
有什么想法吗?如果需要,我可以提供更多详细信息。
在尝试解决问题的无数错误之后,我放弃了解决问题的希望。这与 CEM 组合在一起的虚假交易序列相结合,让我怀疑我们当前版本的应用程序存在严重缺陷。然后,在我放弃几周后(以及一个愉快的假期),我设法无意中发现了根本原因。
CEM 使用会话标识符 (source) 将事务和组件绑定在一起。在最近的某个时间点,我们在应用程序端对此进行了轻微更改,以获得安全补丁。不仅如此,最初的配置从一开始就不正确。如果会话标识设置不正确,CEM 将看似随机地对事务和组件进行分组。下面是一个示例,其中两个不同的会话组件组合在一起以获得错误的计时指标。相反的情况也可能发生:其他交易没有被绑定到请求链中,尽管实际发生了,导致丢失 transactions/components.
在我们的例子中,我们在会话识别配置中使用了 SiteMinder 身份验证 和 cookie。 cookie 不再存在,并且由于 AND 关系的性质,会话分组从未发生过。我更新了 cookie 名称,导致此配置:
但是,这仍然无法正常工作。首先,它不适用于未经身份验证的页面,因为我们网站的 public 部分可以在 SiteMinder 身份验证之前访问。不过,这些 public 页面上存在 CPSI cookie。不仅如此,经过身份验证的页面也无法正常工作。我仍然不确定为什么经过身份验证的页面会受到影响,因为它们应该同时存在这两个部分。我试图通过使用 OR 关系来修复未经身份验证的页面,如下所示:
未经身份验证的页面开始正确跟踪时间。此外,这也以某种方式修复了经过身份验证的页面!突然,我放弃的多步事务开始报告成功,整个应用程序的响应时间发生了巨大变化。由于 CEM 正在构建的虚假链,似乎整个应用程序都被误报(尤其是高流量交易)。
TLDR:如果 CEM 报告的时间似乎不准确,多步事务不起作用,或者您发现自己将所需组件标记为可缓存以使 CEM 报告成功,我建议检查会话标识配置(管理-> 业务应用程序 -> {您的应用程序})。请记住咨询 (their help docs) 并仔细考虑您的应用程序(已验证还是未验证等)以 select 正确的配置。
我在定义交易方面有一些经验,并且已经审查了 transaction definition guide and bookshelf。我们使用的是 CA APM 9.1.5 版。我在下面的记录会话中捕获了一个由 4 部分组成的交易。
在升级记录、调整识别交易的匹配标准并从交易中删除可缓存后,我有这个业务交易:
同步监视器后,我看到了结果。但是,对于捕获的每笔交易,我都会遇到 3 个缺陷:所有非识别交易都缺少交易。
识别交易已正确定义(我没有从没有此调用链的其他交易中流血)。非识别交易也被正确定义;为了证明这一点,我将识别交易从注册表单更改为 login.fcc,获取了该用例特有的流量,并且每个交易仍然有 3 个缺陷(3 个非识别交易丢失,这次是注册-表格缺失)。最诱人的是,今天记录了一笔成功的交易(还有更多的失败)。既然成功了一次,我觉得可能是超时定义的太短了,所以就增加到20s,没改。
潜在问题及其不是原因的总结:
- 更改之间不同步。
- 我确保在每次更改之间都执行此操作。
- 识别交易太vague/capturing不相关的流量。
- 匹配条件仅适用于此定义。
- 非识别交易定义不正确。
- 匹配条件仅适用于此定义。
- 将一项交易切换为识别一项正确匹配的流量。
- 事务超时时间太短。
- 将事务超时增加到 20 秒但没有成功。
- 交易在应该缓存时被标记为不可缓存。
- 每笔交易都是必经的一步;即使涉及缓存,大多数用户也不会多次执行链(因此至少大多数人会成功)。
- APM 正确报告故障。
- 能够自己完成成功的交易链,如果它不工作,很多警报都会响起。
有什么想法吗?如果需要,我可以提供更多详细信息。
在尝试解决问题的无数错误之后,我放弃了解决问题的希望。这与 CEM 组合在一起的虚假交易序列相结合,让我怀疑我们当前版本的应用程序存在严重缺陷。然后,在我放弃几周后(以及一个愉快的假期),我设法无意中发现了根本原因。
CEM 使用会话标识符 (source) 将事务和组件绑定在一起。在最近的某个时间点,我们在应用程序端对此进行了轻微更改,以获得安全补丁。不仅如此,最初的配置从一开始就不正确。如果会话标识设置不正确,CEM 将看似随机地对事务和组件进行分组。下面是一个示例,其中两个不同的会话组件组合在一起以获得错误的计时指标。相反的情况也可能发生:其他交易没有被绑定到请求链中,尽管实际发生了,导致丢失 transactions/components.
在我们的例子中,我们在会话识别配置中使用了 SiteMinder 身份验证 和 cookie。 cookie 不再存在,并且由于 AND 关系的性质,会话分组从未发生过。我更新了 cookie 名称,导致此配置:
但是,这仍然无法正常工作。首先,它不适用于未经身份验证的页面,因为我们网站的 public 部分可以在 SiteMinder 身份验证之前访问。不过,这些 public 页面上存在 CPSI cookie。不仅如此,经过身份验证的页面也无法正常工作。我仍然不确定为什么经过身份验证的页面会受到影响,因为它们应该同时存在这两个部分。我试图通过使用 OR 关系来修复未经身份验证的页面,如下所示:
未经身份验证的页面开始正确跟踪时间。此外,这也以某种方式修复了经过身份验证的页面!突然,我放弃的多步事务开始报告成功,整个应用程序的响应时间发生了巨大变化。由于 CEM 正在构建的虚假链,似乎整个应用程序都被误报(尤其是高流量交易)。
TLDR:如果 CEM 报告的时间似乎不准确,多步事务不起作用,或者您发现自己将所需组件标记为可缓存以使 CEM 报告成功,我建议检查会话标识配置(管理-> 业务应用程序 -> {您的应用程序})。请记住咨询 (their help docs) 并仔细考虑您的应用程序(已验证还是未验证等)以 select 正确的配置。