次世代アプリケーションパフォーマンスモニタリング 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の画面を見ると、 なんかすげーな、これ となるかとおもいます! 気になる方はぜひフリートライアルでお試しになってください。

参考