We have a POC customer having all components in the system with identical process name (node.js, functionalities are wrapped in different modules but all called sl_run.js), and they found using DT_CLUSTER_ID need to perform the setup on individual machines, and they suggest if we can have a UI that allow them to group the nodes instead.
We will allow to define an arbitrary environment variable to distinguish the different groupings in such a case. Would that solve the problem?
What makes these processes different? Different configuration? Is the run.js a container or launcher similar to pm2?
It is important to use identifying information available in the host/process itself (e.g. command line or environment variable)to allow automatic deployment.
here's some more detail about the problem.
1. problem: sl-run.js on host c-3 is misgrouped into service group _sl-run.js:80
a) click sl-run.js on host c-3 to edit the service name but it will redirect to edit service group _sl-run.js:80.
b) this problem affects all report and data statistics, report, performance KPI, smart topology, ...
a) why is "edit" missing once it's grouped replaced by "edit service group"?
b) how to remove sl-run.js on c-3 from service group?
Hi please check the documentation on service and process group detection.
The short version is that services "always" act as "groups". If you deploy the same application on multiple hosts we assume it belongs to the same application.
However it is important to understand that this grouping is not a "grouping" feature at all. It designates a single clustered version of the customers functionality and has impact on monitoring, alerting, FDI and our internal causation and reasoning. It is something that the Dynatrace OneAgent needs to decide immediately once it sees a process and it needs to be stable across process restarts. It is the identity of the process and the application rather than a grouping.
You can customize this as is described in the documentation. The trick is to tell Dynatrace that the different processes really are different. We are also extending this to make it more convenient. We will allow to customers to define a arbitrary environment variable as the process groups identifier.
That being said launchers typically break that logic. sl-run.js is the strong loop superviser launcher. Are you launching different applications on the different hosts? If we were to add support to automatically identify the actually started js file and group based on this, would that solve your issue?
Discussed with the customer, and their second level script is also using the same naming. But what happen to them is the same services are using same folder structure on different machine. Is it possible to use the folder name of the sl-run.js reside as the rule to define the service group.
Actually if sl-run.js is in different directories and has no package.json next to it it should already be differentiated based on directories. please contact me directly and let's talk about it.