重大な問題になる前に、開発中のアプリケーションパフォーマンスの問題に対処することは、多くの場合、エンジニアリングチームにとって事後対応的でストレスの多い作業です。New Relic CodeStreamにより、他のチームやエンドユーザーのレポートに依存することなく、関連するパフォーマンスデータにアクセスし、問題をより迅速に確認できるようになりました。開発ワークフローのオブザーバビリティを統合することで、リリースの頻度を迅速化できるようになりました。
New Relic CodeStreamをIDEと統合すると、コードがどのように実行されているかが把握でき、日々の開発業務に影響をおよぼすことなくアプリケーションのトラブルシューティングを行うことができます。どこで作業していても、高精度なレベルでテレメトリーデータにアクセスできるため、IDEで作業しながら重要なテレメトリーデータを取得できます。
New Relic CodeStreamにより、以下のことが可能になります。
- テレメトリーデータ(レスポンスタイムやエラー率など)をメソッドレベルまで表示可能な、情報に基づく開発用のコードレベルのメトリクス。これにより、コードベース内で問題を引き起こしている関数が特定できます
- サービスレベルのテレメトリーにより、IDEで開いているリポジトリに関連付けられているサービスのテレメトリーデータ、レスポンスタイムとエラー率の重要なシグナル、エラーと脆弱性をより迅速に検出するために呼び出すサービスにアクセスできます。
以下の動画で New Relic CodeStreamをご覧ください。
Code-Level Metricsによるエンジニアリング速度の向上
ソフトウェア業界における急速なイノベーションは、チームの成果と、高品質のコードをいかに迅速にリリースできるかによって評価されます。CodeStreamは、より優れたコードをより短時間でリリースするために必要な情報を提供します。CodeStream IDE拡張機能は、テレメトリーデータを常時表示することで、開発者の日々の業務におけるソフトウェアパフォーマンスにつながります。Code-Level Metricsでは、レスポンスタイムとエラー率を表示します。これはIDEのコード内の各メソッド上にテキスト行として表示され、アプリケーションの品質と信頼性を向上させるのに役立ちます。
過去30分間のメトリクスが表示され、その時間枠のサンプルサイズも含まれます。
また、各メトリクスをクリックすると、メトリクスが可視化された一連のチャートが表示されます。New RelicでAPMサービスの概要ページをクリックすることで、さらなる知見を得ることができます。
ここでひとつ、例をあげて解説しましょう。
メトリクスがプルされるサービスを変更し、ステージングやQAなどのより低いレベルの環境でコードがどのように動作しているかを確認し、パフォーマンスの問題に対してより積極的なアプローチを取ることもできます。これらのメトリクスで、これらの環境がお客様に影響を及ぼし収益に影響が出る前に先手を打ち、開発ライフサイクルを最適化できます。
データ駆動型コードレビューへの移行
CodeStreamを使用すると、プルリクエストとフィードバックリクエストの両方について差分を表示し、Code-Level Metrics を確認できます。これにより、より詳細なコードレビューを実現できます。これにより、どのコードが確実に機能しているかを含め、コードのパフォーマンスを把握できるため、コードレビュープロセスが改善されます。
パフォーマンスに問題がある場合、プルリクエストの一部として対処することができます。コードが既に変更されている場合は、未解決のパフォーマンス問題に対処する絶好の機会です。ユーザーに影響が及ぶ前にコードを簡単に戻すことができます。
サービスレベルのテレメトリーによる問題の迅速な特定と解決
各メソッド上のCode-Level Metricsのほか、PRとフィードバックリクエストでは、すべてのサービスがどのように連携しているかを確認することもできます。全体的なサービスの健全性を確保するには、すべてが相互にどのように関連し機能しているかの「全体像」を把握することが非常に重要です。発生する可能性のある重大なインシデントを迅速に特定し、対応できるようになります。
問題の報告に関して、IT/Opsチームに依存していました。New Relic CodeStreamはこれまでのやり方を一変します。オブザーバビリティセクションでパフォーマンス情報にアクセスできるようになります。
以下のような機能が利用可能です。
- ゴールデンメトリクス:サービスがどのように機能しているかを示す、レスポンスタイムとエラー率の重要なシグナル
- サービスレベル目標(SLO):サービスパフォーマンスと定義済みのSLOとの比較
- 脆弱性:リポジトリに関連するNew Relic脆弱性管理サービスの脆弱性
- 関連サービス:自身のサービスを呼び出す、または自身のサービスによって呼び出されるサービスのゴールデンメトリクス
- エラー:サービスで発生した最近のエラー。スタックトレースをナビゲートして問題を発見し、チームメンバーと協力して解決
New Relic CodeStreamを使い始める
始める準備はできますか?これらの手順に従って、IDEにCodeStreamを統合しましょう。現在、フレームワークにはPython、Ruby、.NET、Java、PHP、Node.js、Goが含まれています。
New Relicのアカウントをまだお持ちでありませんか?無料のアカウントにサインアップしてください。
1. 最新のAPMエージェントをインストールする
Code-Level Metricsをサポートするバージョンに、APMエージェントをインストールまたはアップデートすると、30以上のNew Relicの機能とともにCodeStreamを入手できます。
注:Node.jsとGoエージェントについては、エージェントを設定する際にCode-Level Metricsを有効にする必要があります。特定のエージェント要件に関するドキュメントを確認してください。
2. CodeStream拡張機能をインストールする
IDEのマーケットプレイスにアクセスして、CodeStream拡張機能をインストールします。最新バージョンを実行していることを確認してください。
3. CodeStreamにサインアップする
拡張機能をインストールすると、CodeStreamアカウントを作成するように促されます(既存のNew Relicユーザーも同様です)。
New Relicでサインアップするを選択します。New RelicユーザーAPIキーを入力するよう促されます。APIキーを入力したら、CodeStreamにサインアップされ、New Relicアカウントに接続されます。
4. リポジトリをAPMサービスと関連付ける
IDEで、コードレベルのメトリクスを確認したいAPMサービスに対応するリポジトリを開きます。リポジトリがまだAPMサービスと関連付けられていない場合、CodeStreamのオブザーバビリティセクションに、New Relicエンティティを選択して関連付けるよう促すメッセージが表示されます。
このリポジトリに対応するサービスが複数ある場合(異なる環境向けの異なるサービスなど)New RelicのAPMサービスの概要ページで、repo<>のさらなる関連付けを行うことができます。右下にあるレポジトリセクションに進みます。
5. ファイルを開き、各CodeLensを探す
リポジトリからソースファイルを開き、インストゥルメントされた各メソッドの上にあるCodeLensでゴールデンメトリクスを探します。
次のステップ
オブザーバビリティメトリクスでのコンテキストで、コードがメソッドレベルでどう機能しているかの詳細な洞察にアクセスできるため、コードをより短いサイクルでプロアクティブに改善し修正できます。
CodeStreamを使用して何ができるか、さらに詳細については、CodeStreamユーザーガイドをご覧ください。
まだNew Relicを使用していない場合は、無料アカウントにサインアップしてください。アカウントには、毎月100GBの無料データ取込み、1名の無料フルアクセスユーザー、および無制限の無料ベーシックユーザーが含まれます。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。