Comments (12)
@Blankll I responded to all the issues you logged except for this. Can you update your example app to use dataloader so I can check out what's going on around losing context with dynamo?
from newrelic-node-apollo-server-plugin.
Jira CommentId: 138941
Commented by revans:
It looks like our sync doesn't load all comments. this one is the most relevant thus far #215 (comment)
from newrelic-node-apollo-server-plugin.
Hi, @Blankll thanks for the bug report. This seems related to other problems, and it would help if we can gather more information about what is happening.
For issues like this and other related issues, (newrelic/node-newrelic-aws-sdk#145, newrelic/node-newrelic-aws-sdk#145 newrelic/node-newrelic-aws-sdk#146 and newrelic/node-newrelic-aws-sdk#147), I recommend leveraging our support team over at support.newrelic.com which can help deep-dive into solving the problem. They will also ask to collect the necessary information which may or may not be sensitive (such as logs).
from newrelic-node-apollo-server-plugin.
Hi @jordigh the other 3 issues are more about missing some information in Span, but this one is different, I think this one is because this plugin currently hasn't compatible with dataloader
or dataloader
should also need to instrument, it is not some information missing in Span, it does not record the DynamoDB call Span that triggered in dataloader at all
from newrelic-node-apollo-server-plugin.
@Blankll if you can provide reproduction cases that would be helpful. If you're not comfortable doing that, as @jordigh suggested you should go through support.newrelic.com and they can help deep dive.
from newrelic-node-apollo-server-plugin.
Hi @jordigh @bizob2828 this repo has the sample to simulate issue #145, issue #146, and issue #147, please have a check
from newrelic-node-apollo-server-plugin.
Much appreciated @Blankll. We will take a look internally and get back to you.
from newrelic-node-apollo-server-plugin.
I don't think this issue is specific to DynamoDB, I believe it's specific to Dataloader itself and the way it executes all datastore queries as a batch: https://github.com/graphql/dataloader#batching
With this plugin enabled, New Relic database traces misreport time spent loading data within dataloader batch loading functions by a fairly wide margin:
I can confirm the 762ms total load time is accurate based on browser timings of this same GraphQL resolver query:
This also fails to list a Postgres select
within each of the resolve.ApolloServer
function calls which each correspond to a batch loader function in a Dataloader class.
Since Dataloader uses process.nextTick
this plugin (or the newrelic package, maybe?) might need to account for that. See: https://github.com/graphql/dataloader/blob/588a8b6c6391aad042b369f10dc440c7e0458312/src/index.js#L232-L246
from newrelic-node-apollo-server-plugin.
@olivierlacan if you can create a sample app that reproduces this problem we'd be able to triage the issue much easier. Do you think that's possible? I suspect it's an issue with async context propagation and perhaps adding new behavior for this dataloader
from newrelic-node-apollo-server-plugin.
https://issues.newrelic.com/browse/NEWRELIC-6377
from newrelic-node-apollo-server-plugin.
I removed the bug flag as we technically don't support the graphql dataloader plugin
from newrelic-node-apollo-server-plugin.
Jira CommentId: 199168
Commented by jgutierrezhermoso:
I'm unable to reproduce this issue. I built a sample app using Apollo, Koa, the Dataloader and DynamoDB, and as far as I can tell, everything is working fine. Distributed traces are showing up with DynamoDB in them.
newrelic/newrelic-node-examples#68 (comment)
from newrelic-node-apollo-server-plugin.
Related Issues (20)
- Capture metrics for every field being requested in a graphql query HOT 2
- Add official support for `apollo-server-micro`
- Internal server error for some graphql-upload requests HOT 6
- HTTP 502 timeout on graphql query is not showing up in distributed trace for developer troubleshooting HOT 1
- TypeError: (0 , apollo_server_plugin_1.default) is not a function HOT 4
- Apollo Server 4 Compatibility HOT 13
- Plugin support for typescript in apollo server 4 HOT 1
- Bug: 'apollo-server-plugin-base' module is not used in Apollo server v4, but required by newrelic HOT 7
- `expected_status_codes` newrelic config option not working for apollo errors. HOT 7
- Not supported in @apollo/[email protected] HOT 2
- newrelic/esm-loader.mjs breaks Prisma types in ESM/Typescript instrumentation HOT 4
- Add an option to opt-out of reporting errors to NewRelic HOT 4
- apollo plugin: Drop Node 14 HOT 1
- apollo plugin: add node 20 HOT 1
- Missing typings for optional configuration HOT 4
- cannot see custom attributes on new relic ui for graphql operations in a distributed trace HOT 2
- Error when using createNewRelicPlugin HOT 5
- Add error extensions as custom attributes on errors HOT 1
- Similar metrics on every apollo server request HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from newrelic-node-apollo-server-plugin.