AppDynamics Node.js Agent native dependencies and their environments
The AppDynamics Node.js Agent has multiple native dependencies which are keyed to particular environments. As such, the Agent works somewhat differently than other NPM packages.
For example, when downloading our package from NPM, it will request a dependency appdynamics-native which itself will in turn download an artifact to install that will work only for a particular environment. As we want to support multiple environments, we need some way to distribute multiple artifacts for each dependency; one for each unique environment.
Generally, dependency artifacts are matrixed on Node.js major version, platform, and architecture. This means that the same dependency has many different potential artifacts, depending on the automatically detected values of the Node.js version, platform, and architecture.
The most important operational implication of this is that users must install the agent within an environment which exactly matches the target deployment environment, otherwise they will be deploying an agent bundle that will not load properly. We see this scenario in many CI/CD pipelines, where the build server is in important ways set up differently than the deployment servers/containers, and needs to be adjusted.