Web applications consist of web pages that are served by web servers and web containers, for example Tomcat. Web and mobile applications are built upon services that process requests like web requests, web service calls, and messaging. Such "server-side services" can take the form of web services, web containers, database requests, custom services, and more. Services may in turn call other services such as web services, remote services, and databases services.
Processes are essentially containers that host services. When you look at processes you see topology information, whereas services give you code-level insight. For example, you might have a Tomcat process that hosts a web application in the form of a server-side service. While processes are host-centric, associated with a single machine in your environment, services are request-centric and therefore typically span across multiple machines in a data center.
How services fit into the complete picture
When thinking about monitoring your application, it's helpful to remember that Dynatrace monitors all of your application's services, processes, and infrastructure. By evaluating all such components collectively, Dynatrace is able to pinpoint exactly how each service contributes to the performance of your application. For example, in Java monitoring, we see your host, JVM and processes as a whole. That's why we easily discover garbage collection issues that affect the services running in a JVM.
Dynatrace automatically detects and names your applications' server-side services based on basic properties of your application deployment and configuration.
Dynatrace monitoring of services extends all the way down to the monitoring of discrete methods. By monitoring the performance of individual methods, we can offer you deeper insight into the performance of the services that drive your application.
Dynatrace monitors all the individual components that applications are built upon: web requests, database requests, processes, services, and more. It's these individual components working together that collectively deliver what your end users view as a complete application. Dynatrace identifies and tracks each of these individual application components at a highly granular level. Dynatrace doesn't simply identify that a service is running on a server in a process but rather identifies all the details of these components. For example, Dynatrace can show you which of your web services is running on your Tomcat application server and how your Tomcat server's performance is affected by its host, or even your VMware vCenter server. In this way, Dynatrace gives you insight into the performance of your unique application stack, including all its components and connections.
To provide you with a continuous view of service flows Dynatrace uses the following means to track transactions across tiers:
x-dynatraceheader for HTTP requests
dtdTraceTagInfocustom property for Java-based messaging services
- A unique key for message queues (based on message properties)
How your service landscape can be viewed
On your home dashboard, click the Services tile to view all the services in your environment that are monitored by Dynatrace. Dynatrace offers sophisticated means for analysis that enable you to gain insight into your server-side-services.
Dynatrace even enables you to visualize the complexities of your application stack and delivery chain with Smartscape technology. In a Smartscape visualization, you can see which individual web page calls which specific web server, the application server that receives the resulting web requests, and where the resulting web request service calls are sent.