弹性APM和NestJS不区分graphql查询

弹性APM和NestJS不区分graphql查询,graphql,nestjs,apollo-server,apm,elastic-apm,Graphql,Nestjs,Apollo Server,Apm,Elastic Apm,我正在将弹性apm节点包添加到我们的nestjs后端。我正在使用nestjs的graphql特性。因此,所有请求在弹性中合并为/graphql 应该是这样吗?我认为,由于apollo server express受elastic apm节点的支持(nestjs也使用该节点),因此它应该能够更好地显示它。我错过什么了吗 更新 graphql功能是使用用于nestjs的文档设置的:这基本上是我使用的他们推荐的设置。如果不知道nestjs和graphql是如何一起使用的,也不知道nestjs本身使用的

我正在将弹性apm节点包添加到我们的nestjs后端。我正在使用nestjs的graphql特性。因此,所有请求在弹性中合并为
/graphql

应该是这样吗?我认为,由于apollo server express受elastic apm节点的支持(nestjs也使用该节点),因此它应该能够更好地显示它。我错过什么了吗

更新


graphql功能是使用用于nestjs的文档设置的:这基本上是我使用的他们推荐的设置。

如果不知道nestjs和graphql是如何一起使用的,也不知道nestjs本身使用的Apollo服务器的哪些部分,很难说。看看我正在使用的nestjs的graphql特性的一个小示例,会很有用

这里有几个数据点可以帮助您缩小范围。此外,在代理存储库中打开或打开可能会让更多人看到这一点

Apollo Server的弹性APM instrumentation通过包装
Apollo Server core
模块的
runHttpQuery
功能来工作,并且

当代理运行时,它会运行一些代码,为事务设置默认名称

if(传输图路径){
var name=querys.length>0?querys.join(“,”):“未知的GraphQL查询”
if(trans.req)var path=getPathFromRequest(trans.req,true)
var defaultName=name
defaultName=path?defaultName+'('+path+'):defaultName
defaultName=operationName?operationName+''+defaultName:defaultName
事务处理setDefaultName(defaultName)
trans.type='graphql'
}
在您的应用程序中,要么没有设置
\u graphqlRoute
属性,要么上面的重命名代码做了一些奇怪的事情,要么出现了关于NestJS的事情,并在使用上面的代码命名事务后对其进行重命名


更具体地了解你在做什么将有助于人们缩小你的问题范围。

更新了问题,并提供了一个链接,指向我使用的是哪种graphql设置。@theva虽然这是一个有用的教程,但它非常大且通用——你是否碰巧在GitHub的某个地方有一个嵌套站点/应用程序的单独示例?