Posted at
New RelicDay 12

New Relic APM で遅い特定のトランザクションを簡単に見つける方法

More than 1 year has passed since last update.

デジカの宮澤です。アドベントカレンダー12日目です。ひたすら APM の機能ばっかり紹介してきていますが、今回も New Relic APM (アプリケーションパフォーマンス監視) の機能の紹介です。小粒なので、さくっと終わります。

New Relic APM の使い方として多いのは、遅い処理時間のトランザクションを探して、トランザクショントレース(ある時点の単体のトランザクション)を表示し、その処理で呼ばれている SQL などを見て、パフォーマンス改善のとっかかりとする。という流れが多いかと思います。

そして、トランザクショントレースとして記録されるのは、全トランザクションが対象ではありません。(さすがに、全トランザクションの詳細なデータを収集しているとアプリ自体にかかるオーバーヘッドが高くなります)

では記録されるトランザクションの定義はなんでしょうか? これは設定値で決まっています。デフォルト値は 2秒です。つまり、2秒以上のトランザクションだけがトランザクショントレースとして記録されます。

この閾値の定義や関連する設定項目、変更方法は、11日目のアドベントカレンダー:New Relic APM: SQL レベルまで見えるトランザクションの定義とその設定に書いてあるので、気になる方はそちらも併せてご覧ください。

さて、ようやく、今日の本題です。

上記で説明したトランザクショントレースのあるトランザクションに簡単にアクセスする方法です。

1つは Transactions ページで、"Slowest average response time"で並び変えると、トランザクショントレースをもつトランザクションが見つかります。ただ、これだとページ移動して、並び替えて、トランザクションを1つ1つ確認する手間があります。ここではもっと簡単な方法を紹介します。

それは、Overview ページの "Transaction" を見ます。(メインのチャートの直ぐ下、エラー率の左)これは、遅いトランザクショントップ5のリストです。トランザクション名とその横に、掛かった平均処理時間が表示されています。以下がそのリストです。

apm_transaction_trace_list.png

そのトランザクション名の下に、"Transaction traces" とあり、その横に3つ数字が並んでいます。これは、そのトランザクションで収集したトランザクショントレースの遅い順トップ3です。これは、リンクになっており、数字を押すと、トランザクショントレースページが表示されます。

ちなみに、トランザクショントレースは常に収集される訳ではないので、収集されていない場合は、数字の部分は、"n/a" と表示されます。その場合は、そのトランザクションではトランザクショントレースは収集されていない(つまり、SQL とか確認できない)ということが簡単に判別できます。

以上、どうでしたでしょうか? この方法を使えば、ワンクリックで、トランザクショントレースにアクセスできるようになります。是非、活用して、効率よいパフォーマンス改善に役立ててください。