This page describes the required configuration properties for the AppDynamics .NET Agent for Linux, which you can use to enable the agent to work without Docker. Before you can start instrumenting your applications with the .NET Agent, you need to get the current version of the .NET Core 2.0+. See .NET Agent Configuration Properties.

Configuration

The agent configuration file is similar to the one used to configure .NET Core agent on Windows.

Once you have deployed the agent, you can customize the instrumentation of your application:

Edit the AppDynamicsConfig.json file with the following information:

{
  "controller": {
    "host": "controller.saas.appdynamics.com",
    "port": 443,
    "account": "account-name",
    "password": "access-key",
    "ssl": true
    "proxy" : {
        "host": "proxy-host",
        "port": 9090,
           "authentication": {
              "username": "proxy-user",
              "password": "proxy-password"
         }
      }
  },
  "application": {
    "name": "My Application",
    "tier": "Sample tier",
    "node": "Instance1",
	"reusenodename": "true",
	"nodenameprefix": "prefix"
  },
  "analytics": {
	"host": "localhost",
	"port": 9090
  },
  "feature": [
    "FULL_AGENT"
  ]
}
CODE

The .NET Agent for Linux supports reuse node name configuration to help manage monitoring environments where there are many CLRs with short life spans. The CLR node names are reused to avoid a proliferation of differently named nodes in AppDynamics. Include the "reusenodename": "true" configuration, with "nodenameprefix": "prefix" to enable reuse node name without having to supply a specific node name.

You can also use environment variables to configure reuse node name, such as ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME=true and ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX=<prefix>

See Agent Reuse Node Name.

Configuring using AppDynamicsConfig.json: If you are configuring your agent using environment variables along with the json configuration file or just with the json configuration file, include the FULL_AGENT feature in the json file. Otherwise, the agent will not work. See the AppDynamicsConfig.json file example on .NET Agent for Linux Advanced Configuration Options v21.1

,
  "feature": [
    "FULL_AGENT"
  ]

FULL_AGENT feature mode is automatically enabled when configuring the agent purely by environment variables.

.NET Agent for Linux does not support extended functionality like specifying instrumentors and allowlisting. Do not specify these if copying configuration from .NET Core agent on Windows.

See AppDynamicsConfig.json File.

Other Configuration Options

It is possible to enable the agent to work without Docker. However, you will need to ensure that the OS is supported by the current agent.

  1. Make the following files available to the application. They can be located next to the application files or in a separate folder:

    • AppDynamics.Agent.netstandard.dll
    • libappdprofiler.so
  2. Create the following environment variables by adding them to your application:

    Environment Variable NameValue
    CORECLR_PROFILER{57e1aa68-2229-41aa-9931-a6e93bbc64d8}
    CORECLR_ENABLE_PROFILING1
    CORECLR_PROFILER_PATHPath to the libappdprofilerdynamic library. For example, <application_folder_path>/libappdprofiler.so
    See Using .NET Core for Linux SDK for more information on how to determine the location of the libappdprofiler.so library.

    Env vars can be created on multiple levels, it is important that they are set in the context of the monitored application:

    • Environment variables are inherited from global host level.
    • Environment variables are parent process or service.
    • Environment variables are set prior to the start of the application using the shell script or similar.
  3. Place the agent configuration file next to the appropriate binaries.
    There are two supported options:

    Global agent configuration file
    The AppDynamicsConfig.json file can be placed next to the agent binaries.
    This way, it would be the default option for monitoring for each application configured to use the agent.

    The .NET Agent for Linux does not support overriding node name in the agent configuration. Therefore, monitoring multiple applications on the same host using global configuration is not supported. Only the first application will be reporting.


    Local agent configuration
    The [appname].AppDynamicsConfig.json file can be placed next to the application binaries, where [appname] should match your application DLL/EXE name.
    Using this option, you can attach AppDynamics configuration to the application package and deploy it as a bundle. It will be activated when the right environment variables are set and agent binaries are present.

    Local agent configuration has higher priority than global configuration.