Knowledge Base

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I install the .NET Core Microservices Agent for Windows using the required dlls?

Table of Contents

 

Who should follow these steps?

You can follow the steps in this article if your .NET Core based application is already running on a production environment or any other environment on Windows where you are targeting to instrument the application, but you don’t have the flexibility of recompiling the application after installing the NuGet package. In spite of that, you want to instrument your running application with the AppDynamics Microservices Agent. In this scenario, you only need to deploy the required dlls and configuration directly into the production environment or any other environment where you are targeting to instrument the application.

 

If you need to install the NuGet package into your .NET project with the assistance of Visual Studio before deploying it into the production environment or any other environment for instrumentation, follow the steps outlined in Install the .NET Core Microservices Agent for Windows instead. The steps below would not apply to you.

 

What should I do before starting?

As mentioned above, these steps are intended for customers who are running .NET Core 2.0+ based applications hosted on a Windows environment.

 

Before you instrument the application, make sure you have access to the AppDynamics Controller in which your application metrics will appear. Refer the Agent and Controller Compatibility document to ensure your Controller version is compatible with your agent version.

 

Steps for adding the required dlls to your existing project

1. To instrument your application with AppDynamics .NET Core Microservices Agent, you will need the required dlls and configuration in the deployment folder location. To get the dlls and configuration files, you have a few options. You can:

You will need to get the following files from there:

  • AppDynamics.Profiler_x64.dll
  • AppDynamics.Profiler_x86.dll
  • AppDynamics.Agent.netstandard.dll
  • AppDynamicsConfig.json file
  • AppDynamicsAgentLog.config

 

The screenshot below shows an example of a publish folder that is mapped to an application that is configured and running in the IIS. 

Screen Shot 2018-08-03 at 5.35.57 PM.png

 

2. Put all of the files into the deployment folder, as shown in the screenshot below.

Remember that you need to rename the AppDynamicsConfig.json file as per your application name. In this example, the application dlls is name is TestNetCoreApplication.dll so the AppDynamicsConfig.json file will be named TestNetCoreApplication.AppDynamicsConfig.json for your application project.

 

Screen Shot 2018-08-03 at 6.27.50 PM.png

 

3. Complete the Controller connection information in the *.AppDynamicsConfig.json file as shown below.

{

 "controller": {

   "host": "example_demo.saas.appdynamics.com",

   "port": 80,

   "account": "account_name",

   "password": "password",

   "ssl": false,

   "enable_tls12": false

 },

 "application": {

   "name": "Application_Name",

   "tier": "Tier_Name",

   "node": "Node_Name"

 }

}

 

4. You can also modify the AppDynamicsAgentLog.config to add the specific path to Agent Logs.

 

Example

By default, the path will appear like this:

<target name="logfile" xsi:type="File" archiveAboveSize="5000000" maxArchiveFiles="5" createDirs="true" fileName="${environment:variable=PROGRAMDATA}\AppDynamics\DotNetAgent\Logs\AgentLog.txt" layout="${longdate} ${processid} ${processname} ${appdomainid} ${threadid} ${level} ${logger:shortName=True} ${message}" />

 

You can modify it with any of the desired locations, as shown below:

<target name="logfile" xsi:type="File" archiveAboveSize="5000000" maxArchiveFiles="5" createDirs="true" fileName="C:\APPDYNAMICS_Logs\AppDynamics\DotNetAgent\Logs\AgentLog.txt" layout="${longdate} ${processid} ${processname} ${appdomainid} ${threadid} ${level} ${logger:shortName=True} ${message}" />

 

5. Set the environment variables for the AppDynamics core agent profiler, as shown below.

CORECLR_ENABLE_PROFILING=1

CORECLR_PROFILER={39AEABC1-56A5-405F-B8E7-C3668490DB4A}

CORECLR_PROFILER_PATH_32=<actual_path>\AppDynamics.Profiler_x86.dll

CORECLR_PROFILER_PATH_64=<actual_path>\AppDynamics.Profiler_x64.dll

Where <actual_path> is the complete path to the AppDynamics.Profiler dll.

 

6. You can also set the environment variable in the Web.config file so it will get the value during the runtime.

 

Example

<?xml version="1.0" encoding="utf-8"?>

<configuration>

 <system.webServer>

   <handlers>

     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />

   </handlers>

   <aspNetCore processPath="dotnet" arguments=".\TestNetCoreApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">

<environmentVariables>

    <environmentVariable name="CORECLR_ENABLE_PROFILING" value="1" />

    <environmentVariable name="CORECLR_PROFILER" value="{39AEABC1-56A5-405F-B8E7-C3668490DB4A}" />

    <environmentVariable name="CORECLR_PROFILER_PATH_64" value=".\AppDynamics.Profiler_x64.dll" />

  </environmentVariables>

  </aspNetCore>

 </system.webServer>

</configuration>

<!--ProjectGuid: 99ed82fd-f96d-48bc-92f7-7615a67d89a8-->

  

7. Restart your hosted application. Your app will instrument through the agent and report data to the configured Controller.

Version history
Revision #:
6 of 6
Last update:
‎10-22-2018 01:02 PM
Updated by:
 
Labels (1)


Found this article helpful? Click the Thumbs Up button.
Have an additional comment? Post it below.
Comments
AppDynamicsAgentLog.config now works after upgrade from nuget agent version 4.5.13.0 to 4.5.14 Previously all .net core nuget agent logs go to the default folder and file names, C:\ProgramData\AppDynamics\DotNetAgent and it was mixed with logs from normal .Net agent for Windows

where is the location of the AppDynamics core agent profiler ?

AppDynamics.Profiler_x64.dll and AppDynamics.Profiler_x86.dll are the profiler dlls, which you place in the common folder location or application folder to instrument the .NET Core based applications.

Also, it can be the anywhere only thing you just need to set the path in the following environment variables "CORECLR_PROFILER_PATH_64" or "CORECLR_PROFILER_PATH_32"

For rexamplee -  

<environmentVariable name="CORECLR_PROFILER_PATH_64" value=".\AppDynamics.Profiler_x64.dll" />

for example : 

 

<environmentVariables>
<environmentVariable name="CORECLR_ENABLE_PROFILING" value="1" />
<environmentVariable name="CORECLR_PROFILER" value="{39AEABC1-56A5-405F-B8E7-C3668490DB4A}" />
<environmentVariable name="CORECLR_PROFILER_PATH_64" value="D:\Websites\staging\FINACPI_OPTEST\AppDynamics.Profiler_x64" />
<environmentVariable name="CORECLR_PROFILER_PATH_86" value="D:\Websites\staging\FINACPI_OPTEST\AppDynamics.Profiler_x86" />
</environmentVariables>
<environmentVariables />

Yes, It looks correct.

FYI - If the configured location "D:\Websites\staging\FINACPI_OPTEST", is not your project location, kindly give the full access to the user identity under which your application is running/application pool is configured.

What about for a .NET Core console application? There's no web.config in a console app to set the environment variables. Where should I be setting the environment variables in that scenario?

Hi Harrison,

You can add these Environment variables at the system level. Let me know if you have any questions for this.

Hi,

 

We tried instrumenting this today but it did not work. It only started working when we changed the name of Config file to AppDynamicsConfig.json instead of <APP>.AppDynamicsConfig.json.

 

For example,

We see only one line below in profiler logs with App.AppDynamicsConfig.json and we don’t see the agent reporting.

2020-04-22 13:18:45.444095[0x00001cc4]<info>:Use CoreCLR profiler

 

However, when we change the config file name to AppDynamicsConfig.json, it reads successfully and starts reporting and we see logs growing.

2020-04-22 13:24:20.859515[0x000045d4]<info>:Use CoreCLR profiler

2020-04-22 13:24:20.861510[0x000045d4]<info>:Should instrument standalone profiler process (config found at C:\inetpub\wwwroot\<APP Path>\AppDynamicsConfig.json): w3wp as app w3wp.exe

2020-04-22 13:24:20.862518[0x000045d4]<info>:Successfully read file.

 

We are using 4.5.18.1 version of the .Net core microservice agent.

 

Although it is working, the problem we have is whenever we deploy the application, it automatically changes the name of the config to <APP>.AppDynamicsConfig.json and we have to change it back again.

 

Any recommendation around that?

 

Regards,

Chetan

 

 

 

 

 

@Chetan.Goyal — I spoke with @Ashish.Singh  and he had a couple of suggestions to relate.

 

If it is working with AppDynamicsConfig.json and not <APP>.AppDynamicsConfig.json, it seems you might be using .NET Core Framework 2.2 or above, for which this is expected behavior.

 

You mentioned that it is re-converting to <APP>.AppDynamicsConfig.json after deployment. you might look at which NuGet package and version you're are using as this reconversion after deployment should not occur with the latest NuGet version. 

 

If this doesn't help, @Ashish.Singh  recommends you open a Support ticket so the issue can be further investigated by the correct team.

 

Claudia Landivar

Community Manager & Editor



Found this article helpful? Click the Thumbs Up button.
Have an additional comment? Post it below.