cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Can't see nodejs call stack

chris
Explorer

We're on a trial account, trying to identify some performance issues, but we're missing a lot of important information.

 

We're using node 7.6

 

Our snapshots do not show anything for the callstack, it's completely empty when I click on Call Graph.

 

Our DB queries list is incomplete. Those queries that are present are missing some important variables, eg

 

WHERE ?.? = ? LIMIT ?;

 

I can understand the right side of the query being anonymised, but the left?

 

In addition, I tried to submit a support request for this, and got an access denied error trying to reach the support ticket page.

 

This is not leaving the best of tastes for our first user experience of app dynamics.

1 REPLY 1

Kyle.Furlong
AppDynamics Team (Retired)

Hi Chris,

 

I'm sorry to hear that you've been having some issues with our solution. I believe I can answer each of them and hopefully get you to a better place. First though, you've definitely found the right place to receive support for a self service trial. Our full support system is only available for customers who already have paid licenses. Hopefully that explains the access denied message. It could definitely be clearer.

 

On the tech: If you take a look at the snapshot list, there will be an icon on the left hand side the looks somewhat like a page. This indicates whether the snapshot has call graph data or not. If you have the blue icon, it should have the full data—grey icon, possibly less. In either case, the BT Snapshot will have a link to the full Process Snapshot in the Summary pane of the BT Snapshot drill down. This full Process Snapshot will have all the call graph data from the full process, not the particular request encoded in the BT Snapshot. This is important because of the nature of Node.js, with all execution happening on one thread with async callbacks and scheduling. Many times, as you've already found, our algorithm for tracing the request's callbacks through the scheduler is not able to capture the convolutions, or the timing of enabling the profiler isn't able to catch the first entries of a callback chain. This can lead to the empty BT Snapshot call graph. In these cases, our best-effort data will always be in the linked Process Snapshot. Many times we find this Node.js limitation is less impactful than you might guess, as Node.js apps tend to have more issues with IO being slow (downstream services in particular), than they do with processing time or code errors. In any case, you can really dig into the code running in your app for any issues with our flame graph feature, on a longer manual Process Snapshot: https://docs.appdynamics.com/display/PRO44/Event+Loop+Blocking+in+Node.js

 

For the SQL filtering, I believe we're extra cautious give GDPR and other security concerns. In case you do need to disable filtering, that should be possible by setting the capture-raw-sql node property for the tier: https://docs.appdynamics.com/display/PRO44/App+Agent+Node+Properties

 

Please let me know if you have any other questions or concerns.

 

Regards,

Kyle

 

 

 

 

Thanks,
Kyle Furlong, Technical Lead (C++ and Dynamic Languages)




Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.