Bootstrap

Dynatrace系列之- 监控第三方API调用

(译)如何使用Dynatrace真实用户监控(RUM)检测有影响的第三方API调用

作者:Andreas Grabner
对软件工程来说,第三方API已经变得和我们自己的代码或执行代码的运行时一样重要了。第三方API调用可能会影响到你的软件和用户,引起人们对软件服务不满的投诉。这就是为什么必须要监控第三方服务调用。它和监控代码以及监控代码的运行平台一样的重要。使用类似的dynaTrace RUM工具可以做到对第三方API调用的监控。

根据第三方 API 的类型(内部还是外部)以及在代码中使用该API的位置(是来自后端还是来自客户端),您可以应用不同的方法来监控这些API调用。并且在其调用出现问题时得到问题发生和影响范围的告警。可行方法有:Real User& Transaction Monitoring 或者Setup Synthetic Endpoint Checks
Dynatrace Real User Monitoring (RUM) automatically monitors your 3rd, 1st party and CDN resources loaded by your applications

Dynatrace Real User Monitoring(RUM)自动监控应用中调用过的自己的(1st party),第三方的(3rd party)的和CDN的资源情况

尽管我将(在此博客的最后部分)为您提供有关如何利用Dynatrace进行API监控的教程和文档,但首先请让我告诉您一个由Roman分享的关于他如何利用Dynatrace帮助我们某个金融领域的客户解决问题的故事。

定制的Salesforce服务API影响自助服务门户

Roman和他的团队最近推出了Dynatrace,用来监控涉及关键业务的应用程序,包括其保险代理自助服务门户。这是一个既可以在内部网络使用,也可以被外部代理使用的门户网站。

尽管他们仅在支持该门户网站的部分后端系统上部署了OneAgent,但他们启用了Dynatrace真实用户监控(RUM)来监视该门户的所有外部和内部用户。团队希望这样做可以更好地了解用户在处理不同的自助服务工作流程时所遇到的问题。

外部用户和内部用户是通过不同的URL访问这个门户网站的。因此,Roman在Dynatrace中配置了两个应用程序,每个应用程序都映射到各自的URL。这使他和他的团队可以更好地了解是谁在公司网络内部或外部访问该应用程序,并告诉他用户体验是否有所不同。

两个星期前,收到dynaTrace告警,不管是外部用户还是内部用户,在调用第三方服务时都发生了错误率急剧增加的情况。实际上,发生问题的第三方API是由同一组织内的不同团队管理的。这个API服务会访问Salesforce,并提供数据给不同的应用程序(例如自助门户)。即使dynaTrace并没有在这个第三方服务的服务器上部署探针,但是dynaTrace通过RUM的功能监控了这个API的使用,性能和行为!以下屏幕截图显示了错误高峰,包括开始引发HTTP 500的确切时间点。
在这里插入图片描述

Dynatrace 自动检测第三方API调用和其发生HTTP 500 错误

除了警告该API的失败调用有明显的增长之外,Dynatrace还可以分析出该问题影响了多少自助门户的内部用户和外部用户。我们可以在Dynatrace应用程序的详细页面中看到这些信息。首先显示的是566个内部用户受到了此问题的影响:
在这里插入图片描述

566个内部用户遇到了接近4000次Http 500错误,影响了他们的自助服务工作流程

面向外部门户的数据显示,它仅影响了16个外部用户。
在这里插入图片描述

在出问题的时间范围内,只有16个外部用户受到影响,导致104个API调用失败

主动告警否则会出现盲点

这个故事的妙处在于,如果没有Dynatrace,用户将开始抱怨自助服务门户的某些方面不起作用。这将导致投诉电话数量增加,减慢执行这些财务用例所需的总时间,在许多方面造成挫败感,并且最终很难解决问题。

借助Dynatrace给他们的见解,他们可以:

  1. 立即定位问题到内部第三方服务的API,并通知其团队
  2. 主动通知他们的支持团队有关问题的信息,使得该团队可以在接到大量用户抱怨之前就可以着手解决此问题。
  3. 根据受影响的用户会话评估此问题的总体影响。

主动告警这部分还包括可以利用Dynatrace集成告警功能来执行自动告警。例如向Slack发送消息,创建Jira工单或启动ServiceNow或xMatters工作流。更多信息请参考:第三方告警通知集成

了解有关Dynatrace的更多信息

按照承诺,以下是产品团队录制的YouTube教程的一些链接。这些教程解释了如何利用Dynatrace来确保您的系统和所有依赖的服务按预期运行的最佳方法:

再次感谢Roman与我分享这个故事。很高兴看到我们团队已经在Dynatrace软件智能平台中构建的功能确实可以帮助我们的客户更快地交付更好的软件😊

;