From 208b1768beea67d1402a801ddd262fdda0662ad7 Mon Sep 17 00:00:00 2001 From: Thiru Chidambaram Date: Thu, 9 Jul 2015 22:59:49 -0700 Subject: [PATCH 1/2] +Windows Services & Standalone apps instrumentation +Windows Services & Standalone apps instrumentation --- attributes/dotnet_agent.rb | 2 +- recipes/dotnet_agent.rb | 1 + templates/default/dotnet/setup.config.erb | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/attributes/dotnet_agent.rb b/attributes/dotnet_agent.rb index f40c83c..18bec3f 100644 --- a/attributes/dotnet_agent.rb +++ b/attributes/dotnet_agent.rb @@ -3,6 +3,6 @@ default['appdynamics']['dotnet_agent']['checksum'] = '7acb3756147a1d5a13c49b107a890ea56a8eb4099fd793e498e34b6f0b5962dc' #nil default['appdynamics']['dotnet_agent']['install_dir'] = 'C:\Program Files\Appdynamics' default['appdynamics']['dotnet_agent']['logfiles_dir'] = 'C:\DotNetAgent\Logs' - +default['appdynamics']['dotnet_agent']['standalone_apps'] = nil #'a.exe,b.exe' default['appdynamics']['dotnet_agent']['template']['cookbook'] = 'appdynamics' default['appdynamics']['dotnet_agent']['template']['source'] = 'dotnet/setup.config.erb' diff --git a/recipes/dotnet_agent.rb b/recipes/dotnet_agent.rb index 0c3b63e..0d97661 100644 --- a/recipes/dotnet_agent.rb +++ b/recipes/dotnet_agent.rb @@ -68,6 +68,7 @@ :controller_accesskey => controller['accesskey'], :proxy_host => proxy['host'], :proxy_port => proxy['port'], + :standalone_apps => agent['standalone_apps'] ) end diff --git a/templates/default/dotnet/setup.config.erb b/templates/default/dotnet/setup.config.erb index d3bd518..fa345aa 100644 --- a/templates/default/dotnet/setup.config.erb +++ b/templates/default/dotnet/setup.config.erb @@ -17,6 +17,15 @@ + <% unless @standalone_apps.nil? %> + + <% @standalone_apps.split(',').each { |app_name| puts %> + + + + <%}%> + + <% end %> From 4ed24f80b37a1447e202b70bf98da336be949bfe Mon Sep 17 00:00:00 2001 From: Thiru Chidambaram Date: Mon, 20 Jul 2015 15:39:17 -0700 Subject: [PATCH 2/2] Windows Services instrumentation & Restarts Windows Services instrumentation & Restarts --- attributes/dotnet_agent.rb | 7 ++++++- recipes/dotnet_agent.rb | 12 +++++++++++- templates/default/dotnet/setup.config.erb | 6 +++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/attributes/dotnet_agent.rb b/attributes/dotnet_agent.rb index 18bec3f..04084c6 100644 --- a/attributes/dotnet_agent.rb +++ b/attributes/dotnet_agent.rb @@ -3,6 +3,11 @@ default['appdynamics']['dotnet_agent']['checksum'] = '7acb3756147a1d5a13c49b107a890ea56a8eb4099fd793e498e34b6f0b5962dc' #nil default['appdynamics']['dotnet_agent']['install_dir'] = 'C:\Program Files\Appdynamics' default['appdynamics']['dotnet_agent']['logfiles_dir'] = 'C:\DotNetAgent\Logs' -default['appdynamics']['dotnet_agent']['standalone_apps'] = nil #'a.exe,b.exe' +default['appdynamics']['dotnet_agent']['Restart_Windows_Service']='AppDynamics.Agent.Coordinator_service'# can be used for restarting any non-instrumented service default['appdynamics']['dotnet_agent']['template']['cookbook'] = 'appdynamics' default['appdynamics']['dotnet_agent']['template']['source'] = 'dotnet/setup.config.erb' +default['appdynamics']['dotnet_agent']['standalone_apps'] = { +'w3svc'=>{'executable'=>'b.exe','tier'=>'b Tier','commandline'=>nil,'restart'=>true}, +'msdtc'=>{'executable'=>'a.exe','tier'=>'a Tier','commandline'=>'-a -b','restart'=>true} +} + diff --git a/recipes/dotnet_agent.rb b/recipes/dotnet_agent.rb index 0d97661..bf391eb 100644 --- a/recipes/dotnet_agent.rb +++ b/recipes/dotnet_agent.rb @@ -3,7 +3,6 @@ proxy = node['appdynamics']['http_proxy'] install_directory = agent['install_dir'] system_directory = node['kernel']['os_info']['windows_directory'] - agent_msi_path = "#{system_directory}\\Temp" setup_config = "#{agent_msi_path}\\setup.xml" install_log_file = "#{agent_msi_path}\\DotnetAgentInstall.log" @@ -79,3 +78,14 @@ installer_type :msi only_if { File.exists?(agent_msi) } end + +Restart_Windows_Service = agent['Restart_Windows_Service'] + ',' + agent['standalone_apps'].keys.join(',') + +# Restart Appdynamics Agent Coordinator & Windows Services that are instrumented. +# This has to be a separate variable because we are using standalone instrumentation for instrumenting Windows Services +powershell_script 'Restart Windows Services' do + code <<-EOH + Restart-Service #{Restart_Windows_Service} + EOH + not_if Restart_Windows_Service.nil? +end \ No newline at end of file diff --git a/templates/default/dotnet/setup.config.erb b/templates/default/dotnet/setup.config.erb index fa345aa..8dc56fe 100644 --- a/templates/default/dotnet/setup.config.erb +++ b/templates/default/dotnet/setup.config.erb @@ -19,9 +19,9 @@ <% unless @standalone_apps.nil? %> - <% @standalone_apps.split(',').each { |app_name| puts %> - - + <% @standalone_apps.each { |app_name, app_value| puts %> + command-line="<%= app_value[:commandline]%>"<% end %>> + <%}%>