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're seeing 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.
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, Dynatrace sees your host, JVM, and processes as a whole. That's how we can easily discover garbage collection issues that affect the services running in a JVM. Also Dynatrace can show you which of your web services is running on your Tomcat application server for example and how your Tomcat server's performance is affected by its host, or even your VMware vCenter server.
Dynatrace automatically detects and names your applications' server-side services based on basic properties of your application deployment and configuration.
Dynatrace offers sophisticated means for analysis that enable you to gain insight into your server-side-services. 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.
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
Dynatrace 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.
- Service analysis types
- Response time distribution and outlier analysis
- Service response time hotspots
- Service flow
- Service flow filtering
- Filter monitoring data via request attributes
- Service backtrace
- PurePath visualization
- PurePath capture errors
- Context-specific drill down
- Analyze individual service instances
- Memory profiling
- Service monitoring settings
- Customize service naming
- Set up request naming using request attributes
- Configure service error detection
- Capture request attributes based on web request data
- Capture request attributes based on method arguments
- Define custom services
- Define queue messaging consuming custom services
- Custom API definitions