In this blog – Challenges of Monitoring, Tracing and Profiling your Applications runing in “The Cloud” -I discussed the challenges of monitoring, tracing and profiling applications running in the Cloud. This blog describes an approach of how to solve those challenges with Dynatrace in a GigaSpaces Cloud Environment.
The GigaSpaces Cloud Environment
The application, acting as the IMDG (In Memory Data Grid) and other services client, uses a single proxy to access the IMDG and the deployed services within the GigaSpaces Service Container (GSC). These are handling the incoming requests and scale automatically if needed
With Dynatrace we can define Sensor Packs for the server and client interfaces to instrument those calls on both sides (Application and Service). In addition to monitoring the interface methods, Dynatrace provides out-of-the box configurations for the major Java & .NET Application Frameworks like Java Servlets, JMS, JDBC, ASP.NET, etc. Capturing diagnostics information for every single transaction – starting at the Applications End User Interface end point (e.g.: Servlets) throughout the Cloud infrastructure (including the Cloud Service API and its IMDG) – enables root cause analysis in a distributed and highly dynamic environment like GigaSpaces
How to deploy Dynatrace on the cloud with GigaSpaces
Deploying Dynatrace on the cloud with GigaSpaces does not require any installation on the local machine or local deployment. The Dynatrace Server can be deployed as an additional virtual machine in your GigaSpaces Environment. The GigaSpaces Dynatrace deployment comes with a pre-configured Dynatrace System Profile for the GSC and GSM (GigaSpace Server Manager). The System Profile is configured to capture Java Servlets, Web Services, Exceptions, JMS and the GigaSpace IMDG Service Interface calls.
When deploying Dynatrace as an additional component the deployed client application and the GSC will automatically be configured to load the OneAgent and connect to the Dynatrace Server running in the same cloud environment. Once all components are deployed, Dynatrace automatically traces every single transaction executed in the application including all service interactions between the application and the GigaSpaces IMDG Services.
GigaSpaces deployment configuration for the Dynatrace Server
The following cloud application configuration deploys Dynatrace 3.0 Server as a raw machine with an elastic-ip address:
The deployScript downloads the Dynatrace Software from the cloud repository (S3) and extracts the zipped Dynatrace Software , installs it and starts the Dynatrace server. On the GSM and GSC machines we additionally deploy the OneAgent library and configure the necessary JAVA_OPTIONS via a pre-startup init script:
The init script configures the OneAgent and maps to the Dynatrace Server via the elastic-IP: EXPORT EXT_JAVA_OPTIONS='-agentpath:/export/home/gsadmin/dynatrace/dynatrace-3.0/agent/lib/libdtagent.so=name=GSC,server=xxx.xxx.xxx.xxx'
Deploying the Configuration with GigaSpaces
Via the GigaSpaces Cloud Console Web Frontend, we can now deploy a new application using the cloud application deployment configuration that includes Dynatrace settings.
Automatically adjust to Cloud Dynamics
With Dynatrace’s ability to dynamically monitor additional machines, new virtual instances of Grid Containers are automatically detected as they get deployed.
Monitoring Results with Dynatrace for GigaSpaces
GigaSpaces offers its own UI to monitor the activity in the different IMDG instances and the services deployed into the GSC. The following illustration shows the statistics tab that gives us an overview about how many calls there were to the individual IMDG Service instance
With Dynatrace we can now extend this by not only looking at the count statistics on the IMDG instance but actually looking at each individual call that was made by the client application, how long the execution took and where time was spent. In addition to these metrics, we can define a Dashboard that gives us a good overview of the GigaSpaces infrastructure including transaction times, CPU, Memory, GC Activities and the extended view into the Service Layer
With dynaTrace’s PurePath technology it is now possible to not only see the activity on the service layer but also identify the originating end-user request and the activity inside the service implementation.
A deployed Web Application uses the IMDG running within the GSC to store and retrieve the data for the application. With Dynatrace we can see the IMDG interactions for every single web request:
Additionally, we get the PurePath’s on the Server Side that implements these service calls like write and readMultiple:
Monitoring, tracing and profiling for Applications running in Cloud Environments – like GigaSpaces – is no longer a missing feature in this new evolving virtual world. They key to success is that a solution like Dynatrace in an environment like GigaSpaces fulfills the following criteria
- Easy Deployment
- Easy Configuration
- Easy Analysis
With the Dynatrace and GigaSpaces integration all these requirements are met:
- Deployment can be done as an additional raw-machine and with an additional setup script step on the application servers
- The basic configuration is already provided by Dynatrace and GigaSpaces. All Sensor Packs are in place and ready to use to capture the necessary information
- Analysis has been made easy with the Dynatrace Dashboard feature that offers automatic analysis of the captured data providing the ability to drill down into individual problematic transactions