When trying to install the AppDynamics package for monitoring a Node.js application, our Webpack build process is not able to import a handful of dependencies. Specifically, the errors output are:
WARNING in ./node_modules/appdynamics/lib/core/agent.js 445:8-28 require.main.require is not supported by webpack. @ ./node_modules/appdynamics/index.js 1:17-44 @ ./server.ts ERROR in ./node_modules/appdynamics-zmq/lib/index.js Module not found: Error: Can't resolve '../zmq' in '.../my-app/node_modules/appdynamics-zmq/lib' @ ./node_modules/appdynamics-zmq/lib/index.js 24:10-27 @ ./node_modules/appdynamics-zmq/index.js @ ./node_modules/appdynamics/lib/libproxy/proxy-transport.js @ ./node_modules/appdynamics/lib/libproxy/libproxy.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/appdynamics-libagent/index.js Module not found: Error: Can't resolve './appd_libagent' in '.../my-app/node_modules/appdynamics-libagent' @ ./node_modules/appdynamics-libagent/index.js 36:9-35 @ ./node_modules/appdynamics/lib/libagent/libagent-connector.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/appdynamics-native/index.js Module not found: Error: Can't resolve './appdynamics' in '.../my-app/node_modules/appdynamics-native' @ ./node_modules/appdynamics-native/index.js 29:10-34 @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/appdynamics-protobuf/index.js Module not found: Error: Can't resolve './protobuf_for_node' in '.../my-app/node_modules/appdynamics-protobuf' @ ./node_modules/appdynamics-protobuf/index.js 29:10-40 @ ./node_modules/appdynamics/lib/libproxy/proxy-transport.js @ ./node_modules/appdynamics/lib/libproxy/libproxy.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/log4js/lib/appenders/hipchat.js Module not found: Error: Can't resolve 'hipchat-notifier' in '.../my-app/node_modules/log4js/lib/appenders' @ ./node_modules/log4js/lib/appenders/hipchat.js 3:14-41 @ ./node_modules/log4js/lib/appenders sync ^\.\/.*$ @ ./node_modules/log4js/lib/log4js.js @ ./node_modules/appdynamics/lib/core/logger.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/log4js/lib/appenders/loggly.js Module not found: Error: Can't resolve 'loggly' in '.../node_modules/log4js/lib/appenders' @ ./node_modules/log4js/lib/appenders/loggly.js 3:11-28 @ ./node_modules/log4js/lib/appenders sync ^\.\/.*$ @ ./node_modules/log4js/lib/log4js.js @ ./node_modules/appdynamics/lib/core/logger.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/log4js/lib/appenders/mailgun.js Module not found: Error: Can't resolve 'mailgun-js' in '.../my-app/node_modules/log4js/lib/appenders' @ ./node_modules/log4js/lib/appenders/mailgun.js 34:14-35 @ ./node_modules/log4js/lib/appenders sync ^\.\/.*$ @ ./node_modules/log4js/lib/log4js.js @ ./node_modules/appdynamics/lib/core/logger.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/log4js/lib/appenders/smtp.js Module not found: Error: Can't resolve 'nodemailer' in '.../my-app/node_modules/log4js/lib/appenders' @ ./node_modules/log4js/lib/appenders/smtp.js 4:13-34 @ ./node_modules/log4js/lib/appenders sync ^\.\/.*$ @ ./node_modules/log4js/lib/log4js.js @ ./node_modules/appdynamics/lib/core/logger.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts ERROR in ./node_modules/log4js/lib/appenders/slack.js Module not found: Error: Can't resolve 'slack-node' in '.../node_modules/log4js/lib/appenders' @ ./node_modules/log4js/lib/appenders/slack.js 2:12-33 @ ./node_modules/log4js/lib/appenders sync ^\.\/.*$ @ ./node_modules/log4js/lib/log4js.js @ ./node_modules/appdynamics/lib/core/logger.js @ ./node_modules/appdynamics/lib/core/agent.js @ ./node_modules/appdynamics/index.js @ ./server.ts
Our project is set up with:
- Webpack v4.29.0
- Node.js v11.0.0
- Appdynamics v4.5
The Appdynamics usage is at the top of our server file as:
// AppDynamics monitoring require("appdynamics").profile({ controllerHostName: *** controllerPort: 443, controllerSslEnabled: true, accountName: **** accountAccessKey: *** applicationName: *** tierName: *** nodeName: '01' });
And our Webpack configuration is:
const path = require('path'); const webpack = require('webpack'); module.exports = { entry: { server: './server.ts' }, resolve: { extensions: ['.js', '.ts'] }, target: 'node', mode: 'development', // this makes sure we include node_modules and other 3rd party libraries externals: [/node_modules/], output: { path: path.join(__dirname, 'dist'), filename: '[name].js' }, module: { rules: [{ test: /\.ts$/, loader: 'ts-loader' }] }, plugins: [ ] };
So far we have tried downgrading the Webpack version, downgrading the Node environment to 10.15, and using other import methods for the AppDynamics package, but this seems like an issue internal to the Appdynamics library?
Has anyone experienced anything similar? Or had success using the Appdynamics node package with Webpack?
Hi Cody,
Could you try adding "appdynamics" to the externals array? Let me know if that helps.
I attempted to use the AppD NodeJS agent to monitor a single-page application (SPA) built on NodeJS using React - webpack . However, since these SPAs only use NodeJS as a building block and the communication between the frontend and backend is direct (not via the frontend server), the AppD BRUM monitoring is more suitable than the NodeJS agent for monitoring the necessary metrics.
Hi Cody,
Could you try adding "appdynamics" to the externals array? Let me know if that helps.
Thank you Kyle, that did the trick!
can you tell m e external arrays means plz ?
@Anonymous wrote:
Thank you Kyle, that did the trick!
4.5.16 agent has the fix for this . Tested
I updated my externals array in webpack.base.babel.js as shown:
That made webpack happy, but when I try to run the app it crashes and I see this in my console:
I'm trying to evaluate AppDynamics, but I can't even install it properly. Please tell me what to do to fix this!
Thanks!
Hi J.R.,
I believe externals is an array of module names, but more importantly you can skip it altogether with the following: https://stackoverflow.com/a/41063795
Let us know if that helps!
The other fix I see is as below:
ensure you're installing the 4.5.11 or higher version of the agent (@latest will work)
Hi All,
I am also facing a similar problem, all i am doing is adding the dependency as below in my package.json and it fails with the error shown below.
"axios": "^0.18.0", "appdynamics": "^4.3.7", "d3-axis": "^1.0.12", "d3-geo": "^1.11.3",
Error:
./node_modules/appdynamics-zmq/lib/index.js Module not found: Can't resolve '../zmq' in 'Drive:\myapp\mymodule\node_modules\appdynamics-zmq\lib'
Thank you!