次世代アプリケーションパフォーマンスモニタリング Instana をゆるく試してみた
こんにちは、森です。 Instana という パフォーマンスモニタリング(APM)ソリューションを紹介していただく機会がありましたので、フリートライアルで使用感を試してみようと思います。
Instanaの概要
マイクロサービスに特化したAPMツールで、すべてのアプリケーションスタックの可視化と性能分析を自動で実現してくれるようになります。アプリケーションだけではなく、ハードウェア、OSの情報も取得することができ、相関図の可視化を行ってくれます。
- 設定をせずに自動でアプリケーションとサービスのテレメトリーを作成
- 瞬時に新しいサービスやアプリケーションを検出し依存関係を可視化マップを表示
- リアルタイムのリソース情報の収集(1秒間隔)
- マシーンラーニングによる、問題検知の自動化
といった特徴があり、取得したデータをフィルタリング、統合して分析、解析し、問題解決の時間を大幅に削減することができます。
どういったシステムに向いているのか
- 既存の環境をクラウド環境にマイグレーションする
- 既存の環境をマイクロサービスにマイグレーションする
- コンテナ、KubernetesまたはOpenShiftを採用している
- 監視コードを書くためにエンジニアリングリソースを費やしている
- 商用環境のパフォーマンス管理について開発者が関与していない
- アプリケーションパフォーマンスの解決に時間がかかっている
上記のようなシステムに向いているとのことでした。
様々なテクノロジーにも対応しています。
Technologies Supported by Instana
やってみる
マイクロサービスに特化したツールであるので、EKSを使用したKubernetes環境で実験したいと思います。 EKSは以前書いたブログ と同じ環境を使用します。
※ 今回は、取得できるデータがどのようなものなのか を試してみます。どう運用していくかなどの踏み込んだことには言及しません。
demoアプリまでインストールができた状態で以下に進みます。
1. フリートライアルでサインアップ
https://www.instana.com/trial/ にアクセスし、必要事項を入力します。Deployment Regionとして USとEUが選べますが、今回はUSとします。
サインアップ完了後、Instanaエージェントをインストールする方法が記されたページに遷移します。
左ペインで Kubernetes (vanilla and managed)
を選択し、Technologyの項目には AWS Elastic Kubernetes Service (EKS)
を選択します。作成したEKSクラスターの名前を入力するとdaemonset.yml
というファイルの中身ををコピーできるようになります。後ほど使用するので作業PCに保存しておきます。
2. EKSクラスターにInstanaエージェントをデプロイする
1で取得したdaemonset.yml
を使いデプロイします。
$ kubectl apply -f ./daemonset.yaml namespace/instana-agent created serviceaccount/instana-agent created secret/instana-agent-secret created configmap/instana-configuration created daemonset.extensions/instana-agent created clusterrole.rbac.authorization.k8s.io/instana-agent-role created clusterrolebinding.rbac.authorization.k8s.io/instana-agent-role-binding created
起動しているか確認するには、以下のコマンドを試します。
$ kubectl get pods --namespace instana-agent NAME READY STATUS RESTARTS AGE instana-agent-669pk 2/2 Running 0 2m23s instana-agent-z8w69 2/2 Running 0 2m23s
3. instanaにサインインしてデータが表示されているかみてみよう
エージェントが正しくインストールされていると、サインイン後のページに様々な情報が表示されています。
Infrastructure
2台のHostのなかにどのようなコンテナがあるのかを可視化してくれています。
コンテナを選択し、ドリルダウンしていくとより詳細な情報が記載されているページに遷移できるようです。
Kubernete
クラスターのサマリー(Namespace数、Service数、Node数、Pod数、Deployment数、Health),Namespaceごとの詳細も見れるようになっています。
CPU,Memoryリソース情報、Podの数/状態,中で起こったイベント、Serviceの情報などです。
Applications
コンテナの中で動いているアプリケーション情報を可視化してくれています。
Liveモード
1秒おきにデータを取得しているため、リアルタイムな状態が確認できます。
試しに手動でPodを削除したりしましたが、Liveモードできちんと情報が更新されます。
※ 1つのhostのHealthが正常ではなくなっている図
最後に
エージェントをインストールするだけなので導入は非常に簡単で、なおかつ凄まじい量のメトリクスを取得してくれました。 今回は触れませんでしたが、分析、解析も機械学習を利用して行ってくれるので、人間がやるべきことはかなり削減されますね。
得られた情報をどのように扱っていくのかが重要になるのではないでしょうか。
細かなとこまでご紹介ができませんでしたが、エージェントをインストールし、Instanaの画面を見ると、
なんかすげーな、これ
となるかとおもいます!
気になる方はぜひフリートライアルでお試しになってください。