v4.6.x 以降、Splunk AppDynamics では拡張ビルドパックの appdbuildpack を提供しています。Cloud Foundry のマルチビルドパック ワークフローを使用して、この拡張ビルドパックを標準のビルドパックと組み合わせて使用することができます。このビルドパックは、Splunk AppDynamics APM サポートのためのシングルポイントとして機能します。

Java ビルドパックは、マルチビルドパック方法をサポートしていません。そのため、Splunk AppDynamics APM サポートは Java ビルドパックに直接導入され、マルチビルドパック アプローチは Java アプリケーションには使用されません。

サンプル アプリケーション

この GitHub リポジトリで、マルチビルドパック アプローチについて示すサンプルアプリケーションを見つけることができます。

はじめる前に

複数のビルドパックを使用するには、Cloud Foundry Command Line Interface(cf CLI)v6.38 以降が必要です。「Installing the cf CLI」を参照してください。

WorkFlow

  1. VMware Tanzu 用 AppDynamics アプリケーション パフォーマンス モニタリング タイル バージョン v4.6.x 以降をインストールまたはアップグレードします。

  2. VMware Tanzu 用 Splunk AppDynamics APM タイルがインストールされると、appdbuildpack という名前のビルドパックが cf 環境のビルドパックのリストに表示されます。

    $ cf buildpacks
    Getting buildpacks...
    
    buildpack                position   enabled   locked   filename                                             stack
    meta_buildpack           1          true      false    meta_buildpack-v1.1.0.zip
    ...
    appdbuildpack            25         true      false    AppDynamics_buildpack-v4.6.10.zip
    CODE
  3. アプリケーションの manifest.yml の次のセクションを編集します。

    1. buildpacks セクションに appdbuildpack 拡張ビルドパックを含めます。

      buildpacks: - appdbuildpack - <language specific buildpack>
      CODE
    2. env セクションで、アプリケーションの言語に対応する APPD_AGENT 環境変数を設定します。

      env:
        APPD_AGENT: dotnet
      CODE
    3. services セクションに含めることで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。

      services:
       - appd
      CODE
  4. アプリケーションをプッシュするには、cf CLI コマンド cf push を使用します。 $ cf push

APPD_AGENT 値

言語標準ビルドパックAPPD_AGENT 値
NET Framework(Windows)hwc_buildpackdotnet
.NET Core(Linux)dotnet_core_buildpackdotnet-linux
.NET Core(Windows)binary_buildpackdotnet-windows
Pythonpython_buidpackpython
GoLanggo_buildpackgolang
NodeJSnodejs-buildpacknodejs

高度な機能

Splunk AppDynamics 拡張ビルドパックは、設定可能な環境変数をサポートしています。これにより、エージェントバイナリを取得する方法と、エージェントの設定をオーバーライドする方法をカスタマイズできます。

エージェントバイナリのダウンロードのオーバーライド

デフォルトでは、appdbuildpack は標準の言語固有のリポジトリ(.NET の場合は NuGet、Python の場合は PyPI、Node.js の場合は NPM)から対応する Splunk AppDynamics エージェントを取得します。.NET Framework、.NET Core Windows、および Node.js アプリケーションの場合は、appdbuildpack がエージェントを取得するリポジトリをオーバーライドできます。環境変数 APPD_AGENT_HTTP_URL をエージェントファイルがホストされているカスタム http URL に設定すると、appdbuildpack はその URL からエージェントをダウンロードし、エージェントをインストールします。

カスタムのダウンロード場所で Basic 認証が必要な場合は、APPD_BASIC_AUTH_USERNAME および APPD_BASIC_AUTH_PASS 環境変数を指定してログイン情報を指定することができます。

たとえば、.NET Framework アプリケーションの場合は、manifest.yaml ファイルの env セクションで APPD_AGENT_HTTP_URL と Basic 認証のログイン情報変数(必要な場合)を設定し、アプリケーションを再展開します。

  env:
    APPD_AGENT: dotnet
    APPD_AGENT_HTTP_URL: http://<path to custom NuGet package binaries>
    APPD_BASIC_AUTH_USERNAME: <username> # basic auth username (optional)
    APPD_BASIC_AUTH_PASS: <password> # basic auth password (optional)
CODE

エージェントの設定のオーバーライド

デフォルトでは、appdbuildpack が、Splunk AppDynamics エージェントがアプリケーションをインストゥルメント化するために必要な基本設定を作成します。これには、アプリケーションの Splunk AppDynamics 名、階層、ノード、およびコントローラの情報が含まれます。

APPD_CONF_HTTP_URL の機能は Java ビルドパックに統合されていて、APPD_AGENT 値として java を使用します。Java アプリケーションのワークフローに関するドキュメントを参照してください。

.NET Framework、.NET Core Windows、.NET Core for Linux、および Python アプリケーションの場合、appdbuildpack を使用すると、エージェントに対する追加設定や既存のデフォルト設定のオーバーライドが容易になります。これを行うには、APPD_CONF_HTTP_URL 環境変数を、詳細なエージェント構成ファイルがホストされているカスタム HTTP URL に設定します。拡張ビルドパックは、Splunk AppDynamics エージェントに関連する関連ファイルをダウンロードし、エージェントの設定を拡張します。


  env:
    APPD_AGENT: dotnet
    APPD_CONF_HTTP_URL: http://custom-http-server.com
    APPD_BASIC_AUTH_USERNAME: <username> # basic auth username (optional)
    APPD_BASIC_AUTH_PASS: <password> # basic auth password (optional)
CODE

appdbuildpack は、APPD_AGENT 値に従って APPD_CONF_HTTP_URL に関連するサブフォルダの下にある構成ファイルをチェックします。そのため、たとえば .Net Core Linux アプリケーションの場合は AppDynamicsConfig.json などの関連する構成ファイルを APPD_CONF_HTTP_URL/dotnet-linux で検索し、Python アプリケーションの場合は APPD_CONF_HTTP_URL/python で検索します。上記の例では、http://custom-http-server.com/dotnet で検索します。

これにより、ステージング環境変数グループを使用して基盤内のすべてのビルドパックタイプの APPD_CONF_HTTP_URL に単一の値を割り当てる機能がサポートされ、アプリケーションごとにこの値を設定する必要がなくなります。

  $ cf set-staging-environment-variable-group '{"APPD_CONF_HTTP_URL":"http://custom-http.server.com"}'
CODE
  • APPD_CONF_HTTP_URL を使用した場合、appdbuildpack はエージェントに適用可能な関連する名前のファイルのみを取得します。上記の例では dotnet エージェントであるため、ファイル AppDynamicsAgentLog.configAppDynamicsConfig.json のみが APPD_CONF_HTTP_URL/dotnet からダウンロードされます。他のすべてのファイルは無視されます。

  • APPD_AGENT_HTTP_URL を使用する場合は、エージェントパッケージを含むフルパスを指定する必要があります。例:http://custom-http.server.com/dotnet-linux/agent/AppDynamics-DotNetCore-linux-x64-4.5.7.0.zip

  • Splunk AppDynamics エージェントに適用可能な詳細構成ファイルの名前と形式については、「Install App Server Agents」を参照してください。

サンプル manifest.yml

---
applications:
- name: cf-net-linux
  random-route: true
  memory: 1G
  buildpacks:
    - appdbuildpack
    - dotnet_core_buildpack
  env:
    APPD_AGENT: dotnetcore
    APPD_AGENT_HTTP_URL: http://custom-http-server.com/dotnet-linux/agent/AppDynamics-DotNetCore-linux-x64-4.5.7.0.zip
    APPD_CONF_HTTP_URL: http://custom-http-server.com
    DOTNET_CLI_TELEMETRY_OPTOUT: 1
    DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
  services:
    - appd

CODE

このアプローチを使用する利点

  • appdbuildpack と標準システムビルドパックの役割の明確な分離。appdbuildpack が、Splunk AppDynamics のインストゥルメンテーションに関連するすべての役割を単独で果たすようになります。

  • Splunk AppDynamics に関連する新機能は、appdbuildpack を通じて提供されます。これにより、標準のビルドパックを使用して Splunk AppDynamics ビットを提供する場合と比較して、新機能のための所要時間が大幅に短縮されます。

  • アプリケーションの言語やフレームワークに関係なく、さまざまなアプリケーションをインストゥルメント化するための単一の統合ワークフロー。appdbuildpack が AppDynamics インストゥルメンテーション ロジックの唯一のソースとなるため、appdbuildpack に追加された新機能は、該当する場合、すべての言語のエージェントで使用できます。