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

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

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

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

通过使用新的Relic Apollo Server插件来验证您的应用程序,您可以获得问题的根本原因。该插件记录操作的总体时间,然后解析有效载荷,以便揭示和诊断慢速GraphQL操作的原因。分布式追踪进一步并提供能力,了解延迟是否来自应用程序本身或其他服务。

疑难解答错误和延迟

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

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

场景1:故障排除错误

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

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

2.在事务视图中选择事务名称,并使用分布式跟踪探索它。

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

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

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

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

在此示例中,您有一个显示慢速事务的事务视图:

1.通过悬停在它上面,您可以从一个名为ClosestStroidFound的慢速GraphQL查询中看到它。

2.要理解查询为什么慢,请单击事务并选择查找分布式痕迹对于此交易。

3.当您看到慢速交易时,您可以使用分布式跟踪探索它们。

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

仪器您的应用程序,以获得GraphQL错误和GraphQL操作中慢化的根本原因新的遗物apollo服务器插件

Rebecca Rodriguez是一位新的遗物高级产品经理,专注于Python,Node和浏览器可观察性数据摄取。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网送我们一个球场!!