New Relic APM でデータストアをインスタンス単位でパフォーマンスを表示


アドベントカレンダー三日目。今日は、最近追加された、APM の新機能、「データストアをインスタンス単位で可視化」できる機能を紹介。

複数データベースを利用している方、複数のアプリで1つのデータベースを利用している方には、パフォーマンスが気になった場合に便利な機能だと思います。

何ができるの?

ざっくり言うと、以下ができるようなった。

  • 複数のデータストア・インスタンスを使っている場合に、個々のインスタンスのパフォーマンス(クエリ処理時間、スループット)が見える
  • 1つのデータストア・インスタンスで複数アプリを使っていた場合に、アプリごとのパフォーマンスが確認できる
  • データストアの健全さが一目でわかるヘルスインジゲーターがついた(アプリにあったが、データストアにもこの度付いた)
  • トランザクション・トレースなので、個々のクエリを見た際に、それが、どのデータストアなのかの情報を表示するようなった

もぅちょっと個々を詳細に説明します。

サービスマップページ

※ サービスマップは、APM が管理しているアプリのアーキテクチャを自動的に視覚化するページ。

  • データストアのヘルスインジゲーター: データストアのパフォーマンスが正常化どうかを一目で確認できるようなった。アプリにはあったが、データストアにもついた。
  • 1つのデータストアで複数のアプリ、複数インスタンスを利用している際に、フィルター機能で絞りこみが行えるようなった。

トランザクション・トレース ページと スロークエリ・トレース ページ

  • トランザクション・トレースページの Trace details タブや Database queries タブでクエリと一緒にデータベース名とインスタン情報が表示される。

インスタンス単位でアラートの設定ができる

New Relic Alerts のアラート条件で、custom metric に以下のように指定することで、インスタンス単位でレスポンスタイムやスループットのパフォーマンスが低下した際に、アラート通知の設定ができる。

Datastore/instance/vendor/host/port

使う条件は?

この機能に必要な情報を収集する APM エージェントのバージョンを使っている必要があります。またデータベース・ドライバにも依存するので、詳しくは、「互換性と要件(日本語)」に書いてあるのでそちらをチェック。

ここでは、簡単に APM エージェントのバージョンのみ書いておきます。

  • Ruby: 3.17.0 以上 (1.4 は、2016/10/18 リリース)
  • PHP: 6.8 以上 (6.8 は、2016/11/9 リリース)
  • Java: 3.33.0 以上 (3.33.0 は、2016/11/2 リリース)
  • .NET: 未対応
  • Python: 2.72.0.52 以上 (3.33.0 は、2016/10/18 リリース)
  • Go: 1.4 以上 (1.4 は、2016/10/12 リリース)
  • Node.js: 1.31.0 以上 (1.31.0 は、2016/10/12 リリース)

メモ: 現在、自身が使用バージョンが気になる場合は、New Relic にログインし、APM > (アプリを選択) > 左サブメニューの一番下の方の Environment > `Environment snapsho' タブの左に、サーバーごとにインストールしているエージェントバージョンが表示されるので、それをチェック。

誰が使えるの?

この機能は、有料版のみの提供。つまり、Essentials と Pro をお使いの方が対象。

また、サービスマップ上でのデータストアのインスタンスの可視化機能は、PRO のみの提供。

まとめ

以上、いかがでしたでしょうか? 複数データベースを利用している方、複数のアプリで1つのデータベースを利用している方には、パフォーマンスが気になった場合に便利な機能かと思います。

あわせて読みたい: もっと詳細に知りたい方は以下が参考になります。
- ブログ記事:[翻訳] New Relic APM を使って個々のインスタンスにまで深掘りしてデータベースのパフォーマンスを監視、トラブルシューティングする
- ドキュメント:データベースとインスタンスレベルのパフォーマンス問題の分析(日本語)

このように、APM は日々進化していますので、ちょいちょいリリースノートをチェックしてみると、思わぬ新機能が使えるようなっていることがあります。

この機会に是非、最新版にバージョンアップしてみてください。

この機能以外に今年追加された機能なんかは別の日に解説しまーす。