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

Best option for monitoring multiple processes in Node.js (PM2)

Dustin.Aleksiuk
New Poster

We have a Node.js application that we monitor with AppDynamics using the "proxyless" method. It works fine, except that since each independent process that we fire up using PM2 shows up as a separate node or application in the dashboard. We want each server to show up as as single application, not as 4 applications.

 

From what I've read and determined, we have two options. I'd like some advice on the best course of action.

 

Option 1: Install and use a single Java AppDynamics proxy that all processes point to. We had some issues with the Java proxy so we went with the proxyless option, but we didn't try very hard to overcome whatever the issues were. This option seems like the most correct approach.

 

Option 2: Start our Node.js app and launch AppDynamics in the proxyless mode, and then programatically launch the other processes. I'm not a fan of this since PM2 manages our processes really nicely. I'm also not sure what AppDyanamics will do with 4 processes running inside of PM2. However this option allows us to do everything in software and not mess with our server templates.

 

If anyone has any comments that would guide us in our approach, I'd much appreciate it. Experimenting is time consuming.

2 REPLIES 2

Kyle.Furlong
AppDynamics Team (Retired)

Hi Dustin,

 

Aggregating your Node.js processes into logical groupings is done with the "Application" and "Tier" concepts in AppDynamics. You seem to be working only with the "Node" concept so far. Typically we would have a Node per Node.js process, and those would be grouped into a single Tier at least for a single server, but usually for a group of servers with the same codebase. This Tier would be a member of a broader Application, with different codebases talking with each other to serve a common business need.

 

Does that topology/taxonomy make sense? Practically speaking, I think you just need to assign these Node.js processes to the same tier and app in AppD. You can accomplish this with the applicationName and tierName config values in Node.js.

 

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.

Thanks Kyle. I think maybe the problem on our end is our definition of a node. I talked to our operations team and I think they have other opinions on how they want to organize things, and they'd prefer that a "node" be a physical server.

 

We also need to understand the licensing implications of breaking things up this way.

 

I appreciate your response. It sounds like we're on the right track from your perspective. As a developer, I personally like having my Node.js processes be seperate in AppDynamics since I think of them as separate and independent chunks.