Edited at

New Relic APM を使ってシステムの全体像からアプリ連携の問題箇所を簡単に特定しよう

More than 1 year has passed since last update.

アドベントカレンダー5日目。New Relic APM のサービスマップ機能についての説明です。

サービスマップは、システムで複数のサービスやアプリを連携して使っている際に、非常に便利な機能となっています。

サービスマップは、以下のようなシステムの全体像を俯瞰して確認できるマップです。


  • どのサービスが連携しているのか?

  • 各サービスの状態はどうか?(アラートが出ていないか?)

と言ったことが確認できます。

このマップは自動的に作成され、同じ New Relic アカウントで管理しているアプリであれば、このマップを見れば、全体像を把握できます。

そのため、複数部署に分かれて開発されている場合でも、なるべく同じアカウントでアプリを管理することをオススメします。


何が嬉しいのか?

このマップの一番の利点は、例えば、サービスAがサービスBを呼び出していた場合に、サービスAで何かアラートが出た場合に、それが、サービスAの問題だけの問題なのか?サービスBで障害が起きており、その結果、サービスAも影響をうけて、サービスAでもアラートがでているのか?が一目で分かることです。そのため、サービスAを散々しらべた結果、実際は、サービスBの問題だったと分かるといったことが減ります。

これにより、複数チームで開発している場合は、マップを共有することで、同じコンテキストでトラブルシューティングができるので、コミュニケーションがスムーズに進みます。

これは、アカウントで管理しているアプリ間だけでなく、外部サービスを利用していた場合も同じです。但し、これらのアラートの状態を正しく把握するのには、適切にアラート設定がされていることが必要となります。

アラート設定に関しては、アドベントカレンダー4日目の記事「新アラートサービス: New Relic Alerts と今後予定されているアラートの新機能に」をご覧ください。

また、連携しているデータストアの正常性を把握できます。こちらに関しては3日目の記事「New Relic APM でデータストアをインスタンス単位でパフォーマンスを表示」に詳しく解説していますので、そちらをご覧ください。


簡単に各サービスのパフォーマンスもチェックできる

サービスマップでは、各サービスの状態だけでなく、現在の具体的なパフォーマンスも簡単に見ることができます。各サービスをクリックすると、以下のように直近30分のパフォーマンスの概要が簡単に見れます。そのため、いちいち、各アプリの Overview ページなどに移動しなくても、全体像を見ながら、各サービス、レイヤーのパフォーマンスを確認できます。


誰が使えるの?

サービスマップは、PRO プランを使っている方のみが利用できます。


併せてよみたい

サービスマップに関する詳しい説明はドキュメント「サービスマップ: アプリケーションのアーキテクチャ全体を視覚化して監視する」もご覧ください。


まとめ

どうでしたでしょうか? 現在のソフトウェアは、モノリシックな方向から、マイクロサービス(とまではいかなくても)など複数サービス連携が当たり前となってきています。そのような状況に非常に適した機能となっています。

この機能を、効率よく問題を特定し、チーム間で問題を共有し、素早く問題を解消することに役立てみてはいかがでしょうか。