4つのゴールデンシグナル(応答時間、スループット、エラー率、飽和状態)を監視すると、アプリケーションの健全性とパフォーマンスの概要を素早く確認できます。これらの測定基準は、従来はほとんど運用担当者、DevOps、またはSREの領域でしかありませんでした。しかし、アプリケーション開発者(これらのサービスを構築するコードの最終責任者)はどうでしょうか。

自分のコードがどのように動作しているかを理解し、顧客の問題をトラブルシューティングするには、サービスレベル、システムレベル、およびコード内のメソッドに至るまで、これらの重要なメトリクスを表示する豊富なコンテキストと観測可能なソリューションが必要です。Code-level Metrics を使うことによってデータ駆動型のコードレビュー、サービスレベルの遠隔測定、どのサービスやコード行がアプリケーションに影響を与えているかを確認することができます。

Code-level metrics

New Relic CodeStream IDE エクステンションは、コードレベルのメトリクスを広範かつ常時表示することで、ソフトウェアパフォーマンスを開発者の日々の業務に取り込みます。アプリケーションサービスに適用される 3 つのゴールデンメトリクスは、New Relic APM エージェントによって自動的に計測され、コードの各メソッドの上に CodeLens と呼ばれるテキストの行として表示されます。

この例では、応答時間、スループット、エラー率のゴールデンシグナルを見ることができます。

CodeLens を選択すると、各メトリクスを視覚化した一連のチャートが表示されます。また、New Relic の APM サービス サマリー ページをクリックすることで、より詳細な洞察を得ることができます。

さらに重要なのは、表示されるコードレベルのメトリックのサービスを変更することもできることです。これにより、ステージングやQAなど、他の環境でのコードのパフォーマンスを確認できるため、パフォーマンスの問題に対してより積極的なアプローチを取ることができます。これらの問題が本番環境に影響を及ぼす前に、先手を打つことができます。

choose app codestream

データ駆動型コードレビュー

Code-level Metrics は、プルリクエストとフィードバックリクエストの両方について、IDEの差分ファイル内にも表示されます。

このデータは現在本番環境で動いている製品版がどのように動作をしているかを知らせてくれます。もしパフォーマンス上の問題があれば、プルリクエストの一部として対処されていることを確認することができます。そうでなければ、差し戻して対応をします。

コードが既に変更されている場合、パフォーマンスに関する未解決の問題に対処する絶好の機会になります。

サービスレベルのテレメトリー

実際のコードがどのように動作しているかを見ることは、間違いなく日々の仕事にとって最も重要なことですが、より大局的に見ることも重要です。このような疑問について考えてみてはいかがでしょうか。
 

  • 私が担当しているコードは、あるサービスを構築するものです。そのサービスはどのように機能しているのでしょうか?
  • これらに関連しているサービスはどうなっているのでしょうか?

何かトラブルがない限り、開発者がこのような観点を目にすることはほんとどないかと思います。

CodeStream のオブザーバビリティセクションは、この古いアプローチを変えます。IDE で開いているレポジトリに関連するサービスのゴールデンメトリクスを一目で見ることができます。また、一度クリックするだけで、あなたのサービスを呼び出す、または呼び出されているサービスのメトリクスを見ることができます。

このスクリーンショットでは、あるサービス、そのサービスが呼び出すサービス、呼び出されるサービスについて、応答時間、スループット、エラー率の例を見ることができます。
​​​​​​​

このようにしてサービスレベルのテレメトリーを使用することにより、全体像を把握することができます。

CodeStream のビデオウォークスルー

これらの機能の簡単な解説は、Nerd Bytesのビデオでご覧頂けます。

Code-level Metricsを簡単に利用するステップ

以下のステップに従ってください。Code-level Metricsは現在、Java、Python、Ruby、.NET、Goでサポートされていることに注意してください。PHPとNode.jsのサポートは現在進行中です。

1. APM エージェントの更新

APM エージェントインストール又はエージェントを Code-level Metrics のサポートするバージョンに更新します。
以下のバージョンからが対応しているバージョンになります。

  • .NET Version 10.2.0 or later
  • Python Version 7.10.0.175 or later
  • Ruby Version 8.10.0 or later
  • Go Version 3.19.2 or later

また .NETGo に関しては code-level metrics を有効化するようにエージェントの設定が必要です。

2. CodeStream extension のインストール

CodeStreamエクステンションは、VS Codeや JetBrains IDE用の他のエクステンションと同様に、IDEのマーケットプレイスにアクセスしてインストールしてください。 また最新バージョンであることを確認してください。

3.  CodeStream に登録

拡張機能をインストールすると、 New Relic  のユーザーであっても CodeStream のアカウントを作成するように促されます。

CodeStream にはいくつかのサインアップオプションがありますが Sign up with New Relic を選択することをお勧めします。
ワンステップで CodeStream にサインアップし、 New Relic のアカウントに接続されます。そこで New Relic の API キーを入力するように促されます。

以下の画像は Jetbrains 製品の場合の API キーの入力を求められる画面になります。

4. APM  とレポジトリの関連づけ

code-level metrics を表示させたい APM サービスに対応するリポジトリを IDE で開きます。サービスがまだ皆様の管理しているリポジトリに関連付けられていない場合、CodeStream の Observability セクションに、関連付けするように促すメッセージが表示されます。

リポジトリをNew Relic APMサービスと関連付けるCodeStreamのオブザーバビリティセクションのスクリーンショット

このレポジトリに対応するサービスが複数ある場合(環境ごとに異なるサービスなど)、New Relic の APM サービスの Summary ページで、さらにレポジトリとサービスの関連付けを行うことが可能です。右下の [Repositories] セクションに移動して追加を行います。

 

5. ファイルを開き、各 CodeLens を探します。

リポジトリがソースファイルを開き、インツルメンテーションされた各メソッドの上に表示されている CodeLens でゴールデンメトリクスを探します。