• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

CodeStream を使用した IDE でのオブザーバビリティ

New Relic CodeStreamを使用すると、開発者は、IDEに可観測性をもたらし、それを日常業務の一部にすることで、担当するコードが本番環境でどのように実行されているかを確認できます。

CodeStreamとNew Relicの接続

IDE でオブザーバビリティにアクセスするには、 New Relic ユーザー API キーを介して CodeStream を New Relic に接続する必要があります (New Relic ユーザー API キーの詳細については、こちらをご覧ください)。

IDE にオブザーバビリティを導入するには、ユーザー キーを使用して CodeStream を New Relic に接続します。

ユーザー API キーを取得したら、CodeStream のObservabilityセクションでConnect to New Relic をクリックし、ユーザー API キーを貼り付けてConnect to New Relicをクリックします。New Relic ユーザー API キーを使用して CodeStream にサインアップした場合は、すでに接続されています。

CodeStream でオブザーバビリティ機能を使用するには、 コア ユーザーまたはフル プラットフォーム ユーザーの New Relic ユーザー タイプが必要であることに注意してください。

リポジトリをNewRelicエンティティに関連付ける

CodeStream で使用できるテレメトリ データはコンテキストに依存します。つまり、IDE で開いているコードにすべて関連しています。これを行うには、CodeStream は、開いているリポジトリによって New Relic のどのエンティティが構築されているかを知る必要があり、これらの関連付けを行う方法はいくつかあります。

関連付けが存在しない場合、CodeStream が関連付けを行うように求める場合があります。たとえば、CodeStream で New Relic からのエラーを表示しようとして、エラーが属するエンティティがリポジトリに関連付けられていない場合、CodeStream は適切なリポジトリを特定するように求めます。CodeStream ペインの可観測性セクションでも、IDE で現在選択されているリポジトリを関連付けるように求められます。

場合によっては、リポジトリを複数のエンティティに関連付ける必要があります。たとえば、さまざまな環境 (実稼働やステージングなど) を表すさまざまなエンティティがあり、それらがすべて同じリポジトリに関連付けられている場合があります。現在のリポジトリを追加のエンティティに関連付けるには、[別のサービスを追加] をクリックします。

プロンプトが表示されたときにその場でこれらの関連付けを行うことは、開始するのに最適な方法ですが、次のいずれかの方法をお勧めします。これは、継続的な手動作業が少なくて済み、リモート URL の設定ミスなどのエンド ユーザーのミスの可能性を排除できるためです。

これらの方法のいずれかを使用して、SSHまたはHTTPS形式のいずれかでリモートURLを指定できます。

  • git@github.com:newrelic/beta-docs-site.git
  • https://github.com/newrelic/beta-docs-site.git

注意

異なるプロトコルを使用している場合は、同じ GitHub リポジトリを複数回追加することができます。UI はこの点について警告を発しますが、追加を妨げることはありません。

たとえば、 https://github.com/tuna/repogit@github.com:tuna/repoは同じリポジトリであり、プロトコルが異なります。

IDEでの可観測性

CodeStream のオブザーバビリティ セクションでは、IDE で現在選択されているリポジトリに関連付けられている各サービスのゴールデン メトリックとエラーを確認できるようにすることで、開発者はコードの実行状況を確認できます。各サービスにはツリー内に独自のノードがあり、展開すると、サービスのゴールデン メトリック、サービス レベル目標、割り当てられたエラー、および最新の 5 つのエラーが表示されます。また、サービスによって呼び出された、またはサービスを呼び出したサービスを掘り下げて全体像を把握し、それぞれのゴールデン メトリックを確認することもできます。

現在選択されているリポジトリが New Relic のサービスに関連付けられていない場合は、関連付けを行うか、プロジェクトをインストルメント化するよう求められます。

ツリー内のサービス名にカーソルを合わせると、ブロードキャスト アイコンをクリックして、そのサービスのエディターでコード レベルのメトリックを表示するか、地球儀をクリックして、New Relic のサービスの概要ページを開きます。エラーをクリックすると、スタック トレースを含む詳細が表示され、解決に向けた共同作業が開始されます。

ヒント

プロジェクトが New Relic によって監視されていない場合は、 Observability セクションの見出しにある歯車アイコンをクリックし、 Instrument my Appを選択して監視を設定できます。CodeStream には、Node.js JS、Java、および .NET プロジェクトで使用できるセットアップ ウィザードがあります。

コードレベルの指標

コード レベルのメトリクスは、コードがメソッド レベルでどのように実行されているかについて詳細な洞察を提供します。New Relic APM エージェントによって自動的にインストルメント化された各メソッドについて、各メソッドの上に挿入されたテキスト行にメトリクスが表示されます。このテキスト行は CodeLens と呼ばれます。過去 30 分間の平均継続時間とエラー率が表示されます。

メトリクスを表示するには、サービスが以下の要件を満たしている必要があり、サービスは過去 30 分間にデータを収集している必要があります。New Relic エージェントは、HTTP リクエストに関連付けられているクラスの関数のデータを自動的に収集しようとします。多くの場合、MVC フレームワークを使用する多くのフレームワークでは、これらは Controller クラスのメソッドであることがよくあります。

New Relic エージェントによるすべてのリクエストが常に収集されるわけではないため、トラフィック量の少ないメソッドではデータがまったく表示されない可能性があります。結果を確認したい特定のメソッドのデータが欠落している場合は、カスタム インストルメンテーションを使用してギャップを埋めることができます。Java.NETPHPPythonRubyGo 、およびNode.jsのガイダンスを参照してください。また、Node.js の場合、匿名関数のコード レベルのメトリックはキャプチャされません。

コード レビューは、レビュー プロセス中にパフォーマンス メトリクスを活用することで、より多くのデータ駆動型にすることもできます。プル リクエストとフィードバック リクエストの両方の差分にコード レベルのメトリクスが表示されるため、パフォーマンスの問題が変更の一部として対処されていることを確認できます。

CodeLens をクリックして、各メトリックを視覚化したグラフを表示します。リポジトリが複数の New Relic 監視エンティティに関連付けられている場合、それらを簡単に切り替えることができます。これにより、エディターに表示されるコード レベルのメトリックの基になるエンティティが変更されます。

チャートの上部にあるエンティティ名をクリックすると、NewRelicのより詳細なサービスレベルのデータが表示されます。

オブザーバビリティ セクションを使用して、コード レベルのメトリックを表示するエンティティを変更することもできます。サービスの名前にカーソルを合わせてブロードキャスト アイコンをクリックすると、そのサービスのコード レベルのメトリックが表示されます。

要件

  • 分散トレースを有効にする必要があります。分散トレースは、すべてのエージェントの最近のバージョンでデフォルトでオンになっているため、分散トレースを無効にしている場合にのみ、これについて心配する必要があります。
  • Java: Java エージェント バージョン 7.10.0 以降が必要です。バージョン 7.11.0 以降では、コードレベルのメトリックがデフォルトで有効になっています。バージョン 7.10.0 の場合、コードレベルのメトリックは、Java エージェント構成で手動で有効にする必要があります。コード レベルの指標は、 サポートされている Java フレームワークで実装されたプロジェクトでのみ使用できます。VS Code を使用している場合は、Red Hat 拡張機能による Java の言語サポートもインストールする必要があります。Kotlin のサポートは IntelliJ でのみ利用できることに注意してください。
  • .NET: .NET エージェント バージョン 9.9.0 以降が必要です。バージョン 10.2.0 以降では、コードレベルのメトリックがデフォルトで有効になっています。バージョン 9.9.0 から 10.1.0 の場合、コード レベルのメトリックは、.NET エージェント構成で手動で有効にする必要があります。Visual Studio を使用している場合は、 [ツール] > [オプション] > [テキスト エディター] > [すべての言語] > [CodeLens]に移動し、[CodeLens を有効にする] と [CodeStream コードレベルのメトリックを表示する] の両方がオンになっていることを確認して、CodeLenses が有効になっていることを確認します。 .VS Code を使用している場合は、 C#拡張機能がインストールされている必要があります。
  • Python: Python エージェント バージョン 7.10.0.175 以降が必要です。コードレベルの指標は、サポートされている Python フレームワークで実装されたプロジェクトでのみ使用できます。VS Code を使用している場合は、言語サーバーを有効にしてPython拡張機能もインストールする必要があります。
  • Ruby: Ruby エージェント バージョン 8.8.0 以降が必要です。バージョン 8.10.0 以降では、コードレベルのメトリックがデフォルトで有効になっています。バージョン 8.8.0 および 8.9.0 の場合、Ruby エージェント構成でコードレベルのメトリックを手動で有効にする必要があります。コード レベルのメトリクスは、Rails アプリケーションと、手動トレースを使用する Ruby メソッドでのみ使用できます ( Ruby メソッドと CodeStream の詳細をご覧ください)。VS Code を使用している場合は、言語サーバーを有効にしてRubyまたはRuby Solargraph拡張機能をインストールする必要もあります。
  • Go: Go エージェント バージョン 3.19.2 が必要です以上。コードレベルのメトリクスもGo エージェント構成で有効にする必要があります。VS Code を使用している場合は、言語サーバーを有効にしてGo for VS Code拡張機能もインストールする必要があります。
  • PHP: PHP エージェント バージョン 10.4.0 以降が必要です。コード レベルの指標も、PHP エージェント構成で有効にする必要があります。
  • Node.js: Node.js エージェント バージョン 9.7.5 以降が必要です。Node.js エージェント構成でコードレベルのメトリックも有効にする必要があります。

IDE の設定の CodeStream セクションに移動し、 CodeStream: Show Golden Signals In Editor設定のチェックを外すことで、CodeLenses をオフにすることができます。

エラーの調査

CodeStreamは、IDEで開いたコードで発生した最近のエラーを表示しますが、NewRelicのエラー受信ボックスからAPMエラーのより包括的なリストを確認できます。スタックトレースで特定のエラーの根本原因を掘り下げる準備ができたら、[IDEで開く]をクリックして、IDEのコードに直接移動します。

解決に協力する

典型的なコラボレーションセッションには、IDEのコードにコメントする開発者、エラー受信ボックスにエラーを割り当てるDevOpsエンジニア、Slackをフォローする開発マネージャーが含まれます。 CodeStreamは、すでに使用しているツールで人々に会うことで、エラーの発見からエラーの解決までの時間を短縮します。

この短いYouTubeビデオ(約2:27分)を見て、実際の動作を確認してください。

可観測性セクションでエラーをクリックした場合でも、New Relicのエラー受信ボックスからIDEで開くをクリックした場合でも、CodeStreamはスタックトレースを含むエラーの詳細をすべて表示します。

スタックトレースを見て、問題を調査します。

スタックトレース内の任意のフレームをクリックして、IDEの対応するファイルと行番号に直接ジャンプします。リポジトリの一部ではないコード(外部ライブラリなど)を表すスタックトレースのフレームはクリックできないことに注意してください。

スタックトレースをナビゲートしているときに、問題の原因と思われるコードに遭遇した場合は、それを選択し、コメントアイコンをクリックしてディスカッションを開始します。 CodeStreamは、そのコードに触れた最新の人物を自動的に言及するため、適切な人物を簡単にディスカッションに参加させることができます。

エディターでコードを選択し、コメントを追加します。

  • 問題を特定したら、CodeStream の既存のチームメイトか、リポジトリの Git コミット履歴をもとに提案された担当者にそのエラーを割り当てることができるのです。
  • エラーの状態を未解決から解決または無視に更新することができます。
  • ...その他のアクションメニューを使用して、SlackまたはMicrosoftTeamsに関するディスカッションを共有します。

ビルドSHAやリリースタグとエラーの関連付け

CodeStream でエラーを表示すると、エラーに関連付けられたビルド SHA またはリリース タグのいずれかの git 参照がない場合、この警告が表示されることがあります。CodeStream は git 参照を使用して、特定のスタック トレース エラーを、エラーをトリガーした環境で実行されているコードのバージョンと照合します。

エラーを調査するために構成された git 参照は必要ありませんが、エラーの原因となったコードのバージョンを調べていない可能性があることに注意してください。

git reference notconfiguredの警告メッセージは次のとおりです。ビルドSHAまたはリリースタグをエラーに関連付けて、CodeStreamが正しいバージョンのコードを見ていることを確認できるようにします。

環境変数を使用して、NewRelicAPMエージェントにプロジェクトの各ビルドに関連付けられたコミットを通知できます。ソフトウェアの実行バージョンに関連付けられているリリースタグを使用することもできます。

New Relic APMの場合、commit shaおよび/またはreleaseタグ( tags.commitおよびtags.releaseTag )がTransactionおよびTransactionErrorイベントの属性として追加されます。 APM環境変数を使用して、これらの属性を設定できます。

これらの変数のいずれかまたは両方を、ビルドパイプラインの一部として設定することをお勧めします。

  • NEW_RELIC_METADATA_COMMIT -コミット社。すべてを含めることも、最初の7文字のみを含めることもできます(例: 734713b )。
  • NEW_RELIC_METADATA_RELEASE_TAG -リリースタグ( v0.1.209release-209など)。これには、人間が読める形式であるという利点があります。

これらの変数の設定方法については、各言語ごとに具体的な設定内容をご紹介します。

git参照が構成されている場合、CodeStreamは、ローカルで使用しているコードのバージョンにエラーに関連付けられた参照が含まれていないかどうかを通知します。この場合、エラーをより効果的に調査して解決できるように、その参照を含むコードのバージョンを確認することをお勧めします。

git reference not found という警告メッセージが表示されました。あなたのコードのバージョンは、エラーが発生した環境と一致していません。次のリファレンスを取得して、エラーの原因を調べてください。

CodeStreamは、エラーにスタックトレースが関連付けられていないかどうかも通知します。これは、スタックトレースがNewRelicで期限切れになった古いエラーで発生します。

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.