Newrelic:GraphQL 查询解析器作为单独的 Web 事务

Posted

技术标签:

【中文标题】Newrelic:GraphQL 查询解析器作为单独的 Web 事务【英文标题】:GraphQL Query resolvers as separate Web transactions 【发布时间】:2021-05-16 16:34:27 【问题描述】:

我有一个公开 GraphQL API 的 Java SpringBoot 服务。 NewRelic 将所有查询标识为 configuredGraphQLHttpServlet Web 事务,因为它们都通过单个 /graphql API 公开。我们如何将每个 GraphQL 查询解析器作为不同的 Web 事务进行跟踪?

【问题讨论】:

@Micheal 你有这个答案吗?实际上我有同样的问题也没有为使用 graphQL 的 Node 应用程序得到任何解决方案 【参考方案1】:

您可以使用 AOP 根据 graphql 方法设置事务名称。如下所示。

【讨论】:

那会怎样,你能展示一个代码示例吗?这些不是不同的 http 端点吗? 你可以这样试试。希望它可能会有所帮助:) ` @Aspect @Component public class NewRelicGraphQLAspect @After("isGraphQLRequest()") public void doSecurityCheck(JoinPoint point) String methodName = point.getSignature().getName(); NewRelic.setTransactionName("GraphQL", methodName); @Pointcut("within(com.example.server.graphql.resolver..*)") private void isGraphQLRequest() `

以上是关于Newrelic:GraphQL 查询解析器作为单独的 Web 事务的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL。如何编写解析器

如何使用 apollo / graphql 实现节点查询解析器

GraphQL 解析器问题

GraphQL:字段解析器未在订阅查询中触发?

嵌套查询/解析器时的 GraphQL.js 订阅响应错误

在 graphql 解析器中从 mySQL 查询现有的链接表?