• ログイン無料アカウント

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

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

問題を作成する

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

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

CodeStreamとNew Relicの接続

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

A screenshot of connecting CodeStream to New Relic with your New Relic user key

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ペインのObservabilityセクションでは、IDEで開いているすべてのリポジトリに関連付けを行うように求められます。

A screenshot of associating repositories in your IDE with entities.

プロンプトが表示されたときにオンザフライでこれらの関連付けを行うことは、開始するのに最適な方法ですが、継続的な手動作業が少なくて済み、リモート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から直接発見できます。割り当てられたエラーに加えて、IDEで開いているリポジトリごとに最近のエラーが一覧表示されます。

A screenshot of the observability section showing recent errors and errors assigned to you.

IDEで開いているリポジトリに関連する最近のエラーを参照してください。

エラーをクリックして詳細を表示し、共同作業を開始します。

NewRelicの複数のエンティティに関連付けられたリポジトリがある可能性があります。このような場合、リポジトリ名の右側にドロップダウンリストが表示されるため、エンティティを簡単に切り替えることができます。

A screenshot of the selection of the entity for which you'd like to see errors.

エラーを表示するエンティティを選択します。

ヒント

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

コードレベルの指標

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

A screenshot of a Python method with response time, throughput, and error rate metrics.

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

重要

コードレベルのメトリックは、サポートされているPythonフレームワークで実装されたPythonAPMエージェントによって監視されているプロジェクトでのみ使用できます。

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

A screenshot of an expanded code-level metrics CodeLens that shows related charts.

チャートの上部にあるエンティティ名をクリックすると、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のコードに直接移動します。

A screenshot of a stack trace error in errors inbox with the "Open in IDE button."

解決に協力する

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

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

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

An animated image that shows someone commenting on a line of code associated with an error.

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

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

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

A screenshot of a comment with the most recent code contributor automatically mentioned.

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

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

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

CodeStreamでエラーを表示しているときに、エラーに関連付けられているビルドSHAまたはリリースタグのいずれかのgit参照がない場合、この警告が表示されることがあります。 CodeStreamは、git参照を使用して、特定のスタックトレースエラーを、エラーをトリガーした環境で実行されているコードのバージョンと照合します。エラーを調査するためにgitリファレンスを構成する必要はありませんが、エラーの原因となったコードのバージョンを確認していない可能性があることに注意してください。

A screenshot of the git reference not configured warning message.

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

A screenshot of the git reference not found warning message.

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

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

Pixieによる動的ロギング

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

重要

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

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

A screenshot of a dynamic logging session using Pixie.

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

Copyright © 2022 New Relic株式会社。