APMについてのプラクティスをまとめた記事「10 Tips for Mastering Application Performance Monitoring with New Relic」の抄訳です。
この記事では、高度なAPM (Application Performance Monitoring)のスキルを身につけるための方法をご紹介します。APMの機能(現在ではNew RelicのFull-Stack Observabilityの中にはいっています)と、それがみなさんのビジネスにどのようなメリットをもたらすかについて、深く理解することができるようになります。
APMの成熟度を次の3つのステージに分けて、それぞれの段階でのベストプラクティスを見ていきましょう。
- アーリー・ステージ
- スタビリティ・ステージ
- イノベーション・ステージ
この記事で紹介しているコツは、先日公開されたホワイトペーパーにまとめられています。では、始めましょう!
APM成熟度カーブについて
APMの基本をすでに知っている方は、チームや組織に真の成果をもたらす分野に注力するときがきました!
New RelicのAPMは包括的な計装を提供しています。カスタマイズ可能で詳細なエラー分析、トレース分析など、柔軟な計装を構成することができます。
APMを最大限に活用するには、段階的な学習プロセスが必要です。このガイドでは、3つのステージに分けて、情報を整理しています。
- アーリー・ステージ: すぐに始められて、すぐに成果が出せる領域
- スタビリティ・ステージ: 全体的な可視性をさらに強化するために役立つプラクティス
- イノベーション・ステージ: 追加の計装やダッシュボードを通じてすべてのスキルをまとめ、体験をカスタマイズしていきます
APMをマスターする: アーリー・ステージ
Tip 1: APMトランザクションでパフォーマンスを改善する
APMのTransactions Overviewページでは、改善したり最適化したりできる可能性のあるトランザクションを見つけることができます。アプリケーションに関する、次のような情報を確認できます:
- どのようなトランザクションがあるか
- 処理時間を必要としているトランザクションのランキング
- スループット(1分当たりのリクエスト数)
ウェブトランザクション以外のもの(メッセージ処理、バックグラウンドの処理など、ウェブリクエストの処理ではないプロセスやジョブなど)については、トランザクションページでCPUやメモリ使用量の概要を確認できます。
Tip 2: アプリケーションのエラーを特定し、対応する
エラーを正確に把握することで、チームは素早く、問題解決のための努力に集中できるようになります。New Relic APMのError Analyticsで]は、クラスごとにエラーの内容をグループ化し、各種フィルターで原因を切り分け、パフォーマンスの低下を繰り返す原因となっている問題やパターンを特定することができます。
Tip 3: 外部依存性を読み解く
APM Service Mapsを使うと、外部サービスとの接続や依存関係から、サービス全体のアーキテクチャを素早く把握できるようになります。この情報を使って、サービス間の問題を把握し、解決することができます。
Service Mapは、次のようなアプリケーションやサービスに特に役に立つでしょう:
- 高いサービスレベルが求められている: チームが最も関心を持っているアプリケーション
- 中心となっている: 接続数が多いアプリケーション
- 高いトラフィックのアプリケーション
APMをマスターする: スタビリティ・ステージ
Tip 1: 問題を素早くキャッチする
Alertsを使って、アプリケーション全体に渡ってフルスタックなアラート環境を整えましょう。そうすることにより、問題が重大になる前に気づき、対応することができるようになります。また、組織にとって最も重要な指標に関するアラートポリシーを設定するのもおすすめです。
Tips 2: 重要なトランザクションに注意する
New Relic APMでは、任意のトランザクションをKey Transactionとして区別して扱うことができます。Key Transactionは監視機能をカスタマイズすることもでき、独自のアラートポリシーを設定することができます。
Tips 3: 分散システムでのエラーを診断する
Distributed Tracingを使うと、マイクロサービスを経由するすべてのリクエストのパスを追跡することができます。イベントの連鎖を最初から最後まで追跡し、すべてのリクエストのレイテンシをピンポイントで特定し、ボトルネックとなる可能性のあるステップを特定することができます。
APMをマスターする: イノベーション・ステージ
Tip 1: パフォーマンスをリアルタイムで追跡する
ソフトウェアのデプロイには、常にリスクが伴います。デプロイメントによって引き起こされる変化を把握できない場合には、危険性が特に高まります。New RelicのDeployment Markerを使えば、デプロイ後にソフトウェアのパフォーマンスがどのように変化するかを確認することができます。問題が生じた場合には、迅速かつ効果的に対応することができるようになります。
Tip 2: 本番環境でのボトルネックを把握する
New RelicのThread Profilerは低負荷で、本番環境で実行できるものです。指定された期間のスタックトレースを収集・集約し、コールツリーを表示します。これにより、本番環境でのパフォーマンスのボトルネックを発見することができるようになります。
Tip 3: 計装を独自に追加する
Custom Instrumentationを使うことにより、APMでは自動的に計測していないコードの内部を詳細に把握することができます。Custom Instrumentationは次のような場合も有効です:
- 計測の必要がないトランザクションを計測しないように指定する
- トランザクションにカスタム属性を追加して、より迅速なトラブルシュートを実現する
Tip 4: 柔軟なダッシュボード
New Relic One Dashboardでは、New Relicに集められたデータを簡単に組み合わせて、ユーザーフレンドリーでインタラクティブなダッシュボードを構築することができます。これにより、システムやアプリケーションの状態をリアルタイムに把握することができます。
いかがでしたか?New Relic APMを使いこなす上で、より自信がもてるようになったことでしょう!より詳しい内容がホワイトペーパーにもまとめられていますし、New Relic Explorers Hubもぜひご覧ください。New Relicを初めてご利用になる方は、無料アカウントにサインアップして、今すぐこのプラットフォームをお試しください。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。