Download PDF
Download page VMware Tanzu 用 AppDynamics アプリケーション パフォーマンス モニタリングのワークフロー.
VMware Tanzu 用 AppDynamics アプリケーション パフォーマンス モニタリングのワークフロー
このトピックでは、Splunk AppDynamics APM タイルによって公開されたマーケットプレイスサービスを使用して、Splunk AppDynamics エージェントで VMware Tanzu アプリケーションをインストゥルメント化するために必要な手順について説明します。Java ビルドパック以外では、マルチビルドパック アプローチが使用されます。これには、言語固有のビルドパックに加えて、タイルによって公開された Splunk AppDynamics 拡張ビルドパックが必要です。Java ビルドパックには Splunk AppDynamics エージェントのサポートが直接統合されているため、Splunk AppDynamics ビルドパックを使用する必要はありません。
ご使用になる前に
- Pivotal Network アカウントがない場合は作成します。
- Cloud Foundry Command Line Interface(cf CLI)をインストールします。「Installing the cf CLI」を参照してください。
このドキュメントには、Cloud Foundry™ のドキュメントへの参照が含まれています。Splunk AppDynamics はいかなる権利も所有しておらず、そのようなサードパーティのドキュメントの正確性または完全性について責任を負いません。
Splunk AppDynamics サービスインスタンスの作成
cf CLI またはコマンド プロンプト ウィンドウを開きます。
Pivotal API のエンドポイントとバージョンを特定します。次のコマンドを入力します。
$ cf api
次の出力が表示されます。api endpoint: https<scan>:</scan>//api.my.pivotal.io api version: 2.103.0
CODEPivotal エンドポイントにログインします。
cf login
プロンプトが表示されたら、電子メールアドレスと Pivotal パスワードを入力します。
cf 環境に
appdynamics
サービスがあることを確認します。$ cf marketplace -s appdynamics service plan description free or paid pcf-appd pcf-appd free pcf-appd-test pcf-appd-test free
CODEappdynamics
サービスのサービスインスタンスと選択したプランを作成します。$ cf create-service appdynamics pcf-appd appd
以下に示されているアプリケーションの対応する言語のワークフローに従います。
Splunk AppDynamics インストゥルメンテーションのワークフロー
サンプル アプリケーション
この GitHub リポジトリで、マルチビルドパック アプローチについて示すサンプルアプリケーションを見つけることができます。
.NET Framework アプリケーション(マルチビルドパック)
.Net Framework アプリケーションは、appdbuildpack
ビルドパックが標準の hwc_buildpack
ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.yml
の次のセクションを編集します。buildpacks
セクションにappdbuildpack
を含めます。アプリケーション環境変数
APPD_AGENT
をdotnet
に設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-net memory: 2G buildpacks: - appdbuildpack - hwc_buildpack stack: windows2016 env: APPD_AGENT: dotnet APPDYNAMICS_AGENT_APPLICATION_NAME: my-cf-net-app APPDYNAMICS_AGENT_TIER_NAME: cf-net-app services: - appd
CODEcf push
コマンドを使用してアプリケーションをプッシュします。$ cf push
CODE
詳細設定
appdbuildpack
では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、それぞれ APPD_AGENT_HTTP_URL
および APPD_CONF_HTTP_URL
環境変数が用意されています。詳細については、「 マルチビルドパック」のドキュメントを参照してください。
.NET Core for Linux アプリケーション(マルチビルドパック)
.Net Core アプリケーションは、appdbuildpack
ビルドパックが標準の dotnet_core_buildpack
ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.yml
の次のセクションを編集します。buildpacks
セクションにappdbuildpack
を含めます。アプリケーション環境変数
APPD_AGENT
をdotnet-linux
に設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション環境変数
APPD_AGENT_HTTP_URL
を、.NET Agent for Linux がホストされているカスタム http URL に設定します。これは、このエージェントが現在 NuGet で使用できないため必要です。詳細については、Cisco AppDynamics 拡張ビルドパックを参照してください。次の内容を使用して、
${APPD_CONF_HTTP_URL}/dotnet-linux/AppDynamicsConfig.json
の場所でエージェント構成ファイルAppDynamicsConfig.json
がホストされているカスタム URL にAPPD_CONF_HTTP_URL
を設定します。{ "feature": [ "FULL_AGENT" ], "log": [ { "outputtype": "console" } ] }
CODEアプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。---- applications: - name: cf-net-linux memory: 2G buildpacks: - appdbuildpack - dotnet_core_buildpack env: APPD_AGENT: dotnet-linux APPDYNAMICS_AGENT_APPLICATION_NAME: my-dotnet-linux-app APPDYNAMICS_AGENT_TIER_NAME: cf-net-linux APPD_AGENT_HTTP_URL: http://CUSTOM_REPO/AppDynamics-DotNetCore-linux-x64-VERSION.zip APPD_CONF_HTTP_URL: http://CUSTOM_REPO services: - appd
CODEcf push
コマンドを使用してアプリケーションをプッシュします。$ cf push
CODE
詳細設定
appdbuildpack
では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、それぞれ APPD_AGENT_HTTP_URL
および APPD_CONF_HTTP_URL
環境変数が用意されています。詳細については、「 マルチビルドパック」のドキュメントを参照してください。
.NET Core Windows アプリケーション(マルチビルドパック)
Windows 用 .Net Core アプリケーションは、appdbuildpack
ビルドパックが標準の binary_buildpack
ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.yml
の次のセクションを編集します。buildpacks
セクションにappdbuildpack
を含めます。アプリケーション環境変数
APPD_AGENT
をdotnet-windows
に設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-net-windows random-route: true memory: 512M path: app.zip command: dotnetHelloWorld.exe stack: windows2016 buildpacks: - appdbuildpack - binary_buildpack env: APPD_AGENT: dotnet-windows APPDYNAMICS_AGENT_APPLICATION_NAME: my-dotnet-windows-app APPDYNAMICS_AGENT_TIER_NAME: cf-net-windows DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true services: - appd
CODEcf push
コマンドを使用してアプリケーションをプッシュします。cf push
CODE
詳細設定
appdbuildpack
では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、それぞれ APPD_AGENT_HTTP_URL
および APPD_CONF_HTTP_URL
環境変数が用意されています。詳細については、「 マルチビルドパック」のドキュメントを参照してください。
Python アプリケーション(マルチビルドパック)
Python アプリケーションは、appdbuildpack
ビルドパックが標準の python_buildpack
ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.yml
の次のセクションを編集します。アプリケーション マニフェストの
buildpacks
セクションにappdbuildpack
を含めます。アプリケーション環境変数
APPD_AGENT
をpython
に設定します。アプリケーションと階層の環境変数を設定します。
アプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-python memory: 500M buildpacks: - appdbuildpack - python_buildpack env: APPD_AGENT: python APPD_APP_NAME: my-python-app APPD_TIER_NAME: cf-python services: - appd
CODEアプリケーションをプッシュします。
$ cf push
CODE
詳細設定
appdbuildpack
では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、APPD_CONF_HTTP_URL
環境変数が用意されています。詳細については、「 マルチビルドパック」のドキュメントを参照してください。
GoLang アプリケーション(マルチビルドパック)
Go アプリケーションは、appdbuildpack
ビルドパックが標準の go_buildpack
ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
Splunk AppDynamics では、このようなアプリケーションをインストゥルメント化するための SDK が用意されています。SDK API を介して Go エージェントを起動するために必要な設定は、環境変数を介して使用されます。
アプリケーションの
manifest.yml
の次のセクションを編集します。アプリケーション マニフェストの
buildpacks
セクションにappdbuildpack
を含めます。アプリケーション環境変数
APPD_AGENT
をgolang
に設定します。LD_LIBRARY_PATH
環境変数を、libappdynamics.so が含まれているフォルダに設定します。os.Getenv("...")
を使用して、アプリケーションによって読み取られる内容に基づいて、アプリケーションと階層の環境変数を設定します。アプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-go memory: 500M buildpacks: - appdbuildpack - go_buildpack env: APPD_AGENT: golang APPD_APPLICATION_NAME: my-go-app APPD_TIER_NAME: go-tier LD_LIBRARY_PATH: /app/vendor/appdynamics/lib services: - appd
CODE以下のスニペットをコピーして貼り付けて、Go エージェントを初期化します。
package main import ( ... appd "appdynamics" ) ... cfg := appd.Config{} cfg.AppName = os.Getenv("APPD_APPLICATION_NAME") cfg.TierName = os.Getenv("APPD_TIER_NAME") cfg.NodeName = os.Getenv("APPD_NODE_NAME") cfg.NodeName = os.Getenv("APPD_NODE_NAME") + ":" + os.Getenv("CF_INSTANCE_INDEX") /* Controller Configuration */ cfg.Controller.Host = os.Getenv("APPD_CONTROLLER_HOST") port, err := strconv.ParseInt(os.Getenv("APPD_CONTROLLER_HOST"), 10, 16) if err != nil { return err } cfg.Controller.Port = uint16(port) cfg.Controller.Account = os.Getenv("APPD_ACCOUNT_NAME") cfg.Controller.AccessKey = os.Getenv("APPD_ACCOUNT_ACCESS_KEY") cfg.InitTimeoutMs = 1000 err = appd.InitSDK(&cfg) if err != nil { fmt.Println(err) } ...
CODESplunk AppDynamics Golang エージェントを起動するために必要な設定は、環境変数
APPD_APPLICATION_NAME
、APPD_TIER_NAME
、APPD_NODE_NAME
、APPD_CONTROLLER_HOST
、APPD_ACCOUNT_NAME
、APPD_ACCOUNT_ACCESS_KEY
を介して使用されます。アプリケーションをプッシュします。
$ cf push
CODE
詳細設定
appdbuildpack
では、エージェントバイナリのダウンロードをカスタマイズし、エージェントの詳細設定を拡張するために、APPD_CONF_HTTP_URL
環境変数が用意されています。詳細については、「 マルチビルドパック」のドキュメントを参照してください。
Java アプリケーション
Java アプリケーションは、標準の java_buildpack_offline
ビルドパックを使用してインストゥルメント化されます。マルチビルドパック アプローチは Java ビルドパックでサポートされていないため、使用されません。
アプリケーションの
manifest.yml
の次のセクションを編集します。アプリケーションと階層の環境変数を設定します。
必要に応じて、
APPD_CONF_HTTP_URL
環境変数を、詳細なエージェント構成ファイルがホストされている URL に設定します。詳細については、エージェントの設定の拡張に関するドキュメントを参照してください。また、log4j2.xml ファイルをオーバーライドしてエージェント出力を STDOUT にリダイレクトする方法の例については、サンプル アプリケーション リポジトリの cf-java-sample および cf-configuration-static アプリケーションを参照してください。必要に応じて、
APPD_CF_NODE_PREFIX
環境変数を設定して、ビルドパックによって割り当てられたノード名の先頭に文字列を追加します。アプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。--- applications: - name: cf-java-app memory: 1G random-route: true path: build/libs/cf-java-sample-1.0.jar buildpacks: - java_buildpack_offline env: APPDYNAMICS_AGENT_APPLICATION_NAME: my-java-app APPDYNAMICS_AGENT_TIER_NAME: cf-java-app APPD_CONF_HTTP_URL: http://custom-http-server.com APPD_CF_NODE_PREFIX: my-node-prefix services: - appd
CODEアプリケーションをプッシュします。
$ cf push
CODE
詳細設定
VMware Tanzu Java アプリケーションの Splunk AppDynamics インストゥルメンテーションは appdbuildpack
を使用しないため、設定は java_buildpack
によって直接管理されます。
標準の java_buildpack
に関するドキュメントを参照してください。
Node.js アプリケーション(マルチビルドパック)
Node.js アプリケーションは、appdbuildpack
ビルドパックが標準の nodejs_buildpack
ビルドパックと組み合わせて使用されるマルチビルドパック アプローチを使用してプッシュされます。
アプリケーションの
manifest.yml
の次のセクションを編集します。buildpacks
セクションにappdbuildpack
を含めます。アプリケーション環境変数
APPD_AGENT
をnodejs
に設定します。アプリケーションと階層の環境変数を設定します。
必要に応じて、環境変数
APPDYNAMICS_LOGGER_OUTPUT_TYPE
をconsole
に設定して、エージェントログをストリーミングします。必要に応じて、Node.js エージェントパッケージがホストされている内部リポジトリを指すように環境変数
APPD_CDN_BASE_URL
を設定します。これにより、パブリックインターネットでホストされ、通常は VMware Tanzu 環境では使用できないデフォルトの Splunk AppDynamics リポジトリがオーバーライドされます。アプリケーション マニフェストの
services
セクションで、アプリケーションを Splunk AppDynamics サービスインスタンスにバインドします。applications: - name: cf-node memory: 500M env: APPD_AGENT: nodejs APPDYNAMICS_AGENT_APPLICATION_NAME: my-nodejs-app APPDYNAMICS_AGENT_TIER_NAME: cf-nodejs APPDYNAMICS_LOGGER_OUTPUT_TYPE: console APPD_CDN_BASE_URL: http://internalrepo.com services: - appd
CODE必要に応じて、エージェントを設定するための環境変数を指定します。サポートされている環境変数のリストを以下に示します。
環境変数 説明 APPDYNAMICS_AGENT_APPLICATION_NAME コントローラに報告されるアプリケーション名
APPDYNAMICS_AGENT_TIER_NAME コントローラに報告されるアプリケーションのティア名 APPD_AGENT_DEBUG エージェントのデバッグレベルのロギングを有効にするには、true に設定します。デフォルトはfalse。 APPD_AGENT_LIBAGENT エージェントのプロキシなしバージョンを制御します。デフォルトは true です。Node.js エージェントのプロキシバージョンを使用する場合は、false に設定します。 APPD_LOG_CONFIG エージェントのログ記録に関連する場所、レベル、およびその他の設定。「Node.js エージェントログ」を参照してください。 アプリケーションをプッシュします。
$ cf push
CODE
デフォルト設定の拡張
プロキシ設定の拡張
プロキシサーバーを使用している場合、コンシューマ アプリケーションは、VMware Tanzu で実行されているアプリケーションがプロキシサーバーと通信するための環境変数として、http_proxy
または https_proxy
を指定する必要があります。次の手順を実行します。
アプリケーションとコントローラの環境変数を設定します。
HTTP プロキシの場合:
cf set-env http_proxy http://user@password:myproxy....:8080/
HTTPS プロキシの場合:
cf set-env https_proxy https://user@password:myproxy....:8080/
アプリケーションを再ステージングします。
cf restage <app-name>
コントローラ Web UI にログインし、メトリックブラウザに移動して、アプリケーションが検出およびモニターされていることを確認します。
ユーザー提供サービスの使用
サービスブローカータイルを使用する上記の手順に加えて、オペレータは appdynamics
という名前のユーザー提供サービスを使用して、Splunk AppDynamics でアプリケーションをインストゥルメント化することもできます。
JSON フィールドを指定して、以下の cf cups コマンドを使用します。
ユーザー提供サービスの名前は
appdynamics
にする必要があり、その JSON クレデンシャルには、account-access-key
、account-name
、host-name
、port
、およびssl-enabled
フィールドが必要です。$ cf cups appdynamics -p '{"account-access-key":"acce$$key", "account-name":"customer1", "host-name":"demo.appdynamics.com", "port":"8090", "ssl-enabled":false}'
CODE
VMware Tanzu でのマシンエージェントの展開
このトピックは、VMware Tanzu(VMware Tanzu)プラットフォームにマシンエージェントを展開するために役立ちます。
ご使用になる前に
- アプリケーションを展開、実行、および管理するために、Cloud Foundry での管理者またはスペース開発者のアクセス権を取得します。アクセス権の詳細については、Cloud Foundry のドキュメントを参照してください。
- マシンエージェントをダウンロードします。
マシンエージェントのセットアップ
GitHub リポジトリをセットアップします。
git clone https://github.com/Appdynamics/cloudfoundry-apps cd cloudfoundry-apps/cf-machine-agent
CODEマシンエージェントが、ダウンロードポータルから現在のディレクトリにダウンロードされていることを確認します。
MachineAgent-4.5.11.2163.zip cd MachineAgent-4.5.11.2163 (master)$ ls bin local-scripts monitorsLibs conf machineagent.jar readme.txt extensions machineagent.jar.asc readme.txt.asc lib monitors scripts
CODEマシンエージェントの拡張機能がある場合は、
cloudfoundry-apps/cf-machine-agent
拡張ディレクトリにコピーします。拡張機能は、extension_folder/{.jar, *.monitor.xml}
を含む .zip 形式である必要があることに注意してください。低下要因になっています。$ cp ~/Downloads/rabbitmqmonitor-2.0.2.zip extensions/
CODEmanifest.yml
のJAVA_OPTS
セクションを編集して、コントローラ情報を追加します。たとえば、詳細を入力した後のmanifest.yml
は次のようになります。--- applications: - name: appdynamics-machine-agent memory: 1G health-check-type: process no-route: true buildpack: java_buildpack_offline path: MachineAgent.zip env: JAVA_OPTS: '-Dappdynamics.agent.accountAccessKey=accessKey -Dappdynamics.agent.accountName=customer1 -Dappdynamics.controller.hostName=mycontroller.com -Dappdynamics.controller.port=<port> -Dappdynamics.agent.applicationName=myAppName -Dappdynamics.agent.uniqueHostId=myUniqueHostId -Dappdynamics.controller.ssl.enabled=false'
CODEpackage.sh
の実行このスクリプトは、拡張機能の zip ファイルをマシンエージェントのモニターディレクトリにパッケージ化し、マシンエージェントをクリーンアップして、VMware Tanzu の要件ごとにファイルの権限を調整します。
$ ./package.sh Creating workdir tmp Moving MachineAgent to tmp dir Unzipping MachineAgent Unzipping Extensions from ../extensions to ./monitors Directory Cleaning MachineAgent - removing *.asc files Adjusting permissions as per requirement from CloudFoundry Packaging MachineAgent
CODEcf push
を使用してマシンエージェントを展開します。$ cf push
CODEcf apps
を使用してアプリケーションが実行されていることを確認し、コンテナ(home/vcap/app)のアプリケーションログを確認して、拡張機能が機能していることを検証します。$ cf apps Getting apps in org appdynamics-org / space appdynamics-space as admin... OK appdynamics-machine-agent started 1/1 1G 1G
CODEMachineAgent.zip
内のconf/logging/log4j.xml
ファイルで、コンソールにログを記録するように設定できます(デフォルトでは、ファイルシステムにログを記録します)。