Skip to end of metadata
    Go to start of metadata

    Getting Started

    Before you begin, review these prerequisites:

    1. Confirm you have access to a compatible Controller. See Agent and Controller Compatibility
    2. Confirm the connection settings to the Controller where your agent will report data:
      • If you use a SaaS Controller, AppDynamics sent you the Controller host in your Welcome Email. Use port 443 for HTTPS or port 80 for HTTP.
      • If you use an on-premises Controller, you supplied the host and port at install time.
    3. Verify you have access to the machine where the application runs as a user account with privileges to install the agent software and restart the application.
    4. Verify that the machine where the application runs can connect to the Controller. Proxies or firewalls on the network between the agent and Controller may require additional configuration.
    5. Verify that the application environment meets the requirements on .NET Agent for Linux Supported Environments prior to running the agent.

    Applications and Licenses Overview

    Ensure you have the following applications and licenses:

    • .NET Core application running on Linux 
    • .NET license for each .NET Core application running on Linux. See License Management

    Binaries Overview

    Down the agent binaries from the AppDynamics Download Center and then extract them from the zip file into the desired folder.

    The archive contains the following files:

    • AppDynamics.Agent.netstandard.dll
    • AppDynamicsConfig.json.template
    • libappdprofiler.so
    • README.md

    Deployment

    There are two options for starting your deployment using Docker:

    Create Your Own Image

    You can use the ASP.NET sample application from Microsoft and a Dockerfile to build your own image and get started:

    1. Download the binaries.
    2. Update the Dockerfile variables to configure the connection to the Controller and your application identity in AppDynamics.
    3. Create the Docker image.

    This is an example Dockerfile with commented instructions:

    FROM mcr.microsoft.com/dotnet/core/samples:aspnetapp
    
    ####### Requirements
    # Have the following files alongside the Dockerfile:
    # * libappdprofiler.so
    # * AppDynamics.Agent.netstandard.dll
    
    ####### Instructions
    # Building image: docker build --rm -t appdynamicstest:latest .
    # Running container: docker run --rm -p 8000:80 appdynamicstest:latest
    # Open the application using http://localhost:8000/
    
    # Copy agent binaries to the image from current folder
    RUN mkdir -p /opt/appdynamics/dotnet
    ADD libappdprofiler.so /opt/appdynamics/dotnet/
    ADD AppDynamics.Agent.netstandard.dll /opt/appdynamics/dotnet/
    
    # Mandatory settings required to attach the agent to the .NET application
    ENV CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8} \
        CORECLR_ENABLE_PROFILING=1 \
        CORECLR_PROFILER_PATH=/opt/appdynamics/dotnet/libappdprofiler.so
    
    # Configure connection to the controller
    ENV APPDYNAMICS_CONTROLLER_HOST_NAME=controller.saas.appdynamics.com
    ENV APPDYNAMICS_CONTROLLER_PORT=443
    ENV APPDYNAMICS_CONTROLLER_SSL_ENABLED=true
    ENV APPDYNAMICS_AGENT_ACCOUNT_NAME=account-name
    ENV APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=access-key
    
    # Configure application identity in AppDynamics
    ENV APPDYNAMICS_AGENT_APPLICATION_NAME="My Application"
    ENV APPDYNAMICS_AGENT_TIER_NAME="Sample Tier"
    ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME=true
    ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX="Instance"
    
    # It is possible to configure .NET agent using AppDynamicsConfig.json configuration file instead of environment variables
    # ADD AppDynamicsConfig.json /opt/appdynamics/dotnet/

    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 

    ,
      "feature": [
        "FULL_AGENT"
      ]

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

    On Alpine OS

    Applications running on Alpine require an additional mandatory environment variable, LD_LIBRARY_PATH, such as ENV LD_LIBRARY_PATH=/opt/appdynamics/dotnet

    Run an Existing Image

    You can run an existing image with an agent enabled. This is the simplest way to get started as it does not require building a new image:

    1. Download the aforementioned binaries.
    2. Update the Docker command variables to configure the connection to the Controller and your application identity in AppDynamics.

    3. Run the command in the desired folder where you extracted the agent binaries from the zip file.
      You can replace $(pwd) in the command with this folder.

    The following example runs the sample application. It assumes you have AppDynamics binaries in the current directory:

    Example command to run existing image with .NET agent enabled
    docker run \
    -p 8000:80 \
    -e CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8} \
    -e CORECLR_ENABLE_PROFILING=1 \
    -e CORECLR_PROFILER_PATH=/opt/appdynamics/dotnet/libappdprofiler.so \
    -e APPDYNAMICS_CONTROLLER_HOST_NAME=controller.saas.appdynamics.com \
    -e APPDYNAMICS_CONTROLLER_PORT=443 \
    -e APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \
    -e APPDYNAMICS_AGENT_ACCOUNT_NAME=account-name \
    -e APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=access-key \
    -e APPDYNAMICS_AGENT_APPLICATION_NAME="My Application" \
    -e APPDYNAMICS_AGENT_TIER_NAME="Sample Tier" \
    -e APPDYNAMICS_AGENT_REUSE_NODE_NAME=true \
    -e APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX="Instance" \
    -v "$(pwd)":/opt/appdynamics/dotnet/ \
    mcr.microsoft.com/dotnet/core/samples:aspnetapp

    On Alpine OS

    Applications running on Alpine require an additional mandatory environment variable, LD_LIBRARY_PATH, such as  -e LD_LIBRARY_PATH=/opt/appdynamics/dotnet \

    The command mounts agent files as a volume and sets environment variables required for the agent to attach.

    Startup Flow

    During the application startup, the AppDynamics agent writes messages to the console as well as the application and .NET framework.

    This .NET Agent startup console output indicates proper agent initialization:

    profiler(Info): Starting .NET Agent. More info can be found from /tmp/appd/dotnet
    profiler(Info): .NET Agent (4.5.7.0) starts successfully
    profiler(Info): Agent has registered on the platform using app:My Application/tier:Sample Tier/node:Instance1

    See .NET Agent for Linux Troubleshooting

    • No labels