{"id":21640,"date":"2018-05-21T08:40:45","date_gmt":"2018-05-21T05:40:45","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=21640"},"modified":"2018-05-31T08:25:02","modified_gmt":"2018-05-31T05:25:02","slug":"monitoring-a-docker-on-windows-app","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/","title":{"rendered":"Monitoring a Docker-on-Windows App"},"content":{"rendered":"<p><span style=\"font-size: 20px;\">Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. <a href=\"https:\/\/www.appdynamics.com\/lp\/guided-tour-application-performance-management\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">Take the AppDynamics APM Guided Tour!<\/a><\/span><\/p>\n<p>Here at AppDynamics, we\u2019ve developed strong support for\u00a0<a href=\"https:\/\/www.appdynamics.com\/net\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">.NET<\/a>,\u00a0<a href=\"https:\/\/www.appdynamics.com\/net\/managed-windows-services\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">Windows<\/a>, and\u00a0<a href=\"https:\/\/www.appdynamics.com\/cloud-monitoring\/docker-monitoring\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">Docker<\/a>\u00a0users.<br \/>\n&nbsp;<br \/>\nBut something we haven\u2019t spent much time documenting is how to instrument a Docker-on- Windows app. In this blog, I\u2019ll show you how straightforward it is to get one up and running using our\u00a0<a href=\"https:\/\/blog.appdynamics.com\/product\/the-appd-approach-how-to-monitor-net-core-apps\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">recently announced micro agent<\/a>. Let\u2019s get started.<\/p>\n<h2>Sample Reference Application<\/h2>\n<p>Provided with this guide is a simple ASP.NET MVC template app running on an ASP.NET application on the .NET full framework. The sample application link is provided below:<\/p>\n<p><a href=\"http:\/\/46zwyrvli634e39iq2l9mv8g-wpengine.netdna-ssl.com\/wp-content\/uploads\/2018\/04\/source.zip\">source.zip<\/a><\/p>\n<p>If you have your own source code, feel free to use it.<\/p>\n<h2>Guide System Information<\/h2>\n<p>This guide was written and built on the following platform:<\/p>\n<ul>\n<li>Windows Server 2016 Build 14393.rs1_release.180329-1711 (running on VirtualBox)<\/li>\n<li>AppDynamics .NET Micro Agent Distro 4.4.3<\/li>\n<\/ul>\n<h2>Prerequisite\u00a0Steps<\/h2>\n<p>Before instrumenting our sample application, we first need to download and get the .NET micro agent. This step assumes you are not using an IDE such as Visual Studio, and are working manually on your local machine.<\/p>\n<h3>Step 1: Get\u00a0NuGet Package Explorer<\/h3>\n<p>If you already have a way to view and\/or download NuGet packages, skip this step. There are many ways to extract and view a NuGet package, but one method is with a tool called NuGet Package Explorer, which can be\u00a0<a href=\"https:\/\/www.microsoft.com\/en-us\/store\/p\/nuget-package-explorer\/9wzdncrdmdm3\">downloaded here<\/a>.<\/p>\n<h3>Step 2: Download and Extract the NuGet Package<\/h3>\n<p>We\u2019ll need to download the appropriate NuGet package to instrument our .NET application.<\/p>\n<ol>\n<li>Go to\u00a0<a href=\"https:\/\/www.nuget.org\/\">https:\/\/www.nuget.org\/<\/a><\/li>\n<li>Search for \u201cAppDynamics\u201d<\/li>\n<li>The package we need is called \u201cAppDynamics.Agent.Distrib.Micro.Windows.\u201d<br \/>\n<a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/1.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21642\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/1.png\" alt=\"\" width=\"820\" height=\"112\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/1.png 1302w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/1-300x41.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/1-768x105.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/1-1024x140.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/li>\n<li>Click \u201cManual Download\u201d or use the various standard NuGet packages.<br \/>\n<a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/2.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21643\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/2.png\" alt=\"\" width=\"820\" height=\"231\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/2.png 888w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/2-300x84.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/2-768x216.png 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/li>\n<li>Now open the package with NuGet Package Explorer.<\/li>\n<li>Choose \u201cOpen a Local Package.\u201d<\/li>\n<li>Find the location of your downloaded NuGet package and open it. You should see the screen below:<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/3.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter size-full wp-image-21644\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/3.png\" alt=\"\" width=\"734\" height=\"645\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/3.png 734w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/3-300x264.png 300w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<ol start=\"8\">\n<li>Choose \u201cFile\u201d and \u201cExport\u201d to export the NuGet package to a directory on your local machine.<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/4.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter size-full wp-image-21645\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/4.png\" alt=\"\" width=\"390\" height=\"348\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/4.png 390w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/4-300x268.png 300w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><\/a><\/p>\n<ol start=\"9\">\n<li>Navigate to the directory where you exported the NuGet package, and confirm that you see this:<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/5.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21646\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/5.png\" alt=\"\" width=\"820\" height=\"238\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/5.png 1124w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/5-300x87.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/5-768x223.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/5-1024x297.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<h3>Step 3: Create Directory and Configure Agent<\/h3>\n<p>Now that we\u2019ve extracted our NuGet package, we will create a directory structure to deploy our sample application.<\/p>\n<ol>\n<li>Create a local directory somewhere on your machine. For example, I created one on my Desktop:<br \/>\n<code>C:\\Users\\Administrator\\Docker Sample\\<\/code><\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Navigate to the directory in Step 1, create a subfolder called \u201csource\u201d and add the sample application code provided above (or your own source code) to this directory.\u00a0If you used the sample source provided, you\u2019ll see this:<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/6.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21647\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/6.png\" alt=\"\" width=\"820\" height=\"466\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/6.png 1126w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/6-300x171.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/6-768x437.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/6-1024x582.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<ol start=\"3\">\n<li>Go back to the root directory and create a directory called \u201cagent\u201d.<\/li>\n<li>Add the extracted AppDynamics micro agent components from Step 1 to this directory.<br \/>\n<a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/7.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21648\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/7.png\" alt=\"\" width=\"820\" height=\"327\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/7.png 1126w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/7-300x120.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/7-768x306.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/7-1024x408.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/li>\n<li>Edit \u201cAppDynamicsConfig.json\u201d and add in your controller and application information.<\/li>\n<\/ol>\n<pre class=\"brush:js\">  {\r\n  \"controller\": {\r\n    \"host\": \"\",\r\n    \"port\": ,\r\n    \"account\": \"\",\r\n    \"password\": \"\",\r\n    \"ssl\": false,\r\n    \"enable_tls12\": false\r\n  },\r\n  \"application\": {\r\n    \"name\": \"Sample Docker Micro Agent\",\r\n    \"tier\": \"SampleMVCApp\"\r\n  }\r\n}\r\n<\/pre>\n<ol start=\"6\">\n<li>Navigate to the root of the folder, create a file called \u201cdockerFile\u201d and add the following text:<\/li>\n<\/ol>\n<p><strong>Sample Docker Config<\/strong><\/p>\n<pre class=\"brush:sql\">FROM microsoft\/iis\r\nSHELL [\"powershell\"]\r\n\r\nRUN Install-WindowsFeature NET-Framework-45-ASPNET ; \\\r\n   Install-WindowsFeature Web-Asp-Net45\r\n\r\nENV COR_ENABLE_PROFILING=\"1\"\r\nENV COR_PROFILER=\"{39AEABC1-56A5-405F-B8E7-C3668490DB4A}\"\r\nENV COR_PROFILER_PATH=\"C:\\appdynamics\\AppDynamics.Profiler_x64.dll\"\r\n\r\nRUN mkdir C:\\webapp\r\nRUN mkdir C:\\appdynamics\r\n\r\nRUN powershell -NoProfile -Command \\\r\n  Import-module IISAdministration; \\    \r\n  New-IISSite -Name \"WebSite\" -PhysicalPath C:\\webapp -BindingInformation \"*:8000:\" \r\n\r\nEXPOSE 8000\r\n\r\nADD agent \/appdynamics\r\nADD source \/webapp\r\n\r\nRUN powershell -NoProfile -Command Restart-Service wmiApSrv\r\nRUN powershell -NoProfile -Command Restart-Service COMSysApp<\/pre>\n<p>Here\u2019s what your root folder will now look like:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/lala.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21641\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/lala.png\" alt=\"\" width=\"820\" height=\"467\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/lala.png 1128w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/lala-300x171.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/lala-768x437.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/lala-1024x583.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<h2>Building the Docker Container<\/h2>\n<p>Now let\u2019s build the Docker container.<\/p>\n<ol>\n<li>Open Powershell Terminal and navigate to the location of your Docker sample app. In this example, I will call my image \u201cappdy_dotnet\u201d but feel free to use a different name if you desire.<\/li>\n<li>Run the following command to build the Docker image:<\/li>\n<\/ol>\n<p>         <code>docker build \u2013no-cache -t \u00a0appdy_dotnet<\/code>.<\/p>\n<ol start=\"3\">\n<li>Now build the image:<\/li>\n<\/ol>\n<p>         <code>docker run \u2013name appdy_dotnet -d appdy_dotnet ping -t localhost<\/code><\/p>\n<ol start=\"4\">\n<li>Log into the container via powershell\/cmd:<\/li>\n<\/ol>\n<p>        <code>docker exec -it appdy_dotnet cmd<\/code><\/p>\n<ol start=\"5\">\n<li>Get the container IP by running the \u201cipconfig\u201d command:<\/li>\n<\/ol>\n<pre class=\"brush:bash\">C:\\ProgramData\\AppDynamics\\DotNetAgent\\Logs&gt;ipconfig\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter vEthernet (Container NIC 69506b92):\r\n\r\n   Connection-specific DNS Suffix  . :\r\n   Link-local IPv6 Address . . . . . : fe80::7049:8ad9:94ad:d255%17\r\n   IPv4 Address. . . . . . . . . . . : 172.30.247.210\r\n   Subnet Mask . . . . . . . . . . . : 255.255.240.0<\/pre>\n<ol start=\"6\">\n<li>Copy the IPv4 address, add port 8000, and request the URL from a browser. You should get the following site back (below). This is just a simple ASP.NET MVC template app that is provided with Visual Studio. In our example, the address would be: <a href=\"http:\/\/172.30.247.210:8000\/\">http:\/\/&lt;ip4-address&gt;:8000<\/a><\/li>\n<\/ol>\n<p>Here\u2019s what the application would look like:<br \/>\n<a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/8.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21649\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/8.png\" alt=\"\" width=\"820\" height=\"474\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/8.png 1400w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/8-300x173.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/8-768x444.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/8-1024x592.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<ol start=\"7\">\n<li>Generate some load in the app by clicking the Home, About, and Contact tabs. Each will be registered as a separate business transaction.Killing the Container (Optional)<\/li>\n<\/ol>\n<h2>Killing the Container (Optional)<\/h2>\n<p>In the event you get some errors and want to rebuild the container, here are some helpful commands that can be used for stopping and removing the container, if needed.<\/p>\n<ol>\n<li>Stop the container:<\/li>\n<\/ol>\n<p><code>docker stop appdy_dotnet<\/code><\/p>\n<ol start=\"2\">\n<li>Remove the container:<\/li>\n<\/ol>\n<p><code>docker rm appdy_dotnet<\/code><\/p>\n<ol start=\"3\">\n<li>Remove image:<\/li>\n<\/ol>\n<p><code>docker rmi appdy_dotnet<\/code><\/p>\n<h2>Verify Successful Configuration via Controller<\/h2>\n<p>Log in to your controller and verify that you are seeing load. If you used the sample app, you\u2019ll see the following info:<\/p>\n<h3>Application Flow Map<\/h3>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/9.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21650\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/9-1024x540.png\" alt=\"\" width=\"820\" height=\"432\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/9-1024x540.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/9-300x158.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/9-768x405.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/9.png 1600w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<h3>Business Transactions<\/h3>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/10.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21651\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/10-1024x287.png\" alt=\"\" width=\"820\" height=\"230\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/10-1024x287.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/10-300x84.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/10-768x216.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/10.png 1600w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<h3>Tier Information<\/h3>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/11.png\"><img decoding=\"async\" style=\"border:none\" class=\"aligncenter wp-image-21652\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/11.png\" alt=\"\" width=\"820\" height=\"214\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/11.png 1600w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/11-300x78.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/11-768x201.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/05\/11-1024x268.png 1024w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/a><br \/>\nAs you can see, it\u2019s fairly easy to instrument a Docker-on-Windows app using AppDynamics\u2019 recently announced micro agent. To learn more about AppD\u2019s powerful approach to monitoring .NET Core applications,\u00a0<a href=\"https:\/\/blog.appdynamics.com\/product\/the-appd-approach-how-to-monitor-net-core-apps\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">read this blog<\/a>\u00a0from my colleague Meera Viswanathan.<\/p>\n<p><span style=\"font-size: 20px;\">Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. <a href=\"https:\/\/www.appdynamics.com\/lp\/guided-tour-application-performance-management\/?utm_source=webcodegeeks&#038;utm_medium=sponsorship%20content%20syndication&#038;utm_campaign=sponsored%20post&#038;utm_content=monitoring%20a%20docker-on-windows%20app&#038;utm_term=webcodegeeks%20sponsored%20post&#038;utm_budget=digital\">Take the AppDynamics APM Guided Tour!<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here at AppDynamics, we\u2019ve developed strong support for\u00a0.NET,\u00a0Windows, and\u00a0Docker\u00a0users. &nbsp; But something we haven\u2019t spent much time documenting is how to instrument a Docker-on- Windows app. In this blog, I\u2019ll show you how straightforward &hellip;<\/p>\n","protected":false},"author":210,"featured_media":10356,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[217,497],"class_list":["post-21640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-docker","tag-monitoring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Monitoring a Docker-on-Windows App - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monitoring a Docker-on-Windows App - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-21T05:40:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-05-31T05:25:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Appdynamics\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Appdynamics\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\"},\"author\":{\"name\":\"Appdynamics\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/8aea501dc1eafa1e3adaebe457e79b95\"},\"headline\":\"Monitoring a Docker-on-Windows App\",\"datePublished\":\"2018-05-21T05:40:45+00:00\",\"dateModified\":\"2018-05-31T05:25:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\"},\"wordCount\":799,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"keywords\":[\"Docker\",\"Monitoring\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\",\"name\":\"Monitoring a Docker-on-Windows App - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"datePublished\":\"2018-05-21T05:40:45+00:00\",\"dateModified\":\"2018-05-31T05:25:02+00:00\",\"description\":\"Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Monitoring a Docker-on-Windows App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/8aea501dc1eafa1e3adaebe457e79b95\",\"name\":\"Appdynamics\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/54ee8ceba6da02df562bf9cd4c36a6b537c64d9752d8482878bdfc9813078bc2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/54ee8ceba6da02df562bf9cd4c36a6b537c64d9752d8482878bdfc9813078bc2?s=96&d=mm&r=g\",\"caption\":\"Appdynamics\"},\"description\":\"AppDynamics delivers real-time access to every aspect of your business and operational performance, so you can anticipate problems, resolve them automatically, and make smarter, more certain business decisions. Application Intelligence provides the business and operational insights into application performance, user experience and business impact of your software applications.\",\"sameAs\":[\"http:\/\/www.appdynamics.com\/\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/appdynamics\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Monitoring a Docker-on-Windows App - Web Code Geeks - 2026","description":"Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/","og_locale":"en_US","og_type":"article","og_title":"Monitoring a Docker-on-Windows App - Web Code Geeks - 2026","og_description":"Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here","og_url":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2018-05-21T05:40:45+00:00","article_modified_time":"2018-05-31T05:25:02+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Appdynamics","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Appdynamics","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/"},"author":{"name":"Appdynamics","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/8aea501dc1eafa1e3adaebe457e79b95"},"headline":"Monitoring a Docker-on-Windows App","datePublished":"2018-05-21T05:40:45+00:00","dateModified":"2018-05-31T05:25:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/"},"wordCount":799,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","keywords":["Docker","Monitoring"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/","url":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/","name":"Monitoring a Docker-on-Windows App - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","datePublished":"2018-05-21T05:40:45+00:00","dateModified":"2018-05-31T05:25:02+00:00","description":"Discover faster, more efficient performance monitoring with an enterprise APM product learning from your apps. Take the AppDynamics APM Guided Tour! Here","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/devops\/monitoring-a-docker-on-windows-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.webcodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Monitoring a Docker-on-Windows App"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/8aea501dc1eafa1e3adaebe457e79b95","name":"Appdynamics","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/54ee8ceba6da02df562bf9cd4c36a6b537c64d9752d8482878bdfc9813078bc2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/54ee8ceba6da02df562bf9cd4c36a6b537c64d9752d8482878bdfc9813078bc2?s=96&d=mm&r=g","caption":"Appdynamics"},"description":"AppDynamics delivers real-time access to every aspect of your business and operational performance, so you can anticipate problems, resolve them automatically, and make smarter, more certain business decisions. Application Intelligence provides the business and operational insights into application performance, user experience and business impact of your software applications.","sameAs":["http:\/\/www.appdynamics.com\/"],"url":"https:\/\/www.webcodegeeks.com\/author\/appdynamics\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/21640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/210"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=21640"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/21640\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/10356"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=21640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=21640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=21640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}