Docker Solution Briefs enable you to integrate the Docker Enterprise with popular 3rd party ecosystem solutions for networking, load balancing, storage, logging and monitoring, access management, and more. This Solution Brief documents how to deploy Dynatrace to monitor the performance of Docker containers in a Docker Enterprise MKE Cluster environment.
Docker Enterprise includes Docker Cluster, a tool for for lifecycle management of Docker clusters. With Cluster, you use a YAML file to configure your provider’s resources. Then, with a single command, you provision and install all the resources from your configuration. The Docker Enterprise cluster was created using ‘docker cluster’ tool on Azure Cloud for this solution brief.
Note
Information on Dynatrace is provided by Docker as a known, working configuration for Docker Enterprise 3.0. Docker does not provide the product support for Dynatrace. Please contact the vendor approved support methods if you have any questions or problems with Dynatrace.
Dynatrace is an artificial intelligence (AI) powered, full stack, automated Application Performance Management and Infrastructure Monitoring solution for programs running on-premises and in the cloud. Dynatrace manages the availability and performance of software applications and the impact on user experience in the form of deep transaction tracing, synthetic monitoring, real user monitoring, and network monitoring.
Dynatrace supports are large array of technologies. Some of the most popular ones are:
AMP, ASPNET Core, AWS CodePipeline, AWS Elastic Load Balancing (ELB), AWS Lambda, ActiveMQ, Akka, Amazon DynamoDB, Amazon EC2, Amazon Elastic Block Store (EBS), Amazon RDS, Amazon S3, Amazon Web Services, Android, Android app monitoring, AngularJS, Ansible, Apache Cordova, Apache HTTP Server, Azure App Service, Azure Container Services (AKS), Azure Virtual Machines, Azure Web Apps, Bitbucket, C, C++, CakePHP, Cassandra, Citrix, Cloud Foundry, CouchDB, Couchbase, DC/OS, Demandware, Docker, Drupal, Elasticsearch, Erlang, Eureka, GlassFish, Golang, Google Cloud Platform, GraalVM, Grails, Hadoop, Heroku, HipChat, Hyper-V, Hystrix, IBM Bluemix, IBM Cloud, IBM Commerce, IBM HTTP Server, IBM WebSphere, IBM z/OS, JBoss, Java, Jetty, Jira, Joomla, Jython, Kubernetes, Laravel, Magento, Memcached, Mesos, Microsoft Azure, Microsoft IIS, Microsoft SharePoint, MongoDB, MySQL, .NET, .NET Core, Netflix OSS, Netty, Nginx, NodeJS, OpenStack, OpenTracing, Openshift, OpsGenie, Oracle Cloud, Oracle DB, Oracle HTTP Server, Oracle WebLogic, Oracle eBusiness, PHP, PagerDuty, Perl, Pivotal, Pivotal Cloud Foundry, Play Framework, PostgreSQL, Python, RabbitMQ, Reactjs, Red Hat, Redis, Ruby, SAP, SAP Cloud Platform, SAP Hybris, SQL Server, Salesforce Commerce Cloud, Scala, ServiceNow, Sitecore, Slack, Spark, Splunk, Spring, Symfony, TomEE, Tomcat, Trello, VMware, VMware Cloud on AWS, Varnish, VictorOps, Webhooks, Wildfly, Windows Messaging, WordPress, iOS, iOS, jQuery, xMatters
See also
Refer to Dynatrace Supported technologies for a complete updated list of the technologies it detects and supports.
The Dynatrace Monitoring environment consists of a Dynatrace server, Dynatrace agents and Dynatrace Activate (proxy).
Note
For more details on the Dynatrace supported Operating Systems and environments refer to Dynatrace OneAgent Supported Environments.
Dynatrace Activegate is an optional proxy you can install between the Dynatrace agents and the Dynatrace Server (SaaS or on-premise).
Note
Refer to Dynatrace Activegate for more details on when and why you should install it.
In this Solution Brief the Dynatrace SaaS server will be used. The Dynatrace agents will be deployed and configured to send their monitoring data to the Dynatrace SaaS Server.
This Solution Brief was tested with the following Docker Enterprise components:
This Docker Enterprise environment in this implementation guide had 6 nodes (1 manager and 5 workers).
Refer to Docker Enterprise Best Practices and Design Considerations reference architecture for details.
A Dynatrace SaaS account is required. You can register for a free 15-day trial Dynatrace account on https://www.dynatrace.com/.
To register for a free 15-day trial Dynatrace account:
From a web browser, navigate to the URL https://www.dynatrace.com/.
Click on the Free trial button.
Select your region, click on the radio button Yes, I agree to the above terms and conditions and then click on the Create account button.
To discover your infrastructure and collect the events and metrics, the Dynatrace agent needs to be deployed on all the Docker Enterprise MKE nodes.
The Dynatrace agent has a startup dependency. It must be started and fully initialized on the Docker node before any of the processes you want to monitor in order for it to capture all of the required metrics for it to perform the deep process monitoring. If the Dynatrace agent is started after processes that you want monitor, you will only be able to see a limited set of metrics such as CPU or memory consumption. You would have to restart those processes in order for the Dynatrace agent to capture all of the required metrics.
There are 3 ways to deploy the Dynatrace agent on a Docker node in a Docker Enterprise MKE cluster:
Because of the Dynatrace startup dependency, running the Linux Dynatrace agent as a docker container or a Kubernetes DaemonSet will not allow the Linux Dynatrace agent to be started and fully initialized before the Docker Enterprise MKE cluster containers, which will result in limited metrics on the Docker Enterprise MKE cluster containers. Therefore, to perform the deep monitoring of the Docker Enterprise Cluster, installing the Dynatrace agent directly on the Docker Enterprise MKE nodes is recommended before Docker Enterprise is installed using a configuration management tool such as Chef, Puppet, Terraform, Ansible, Cloud Init script, etc.
In this Solution Brief the Dynatrace agent will be deployed directly on the Docker Enterprise MKE nodes. If you wish to deploy the Linux Dynatrace agent as a Docker container, refer to the Dynatrace documentation Dynatrace OneAgent as a Docker container or Deploy OneAgent on Kubernetes.
Deploying Dynatrace OneAgent via DaemonSet on a MKE is straightforward. There are few steps need to follow:
The following information is required for this deployment:
The operator and oneagent pods will run in the dynatrace namespace
service account with cluster role permission to access the Kubernetes API endpoint URL
the Kubernetes API endpoint URL
From the Dynatrace Web UI, navigate to the Deploy Dynatrace page by clicking on the Deploy Dynatrace link (bottom left). Then click on the Start installation button.
Copy the wget
command which downloads the Dynatrace agent
installation bits by clicking on the Copy button to the right of
the command.
Copy the command to install the Dynatrace agent by clicking on the Copy button to the right of the command.
If Docker Enterprise was installed prior to installing the Dynatrace agent you will need to reboot the machine.
Repeat the above Dynatrace agent installation on all of the Linux Docker nodes.
Note
You should automate the installation of the Linux Dynatrace agent before Docker Enterprise is installed on the node using a configuration management tool such as Chef, Puppet, Terraform, Ansible, Cloud Init script, etc.
From the Dynatrace Web UI, navigate to the Deploy Dynatrace page by clicking on the Deploy Dynatrace link (bottom left). Then click on the Start installation button.
iwr
command from a Powershell command prompt to
download the Windows Dynatrace agent installation bits. Substitute
the text dynatrace-oneagent-windows-download-link with the
Windows Dynatrace agent download Link
you copied in the previous
step. > iwr -outfile install_oneagent.exe -uri '**dynatrace-oneagent-windows-download-link**'
Example:
.. image:: ../_images/dynatrace/run_dynatrace_oneagent_installer_iwr_command.png
:width: 100%
:alt: Run the iwr command
install_oneagent.exe
command from a Powershell
command prompt to install the Windows Dynatrace agent. .\install_oneagent.exe /quiet /norestart
Example:
.. image:: ../_images/dynatrace/run_dynatrace_oneagent_installer_windows_command.png
:width: 100%
:alt: Run the iwr command
.. Note::
The **install\_oneagent.exe** command runs detached in the background.
> net start | findstr /c:"Dynatrace OneAgent"
Example:
.. image:: ../_images/dynatrace/display_dynatrace_oneagent_windows_service.png
:width: 100%
:alt: Run the iwr command
If Docker Enterprise was installed prior to installing the Dynatrace agent you will need to reboot the machine.
Repeat the above Dynatrace agent installation on all of the Windows Docker nodes.
Note
You should automate the installation of the Windows Dynatrace agent before Docker Enterprise is installed on the node using a configuration management tool such as Chef, Puppet, Terraform, Ansible, Cloud Init script, etc.
You can display the Dynatrace agents from the Dynatrace Web UI Deployment Status page.
You can configure and customize Dynatrace to monitor technologies and clouds and customize other settings.
You can monitor your infrastructure and applications using out of box dashboards and create your own.
Dynatrace automatically detects performance anomalies and generates “problems” which you can view. You can display detailed information on a problem including the services impacted and the root cause.
Dynatrace automatically discovers your full technology stack and detects the dependencies between websites, applications, services, processes, hosts, networks, and cloud infrastructure within minutes. Your application topology is then visualized in an interactive infographic.
See also
Refer to Dynatrace Supported technologies for a complete updated list of the technologies it detects and supports.
Dynatrace provides built-in diagnostic tools for detecting and analyzing performance problems in your application environment.
You can display an overview of all the hosts and drill down to see the details of a specific host.
Dynatrace provides you with a complete picture of your Dockerized environments. Dynatrace provides container-centric monitoring perspectives on Docker images, services, and nodes.
You can display an overview of all Docker nodes and you can drill down to a specific Docker node to monitor CPU, Memory, Network and Disk utilization.
You can drill down to a specific Docker container.
See also
Refer to the following links for additional information: