• ログイン

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

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

問題を作成する

CodeStreamによるパフォーマンスモニタリング

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

CodeStreamとNew Relicの接続

IDEの可観測性にアクセスするには、NewRelicユーザーキーを介してCodeStreamをNewRelicに接続する必要があります(New Relicユーザーキー詳細をご覧ください)。

IDEに可観測性をもたらすために、ユーザーキーを使用してCodeStreamをNewRelicに接続します。

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

CodeStreamの可観測性機能を使用するには、NewRelicユーザータイプのコアユーザーまたはフルプラットフォームユーザーが必要であることに注意してください。

リポジトリを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 のサービスの概要ページを開きます。エラーをクリックすると、スタック トレースを含む詳細が表示され、解決に向けた共同作業が開始されます。

ヒント

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

コードレベルの指標

コード レベルのメトリクスは、コードがメソッド レベルでどのように実行されているかについて詳細な洞察を提供します。New Relic .NET、Python、および Ruby APM エージェントによって自動的にインストルメント化された各メソッドについて、CodeLens と呼ばれる各メソッドの上に挿入されたテキスト行を介してゴールデン シグナルが表示されます。過去 30 分間の応答時間、スループット、およびエラー率が表示されます。

コードレベルのメトリックは、Python/Rubyプロジェクトのインストルメントされた各メソッドの上に表示されます。

要件

  • 分散トレースを有効にする必要があります。
  • Python-Pythonエージェントバージョン7.10.0.175以降が必要です。コードレベルの指標は、サポートされているPythonフレームワークで実装されたプロジェクトでのみ使用できます。VS Codeを使用している場合は、言語サーバーを有効にしてPython拡張機能もインストールする必要があります。
  • Ruby-Rubyエージェントバージョン8.8.0以降が必要です。コードレベルのメトリックは、Railsアプリケーションと手動トレースを使用するRubyメソッドでのみ使用できます(詳細はこちら)。コードレベルのメトリックは、Rubyエージェント構成でも有効にする必要があります。VS Codeを使用している場合は、言語サーバーを有効にして、 RubyまたはRubySolargraph拡張機能もインストールする必要があります。
  • .NET-.NETエージェントバージョン9.9.0以降が必要です。コードレベルのメトリックは、.NETエージェント構成で有効にする必要があります。Visual Studioを使用している場合は、 [ツール]>[オプション]>[テキストエディター]>[すべての言語]>[CodeLens]に移動し、[CodeLensを有効にする]と[CodeStreamコードレベルメトリックを表示する]の両方がオンになっていることを確認して、CodeLensesが有効になっていることを確認します。 。VS Codeを使用している場合は、 C#拡張機能がインストールされている必要があります。

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

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

CodeLensオプション

IDEの設定のCodeStreamセクションを使用して、CodeLensesの表示方法を変更できます。

  • VS Codeで、[設定]に移動し、「codestream」を検索します。
  • JetBrainsで、 [設定]/[設定]>[ツール]>[CodeStream]に移動します
  • Visual Studio で、 [ツール] > [オプション] > [CodeStream]に移動します。

デフォルトのCodeLens形式は次のとおりです。

avg duration: ${averageDuration} | throughput: ${throughput} | error rate: ${errorsPerMinute} - since ${since}

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で期限切れになった古いエラーで発生します。

Pixieによる動的ロギング

Pixieを使用した動的ロギングを使用すると、追加のログステートメントを使用してソースコードをインストルメント化したり、再コンパイルしたり、再デプロイしたりすることなく、本番環境でGoアプリケーションをデバッグできます。 IDEから直接、関数の引数、戻り値、レイテンシーを動的にキャプチャできます。

重要

動的ロギングは現在、Goで記述されたアプリケーションでのみ利用可能であり、 Pixieによって監視されるKubernetesクラスターが必要です。

ロギングセッションを開始するには、Goプロジェクト内の任意のメソッド名を右クリックし、[ Pixieを使用した動的ロギング]を選択します。 New RelicアカウントとKubernetes情報(クラスター、名前空間、ポッド)を選択した後、1分から10分の範囲のロギングセッションを開始できます。

メソッドのすべてのパラメーターの値がリアルタイムでキャプチャされ始めていることがわかります。

Copyright © 2022 New Relic株式会社。

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