Dynatrace automatically tracks processes and merges them into process groups. A “process group” is a logical cluster of processes that belong to the same application or deployment unit and perform the same function across multiple hosts. Process groups are key building blocks of most modern web-based applications.
Dynatrace automatically detects application types such as Tomcat, JBoss, Apache HTTP Server, MongoDB, and many others technologies. To create process groups, Dynatrace uses specific process properties. For Tomcat, Dynatrace uses
CATALINA_BASE to distinguish between different Tomcat clusters. For JBoss, Dynatrace uses
JBOSS_HOME and the JBoss cluster configuration. For generic Java processes Dynatrace uses the JAR file or the main class used to start the process. There are also many specialized detection mechanisms. For example, Dynatrace can detect:
- IBM WebSphere clusters and domains
- Oracle WebLogic clusters and domains
- Cassandra clusters
- Tibco BusinessWorks engines
- Kubernetes apps
- OpenShift apps
- Cloud Foundry apps
- Azure Web Apps
- And more...
On each process page you'll find the properties if you expand Properties and tags.
What does this mean for services?
Process groups are the basis for service detection, because each process group is considered to be a logical cluster or single deployment. When Dynatrace detects the "same" service in separate process groups, it treats them as separate services (e.g., one process might be used in staging and the other in production). However, if you instruct Dynatrace to merge two separate process groups into a single group, this will also result in the services on those processes being merged as well.
Which are the most important processes?
Within the Processes section of the Host page, you'll see the most important processes running on this host, categorized into process groups. In the image below, you can see various process group instances categorized along their technology types. Notice, for example, you can see at the bottom two process group instances,
nodejsWeatherImages of Node.js technology.
You can click the All processes button (see image above) to view the list of selected processes that meet at least one of the following criteria:
Processes that are well known applications:
- Java application servers (Tomcat, WebSphere, Weblogic, Glassfish, JBoss)
- All other Java applications
- All .NET applications
- Databases: MS SQL, Oracle, MySQL, Cassandra, SQL server, CouchDB, MongoDB, PostgresSQL
- Additional technologies: Node.js, PHP
- Web servers: NGINX, Apache HTTP, IIS
- Processes that use the OneAgent SDK for C/C++
Processes that have an open TCP listening port
Processes for which one of the following conditions is met for at least 3 of the last 5 one-minute intervals:
- Avg(CPU) > 5%
- Max(Memory) > 5%
- Network Traffic > 5%.
Set by user to be important. For example, by turning on log analytics for that process.
The process list provides basic information on system and network resources consumed by the process.
CPU percentage consumed by the process.
System memory percentage consumed by the process.
Network traffic observed connecting to and from the process.
Retransmitted packets in both directions compared to retransmission base in both directions.
Connectivity is a percentage of successfully established TCP sessions minus the sum of TCP connection refused (as percentage) and TCP connection timeouts (as percentage).
Why does Dynatrace not show worker processes?
If you run Apache HTTP Server, for example, you may be accustomed to seeing long lists of worker processes (see example below). Here you see numerous Apache HTTP Server processes listed on a Linux terminal. For the sake of clarity and manageability however, Dynatrace consolidates such lists into process group instances. We do this across hosts but also on individual hosts.
Customize process groups
To serve your particular needs when monitoring your processes, Dynatrace allows you to: