Apollo Server,一个开源GraphQL服务器,可帮助您将GraphQL架构连接到节点中的HTTP服务器,可以与流行的框架一起使用,例如表示连接哈皮神koa.重新确定,AWS lambda.。四年前开发了4年前,当Facebook开放的GraphQL时,它在休息API的普及中加速了,主要是由于其效率。但是,GraphQL可能具有挑战性的监测。

GraphQL.,您可以在单个查询中获取和检索数据,使您能够询问您需要的数据,同时最小化通过网络传输的数据量并提高性能。但是,此单个操作或端点正是使GraphQL操作挑战到监视的原因。测量一个GraphQL端点的响应时间不会告诉您申请的健康。这新的遗物apollo服务器插件提供对解析器级别的GraphQL有效负载以及相关的外部服务调用的可见性。

要监视GraphQL应用程序,您希望了解单个GraphQL操作的时间,然后能够过滤到问题的根本原因。如果GraphQL操作缓慢,则延迟的原因可能是由于几件事。对于一个,它可能是操作本身的结构。例如,批量操作可能导致操作比所需的长度长。Resolvers,负责填充模式中的单个字段数据的功能也可能导致延迟。在这种情况下,您要调整函数调用。

但是,潜伏期也可能是由外部服务的性能不佳,例如API或数据库引起的。使用分布式跟踪,您可以识别GraphQL字段正在调用哪些外部服务并将延迟属于该外部服务。

通过使用新的Relic Apollo服务器插件来测试你的应用程序,你可以找到问题的根本原因。该插件记录操作的总体时间,然后解析有效负载,这样您就可以发现并诊断GraphQL操作缓慢的原因。分布式追踪更进一步,提供了理解延迟是来自应用程序本身还是其他服务的功能。

疑难解答错误和延迟

让我们通过两个故障排除方案:

我们构建了一个简单的示例节点应用程序,它与接口接口美国宇航局的近地物体API(搜索靠近地球对象)。该应用程序允许我们监视小行星到地球的近距离以及何时到达这里,所以我们有时间准备和最小化影响。使用GraphQL,您可以查询NASA的API以获取小行星的相对速度和距离地球的距离。重要的是,GraphQL查询避免了错误和延迟,以避免误判它将带小行星到达我们的时间。

场景1:故障处理

在第一个示例中,您会在错误事件页面上看到GraphQL错误,并将要查找快速修复的根本原因。

1.单击错误类以查看更详细的错误信息。

2.在事务视图中选择事务名称,并使用分布式跟踪对其进行研究。

3.在分布式跟踪视图中,您可以识别抛出错误的事务。

4.单击特定的跟踪以获取具有错误消息和违规查询的操作跨度的详细视图。在这种情况下,您可以看到与解析器相关的内部服务器错误。

5.最后,您可以始终通过自定义仪表板视图跟踪您的慢动作和解析器。

场景2:延迟是由外部服务引起的

在这个例子中,你有一个事务视图,它显示了一个缓慢的事务:

1.通过悬停在它上面,您可以看到它来自一个名为ClosestAstroidFound的缓慢GraphQL查询。

2.要理解查询速度慢的原因,请单击事务并选择查找分布式痕迹对于此交易。

3.当您看到缓慢的事务时,您可以使用分布式跟踪来研究它们。

4.浏览事务时,展开GraphQL Resolver Span,并查看它呼叫其他仪器的服务,从而在此交易的时间内采用。

工具检测您的应用程序,以找到GraphQL错误和GraphQL操作缓慢的根本原因新的遗物apollo服务器插件

Rebecca Rodriguez是New Relic的高级产品经理,专注于Python、节点和浏览器可观察性数据摄入。查看贴子

有兴趣为New Relic博客写作吗?亚搏体育登入网送我们一个球场!!