.NET Agent for Linux のアップグレード

このページでは、Docker などの VM や Linux を実行しているハードウェアで、.NET Agent for Linux をアップグレードする方法について説明します。

.NET Agent for Linux をアップグレードすると、エージェントファイルが更新され、レガシー設定が維持されます。

.NET Agent for Linux 21.5

.NET Agent for Linux 21.5 incorporates significant architectural changes to accelerate the development of missing features in the Linux Agent relative to .NET Agent for Windows.

注: These architectural changes do not affect .NET Agent for Windows (MSI and Microservices).

Generally, .NET Agent for Linux 21.5 maintains parity with existing features in .NET Agent for Linux < 21.5. However, due to architectural updates, there are differences between .NET Agent for Linux >= 21.5 and .NET Agent for Linux < 21.5. See the .NET Agent 21.5 release notes for a detailed explanation.

Before you upgrade to .NET Agent for Linux 21.5, please review the differences in this table:

Difference .NET Agent for Linux >= 21.5 .NET Agent for Linux < 21.5
Pre-built Docker Image

The .NET Agent Docker image does not have an OS Layer after version 21.5.

This allows copying agent binaries from shared volume for initContainer, Kubernetes. initContainer for Kubernetes does not need a base OS.

The .NET Agent Docker image does have an OS Layer before version 21.5.
HTTP URL backend for: Default naming

.NET Agent uses the full URL including http://host:port in the naming.

Full URL address is used.

For example, two calls to these addresses:

  • http://service.cisco.com/api/add/12
  • http://service.cisco.com/api/add/32

Results with these two backend names:

  • http://service.cisco.com/api/add/12
  • http://service.cisco.com/api/add/32

.NET Agent uses the URI path of the URL for the naming. It excludes http://host:port, but assumes the "/" prefix as the name.

Uses the URI path prefixed with a "/".

For example, two calls to these addresses:

  • http://service.cisco.com/api/add/12
  • http://service.cisco.com/api/add/32

Results with these two backend names:

  • /api/add/12
  • /api/add/32

HTTP URL backend for: Custom naming

.NET Agent uses the full URL including http://host:port in the naming.

The URL address split by "/" counts http://host:port as the first three segments:

  • "http:"
  • ""
  • "host:port"

For example, two calls to these addresses with first five URL segments using "/" as the split and merge delimiter:

  • http://service.cisco.com/api/add/12
  • http://service.cisco.com/api/add/32

Results with one backend name:

  • http://service.cisco.com/api/add

.NET Agent uses the URI path of the URL for the naming. It excludes http://host:port, but assumes the "/" prefix as the name.

The URL address split by "/" counts segments starting from the prefixed "/" in the URI path.

For example, two calls to these addresses with first three URL segments using "/" as the split and merge delimiter:

  • http://service.cisco.com/api/add/12
  • http://service.cisco.com/api/add/32

Results with one backend name:

  • /api/add
Sensitive data filtering for environment variables

To filter sensitive data for environment variables:

  1. Add this sensitive data filter to the AppDynamicsConfig.json

    JSON
    {
    "applies-to": "environment-variables",
    "match-type": "CONTAINS",
    "match-pattern": ""
    }
  2. To integrate this filter with the Agent configuration file, see Filter Sensitive Data with the .NET Agent.
Available using the APPDYNAMICS_AGENT_MASK_ENV_VARS environment variable with the Linux Agent.
Process identity Not available Available
In-process async call chain segments limit 5 per node (default) 10 per node (default)

POCO definitions for the generic format changes any existing generic method POCO definitions and must be re-defined using the new format.

注: Similar to POCO definitions, the new format applies to any similar definitions for Custom Exits, Custom Data collectors, and so on because their support is enabled in the .NET Agent for Linux.

This shows the common format used to define generic POCO rules for all .NET Agents:

Format

class: GenericClass`2 method: GenericMethod<T1,T2>(T1,T2,T1,T2)

This shows the common format used to define generic POCO rules for all .NET Agents:

Format

class: GenericClass`2 method: GenericMethod(!T1,!T2,!!M1,!!M2)

Alpine 3.9 and 3.10 Not supported Supported
Analytics Agent connection configuration through the AppDynamicsConfig.json configuration file or through the APPDYNAMICS_ANALYTICS_* environment variables. Not supportedUse the single environment variable appdynamics.analytics.agent.url to specify the full Analytics Agent URL, such as http://localhost:9090/v2/sinks/bt . Supported
Analytics Agent SSL trust configuration in JSON or agent specific environment variables.

Not supported

The SSL connection works if the certificate used by the Analytics Server is trusted by the operating system. As a workaround, you can configure the certificate using the SSL_CERT_FILE/SSL_CERT_DIR

注: This is a global setting that overrides your SSL configuration for all connections.
Supported with these environment variables:
  • APPDYNAMICS_CONTROLLER_SSL_CERTFILE
  • APPDYNAMICS_CONTROLLER_SSL_CERTDIR
Usage of multiple Base-64 encoded certificates (PEM) in a single file with APPDYNAMICS_CONTROLLER_SSL_CERTFILE .

Supported with these noted limitations:

  • The multiple certificates (PEM) file cannot be greater than 1 Mb.
  • You must format each certificate file with a decorated header and a footer, and the first line in the file should be the header of the first certificate.
  • if any certificate fails to load, then the entire file is ignored and the feature is disabled.
Supported

要件

  • はじめに、リリースノートを読み、環境に影響を与える変更点を確認してください。
  • Cisco AppDynamics は、シングルテナント コントローラアカウントへのエージェント接続にアカウントアクセスキーを要求します。4.1 より前の Splunk AppDynamics は、マルチテナント コントローラ アカウントのアカウントアクセスキーのみを要求します。

    シングルテナント コントローラのお客様は、[Settings] > [License] > [Account] の順にクリックするとコントローラにアカウントのアクセスキーが表示されます。

    重要: ライセンス表示レベルのアカウント権限を持つロールのメンバーである必要があります。「Splunk AppDynamics のカスタムロールの管理」を参照してください。

バイナリの概要

エージェントバイナリをダウンロードしたら、zip ファイルから目的のフォルダに展開する必要があります。

フォルダには次のファイルが必要です。

  • AppDynamics.Agent.netstandard.dll
  • libappdprofiler.so
  • libappdprofiler_glibc.so
  • libappdprofiler_musl.so

.NET Agent for Linux のアップグレード

  1. .NET Agent for Linux インストールパッケージを一時ディレクトリに解凍します。
  2. 既存のエージェントのバイナリを最新のバージョンに置き換えます。置き換えるファイルは次のとおりです。
    • libappdprofiler.so

    • AppDynamics.Agent.netstandard.dll

  3. 次のファイルを同じディレクトリにコピーします。
    • libappdprofiler_glibc.so

    • libappdprofiler_musl.so

  4. アプリケーションを再起動するか、または再構築し、新しいバージョンのエージェントバイナリを使用してコンテナイメージを実行します。

NET Agent for Linux のアップグレード(21.5.0 より後のバージョン用の Init コンテナを使用)

バージョン 21.5.0 以降の .NET Core エージェントイメージには、OS レイヤがありません。cp

導入を更新する場合は、「導入仕様への Init コンテナの追加」を参照してください。

.Net Agent for Linux のアップグレード(21.5.0 より後のバージョン用のビルド済みエージェントイメージを含む DockerFile を使用)

バージョン 21.5.0 以降の .NET Core エージェントイメージには、OS レイヤがありません。

エージェントのダイナミックリンク ライブラリ(DLL)をコピーする場合は、次のサンプル Docker ファイルを参照してください。

JSON
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
#  Cisco Appdynamics dotnet core agent image (same image can be used for Debian and Alpine distributions)
FROM appdynamics/dotnet-core-agent:21.5.1 AS agent
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
COPY --from=agent /opt/appdynamics /opt/appdynamics
# Mandatory settings required to attach the agent to the .NET application
ENV CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8}
ENV CORECLR_ENABLE_PROFILING=1
ENV CORECLR_PROFILER_PATH=/opt/appdynamics/libappdprofiler.so
# Configure connection to the controller
ENV APPDYNAMICS_CONTROLLER_HOST_NAME=<<Controller Host>>
ENV APPDYNAMICS_CONTROLLER_PORT=80
ENV APPDYNAMICS_CONTROLLER_SSL_ENABLED=false
ENV APPDYNAMICS_AGENT_ACCOUNT_NAME=<<Account name>>
ENV APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<<Access Key>>
ENV APPDYNAMICS_PREVIEW_FEATURE_ENABLED=true
# Configure application identity in AppDynamics
ENV APPDYNAMICS_AGENT_APPLICATION_NAME="Test application"
ENV APPDYNAMICS_AGENT_TIER_NAME="Test Tier"
ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME=true
ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX="Instance"
EXPOSE 80
ENTRYPOINT ["dotnet", "Sample.dll"]