「Splunk AppDynamics拡張ビルドパック」を参照してください。
v4.6.x 以降、Splunk AppDynamics では拡張ビルドパックの appdbuildpack を提供しています。Cloud Foundry のマルチビルドパック ワークフローを使用して、この拡張ビルドパックを標準のビルドパックと組み合わせて使用することができます。このビルドパックは、Splunk AppDynamics APM サポートのためのシングルポイントとして機能します。
サンプル アプリケーション
この GitHub リポジトリで、マルチビルドパック アプローチについて示すサンプルアプリケーションを見つけることができます。
はじめる前に
複数のビルドパックを使用するには、Cloud Foundry Command Line Interface(cf CLI)v6.38 以降が必要です。「Installing the cf CLI」を参照してください。
WorkFlow
APPD_AGENT 値
| 言語 | 標準ビルドパック | APPD_AGENT 値 |
|---|---|---|
| NET Framework(Windows) | hwc_buildpack |
dotnet |
| .NET Core(Linux) | dotnet_core_buildpack |
dotnet-linux |
| .NET Core(Windows) | binary_buildpack |
dotnet-windows |
| Python | python_buidpack |
python |
| GoLang | go_buildpack |
golang |
| NodeJS | nodejs-buildpack |
nodejs |
高度な機能
Splunk AppDynamics 拡張ビルドパックは、設定可能な環境変数をサポートしています。これにより、エージェントバイナリを取得する方法と、エージェントの設定をオーバーライドする方法をカスタマイズできます。
エージェントバイナリのダウンロードのオーバーライド
デフォルトでは、appdbuildpack は標準の言語固有のリポジトリ(.NET の場合は NuGet、Python の場合は PyPI、Node.js の場合は NPM)から対応する AppDynamics エージェントを取得します。.NET Framework、.NET Core Windows、および Node.js アプリケーションの場合は、appdbuildpack がエージェントを取得するリポジトリをオーバーライドできます。環境変数 APPD_AGENT_HTTP_URL をエージェントファイルがホストされているカスタム http URL に設定すると、appdbuildpack はその URL からエージェントをダウンロードし、エージェントをインストールします。
APPD_BASIC_AUTH_USERNAME および APPD_BASIC_AUTH_PASS 環境変数を指定してログイン情報を指定することができます。たとえば、.NET Framework アプリケーションの場合は、env ファイルの APPD_AGENT_HTTP_URL セクションで APPD_AGENT_HTTP_URL と Basic 認証のログイン情報変数(必要な場合)を設定し、アプリケーションを再展開します。manifest.yaml
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)
エージェントの設定のオーバーライド
デフォルトでは、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 を使用すると、エージェントに対する追加設定や既存のデフォルト設定のオーバーライドが容易になります。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)
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 で検索します。
これにより、ステージング環境変数グループを使用して基盤内のすべてのビルドパックタイプの https://techdocs.broadcom.com/us/en/vmware-tanzu/platform/tanzu-platform-for-cloud-foundry/10-0/tpcf/concepts-overview.html#environment-variable-groups-20 に単一の値を割り当てる機能がサポートされ、アプリケーションごとにこの値を設定する必要がなくなります。
$ cf set-staging-environment-variable-group '{"APPD_CONF_HTTP_URL":"http://custom-http.server.com"}'
-
APPD_CONF_HTTP_URLを使用した場合、 はエージェントに適用可能な関連する名前のファイルのみを取得します。上記の例では dotnet エージェントであるため、ファイルAppDynamicsAgentLog.configとAppDynamicsConfig.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」を参照してください。
サンプル 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
このアプローチを使用する利点
-
appdbuildpackと標準規格システムビルドパックの間の役割の明確な分離。appdbuildpackが、Splunk AppDynamics のインストルメンテーションに関連するすべての役割を単独で果たすようになります。 -
Splunk AppDynamics に関連する新機能は、
appdbuildpackを通じて提供されます。これにより、標準のビルドパックを使用して Splunk AppDynamics ビットを提供する場合と比較して、新機能のための所要時間が大幅に短縮されます。 -
アプリケーションの言語やフレームワークに関係なく、さまざまなアプリケーションをインストゥルメント化するための単一の統合ワークフロー。
appdbuildpackが AppDynamics インストゥルメンテーション ロジックの唯一のソースとなるため、appdbuildpackに追加された新機能は、該当する場合、すべての言語のエージェントで使用できます。