はじめに
IBM Instana Observability(以下Instana)は、可観測性(Observability|APM)を実現する監視ソフトウェア/SaaSです。
また、IBM Turbonomic (以下Turbonomic)は、継続した最適化(Continuous Optimization|CO)を実現するITリソース管理ソフトウェア/SaaSです。
この二つは、それぞれ単独でも各々の目的でクラウド監視・管理に利用できる強力なツールですが、密な連携にてユーザ様にお役立ててきる拡張機能を提供できます。
CNCFで、両ツールはLandscapeで紹介されており両ツールの連携は、Observacility and Analysis,Continuous Optimizationコンセプトを完全に実現できるソリューションとして紹介、IBMから開発されて提供されています。
この連携の内容は、公式ドキュメントの以下で公開されています。
https://www.ibm.com/docs/ja/instana-observability/current?topic=apis-integrating-turbonomic
*CNCF:Observatility-IBM Instana ご紹介
https://landscape.cncf.io/?item=observability-and-analysis--observability--instana
*CNCF:Continuous Optimization-IBM Turbonomic ご紹介
https://landscape.cncf.io/?item=observability-and-analysis--continuous-optimization--ibm-turbonomic
前提条件
Instana-Turbonomic両方向連携をするための前提条件は、以下になります。
・InstanaおよびTurbonomic標準ライセンス(SaaSまたはオンプレミス版)
・Instanaホストエージェント --> Turbonomic本体, Turbonomic本体 --> Instanaバックエンド本体の方向で、https:443通信が許可されできる事
[Turbonomic]
・Turbonomicは、バージョン8.13.6以降
・Turbonomicとして、AWS/Azureが管理できるようにターゲット設定されている事
・両方向連携をする前に、Turbonomic側にInstanaターゲットの接続設定が完了している事
*詳細は、https://www.ibm.com/docs/ja/tarm/latest?topic=targets-instana
・Turbonomic側で、この連携を設定するには、「サイト管理者」、「デプロイヤー」、または「自動化機能」のロールが割り当てられている事を確認ください
[Instana]
・Instanaバージョン242以降
・ユーザ環境でAWS/Azureデータを収集するには、InstanaホストエージェントをEC2、Azure VMへ展開され仮想マシンの管理・監視ができている事
*この連携では、ホストエージェントはroot権限を必要としないので、非rootユーザーとしてインストールするのがベストプラクティスです。また、Kubernetesクラスタにエージェントを展開する場合は、リモート監視用に最適化されたInstanaリモートエージェントを使用することもできます。
・連携完了後に、Instana UIからTurbonomicの最適化アクションを実行するには、Instanaの「自動化アクションの実行」権限が必要です。
・Instanaのオンプレミス版インスタンスでは、自動化フレームワークの機能フラグを有効にする必要があります。
・Instanaのクラシックエディション(Docker版)は、この連携はサポートされていません。
Turbonomic側クラウド管理・最適化について
Turbonomicのクラウドリソース最適化機能として、AWS/Azureが管理されていてそのリソース情報が可視化されています。また、そのリソース情報の分析により性能が不足しておりEC2インスタンスをスケールアップしてリソースを追加した方が良いか、あるいはCPUやメモリリソースが余っており使う必要な無い高性能・高価なインスタンスサイズを使っていないか・スケールダウンの最適化アクションを、すでに提示してくれています。
また、Turbonomic側のターゲットとしてすでにInstanaは登録されており、Instana側のアプリ構成や性能情報を取得・可視化ができている状態となっています。
*連携用のInstanaの権限(連携APIトークンに設定する)は、以下を選択しています。
・アプリケーションの構成
・自動化アクションの実行
Turbonomic側へInstana情報の連携に成功すると、アプリの構成や性能が可視化できるようになります。

Instana側クラウド管理・最適化について
Instanaのホストエージェントはすでに、AWSのEC2に展開されておりObservability監視機能によってAWSの環境がしっかりと管理・監視されている状態です。
Turbonomic側で、InstanaホストエージェントからのAPI通信に使うAPIユーザの作成
*「自動化機能」権限を持った"instana"ローカルユーザを作成しています。

Instana側で、Turbonomic接続用センサーの設定
Turbonomic本体(SaaS, オンプレミス版)へ接続できるOS-VMに、Instanaホストエージェントを展開します。
*本記事では、監視しているAWS-EC2上へ展開したInstanaホストエージェントよりTurbonomicへ接続します。
Instanaホストエージェントの設定ファイル(デフォルト:/opt/instana/agent/etc/instana/configuration.yaml)を開きます。

#コメントアウトされている"Turbonomic"箇所を設定します。
#Turbonomic
com.instana.plugin.turbonomic
enabled: true
host: 'https://svc-useast.event.techzone.ibm.com' #httpsで始まるFQDNである事
target: 'ibmdevsandbox-instanaibm.instana.io' #Turbonomicへ設定したInstanaホスト名
auth:
username: instana #Turbonomicで作成した連携APIユーザ名とPW
password: XXXXXXX
Turbonomic側で、分析されて最適化の提示推奨がされたAWSのEC2アクションを見ていきます。
AWS-EC2 "instana-test"で、Saving(節約)の最適化アクションが提示されています。

節約のための最適化アクションの詳細は、以下の内容になりt3.medium --> t3a.mediumへの提案になります。

Instana側を見ていきます。
Turbonomicの最適化アクション(Efficiency)の提案が、Instana側で同期されて表示されています。
同時に、アプリの待ち時間を可視化されています。
詳細を、開くとInstanaからの実行画面が開きます。
*リソースの影響は、近い将来EC2-VMのvCPUや仮想メモリサイズ変更前後の値が、「現在」「アクション後」の部分に表示されるようになります。現時点ではReplica数となっており、まだ正確な値が表示されません。

こちらの「アクションの実行」を押すと、TurbonomicへAPI連携がされて、AWSへAPIによりインスタンスタイプのアクションが実行されます。AWSの操作をしなくても、InstanaからAWSインスタンスタイプの変更ができます。
なお、こちらはインスタンスタイプは異なります(t3.large)が、実際にInstanaからタイプの変更を実行した操作結果の画面になります。

エージェントログには、デフォルトのログレベルですとAuthtoken API通信の履歴しか出ないので注意!

AWSのマネージメントコンソールで、確認します。
インスタンスタイプが変更されて"初期化しています"ステータス、
*AWSのEC2は、インスタンスタイプを変更するには再起動が必要です。

Instanaのアプリケーション監視画面のアクションの箇所に、実行した結果、フラグが表示されます。

Azureの場合
Azure側の変更前のVM画面になります。 現在:Standard F4s v2

Turbonomic側の提示した最適化アクション画面になります。

AzureへAPI連携されてVMサイズの変更がされています。 変更後:Standard F2s v2

終わりに
如何でしょうか?
今まで、Turbonomicを触った事がある方はTuebonomic側のみでの最適化アクションの可視化と実行を体感していたと思います。
本記事では、さらにObservabilityツールであるInstanaでアプリケーションの構成や、深い性能値分析、トレースを分析しながらTurbonomicが提示するクラウドの最適化アクションの提案を考慮、実際のAPIによる実行までできるイメージを持って頂けたかと思います。
現時点では、制限事項で説明した通り最適化アクション前後のリソース構成情報は、まだInstanaに表示されないですが、近い将来、完全に連携をして表示する機能が実装されます。
CNCFでも提唱しているObservability and Analysis, Continuous Optimizationの世界が完全に実現できる日も、本ソリューションで近いのではないでしょうか?
クラウド管理で課題を感じているユーザ様に、少しでも本ソリューションがお役立てできれば幸いです。


















