4つのゴールデンシグナル(応答時間、スループット、エラー率、飽和状態)を監視すると、アプリケーションの健全性とパフォーマンスの概要を素早く確認できます。これらの測定基準は、従来はほとんど運用担当者、DevOps、またはSREの領域でしかありませんでした。しかし、アプリケーション開発者(これらのサービスを構築するコードの最終責任者)はどうでしょうか。
自分のコードがどのように動作しているかを理解し、顧客の問題をトラブルシューティングするには、サービスレベル、システムレベル、およびコード内のメソッドに至るまで、これらの重要なメトリクスを表示する豊富なコンテキストと観測可能なソリューションが必要です。Code-level Metrics を使うことによってデータ駆動型のコードレビュー、サービスレベルの遠隔測定、どのサービスやコード行がアプリケーションに影響を与えているかを確認することができます。
Code-level metrics
New Relic CodeStream IDE エクステンションは、コードレベルのメトリクスを広範かつ常時表示することで、ソフトウェアパフォーマンスを開発者の日々の業務に取り込みます。アプリケーションサービスに適用される 3 つのゴールデンメトリクスは、New Relic APM エージェントによって自動的に計測され、コードの各メソッドの上に CodeLens と呼ばれるテキストの行として表示されます。
この例では、応答時間、スループット、エラー率のゴールデンシグナルを見ることができます。
CodeLens を選択すると、各メトリクスを視覚化した一連のチャートが表示されます。また、New Relic の APM サービス サマリー ページをクリックすることで、より詳細な洞察を得ることができます。
さらに重要なのは、表示されるコードレベルのメトリックのサービスを変更することもできることです。これにより、ステージングやQAなど、他の環境でのコードのパフォーマンスを確認できるため、パフォーマンスの問題に対してより積極的なアプローチを取ることができます。これらの問題が本番環境に影響を及ぼす前に、先手を打つことができます。
データ駆動型コードレビュー
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 エージェントの更新
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 サービスの Summary ページで、さらにレポジトリとサービスの関連付けを行うことが可能です。右下の [Repositories] セクションに移動して追加を行います。
5. ファイルを開き、各 CodeLens を探します。
リポジトリがソースファイルを開き、インツルメンテーションされた各メソッドの上に表示されている CodeLens でゴールデンメトリクスを探します。
次のステップ
今回は Code-level Metrics のご紹介でしたが CodeStream でできることやより Code-level Metrics について詳細を知りたい方はこちらのドキュメントをご参照ください。
New Relic のアカウントをお持ちでない方はフリーアカウントとして登録していただくことで月間 100GB までの転送量の範囲内であれば1ユーザー無料で New Relic の基本的な機能の全てをご利用頂けますので是非お試しください。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。