HappyDebugging-IDE

はじめに

New Relicで障害対応を行うときの効果的な設定方法を、導入のしやすさから3ステップに分けて解説します。

全ての設定を一度にするのが難しい場合の優先順位付けにもご利用いただければと思います。

設定ステップ

  1. 発生エラーを1ページで確認するために、Errors Inboxを導入する
  2. New Relic画面からIDEを開けるようにするために、 New Relic CodeStreamプラグインの導入する
  3. 「環境で動いている」ソースコードを開くために、APMにリビジョンを設定する

1. 発生エラーを1ページで確認するために、Errors Inboxを導入する

複数のアプリケーション組み合わせる構成(マイクロサービスアーキテクチャ等)のサービス運用において、「どのアプリケーションで発生したエラーか」ということよりも、「サービス全体でどんなエラーが発生しているか」を確認したり対応したい時があります。New Relic Errors Inboxを利用すると、エラーを1ページで確認できるようになるので、障害の確認をスムーズに行えるようになります。早速導入を行いましょう。

 

Workloadを作成する

1. Explorerの左メニューに出てくる Workloadsをクリックする

Workload page

2. 右上の「+ Create a workload」のリンクをクリックする

3. 左上の「Give it a name」にWorkloadの任意の名称を入力する

Workload setting

4. (オプション)「Select an account」でWorkload保存先のアカウントを選択する

5. 画面中央の検索ボックスでEntityを検索する

 APMを選択するときのコツ:APMと入力すると、「Services - APM  ENTITY TYPE」という選択肢が出てくるのでクリックしてください。画像では「k8s」という任意文字列を入力して部分一致したAPMが出てくるように検索しています。ネーミングルールなどあればそのルールを活用しましょう。それ以外のタグ機能を使うことでも検索できるので効果的にご利用ください

6. 「+ Add this query」をクリックする

 注意: APMのレコードの右側に「+ Add」がありますこれは、1つずつEntityを追加するための機能です。サービスが柔軟に追加されるような環境の場合はクエリを追加することで環境変化に自動的に対応する動きとなるので、「+ Add this query」がおすすめです。

7. 右下の「Create a workload」をクリックする 

 備考:作成には数秒~数十秒かかります。

 

Terraformでも作成できます。

 

Errors Inboxを開く

メニュー上の「Errors Inbox」および、Workloadの画面の右下「Go to errors inbox」をクリックするとErrors Inboxの画面が開きます。

Errors Setting
Errors Inbox

 

2. New Relic画面からIDEを開けるようにするために、 New Relic CodeStreamプラグインの導入する

対応するIDEに、「New Relic CodeStream」というプラグインを導入すると、New Relic上で確認しているエラーをワンクリックでIDE上でも確認できるようになります。

エラートレースの目視確認やファイル検索など、調査の時に発生する作業の効率が大幅に改善します。それでは、プラグインを導入してみましょう。

1. IDEにプラグインをインストールする

2021/12現在、以下のIDEにプラグインをご用意しております。最新情報はこちらのドキュメントでご確認ください。

2. CodeStreamのアカウントを作成する (プラグインのチュートリアルに従って操作)

2021/12現在、New Relicと別にCodeStreamプラグインを利用するためのアカウント作成が必要です。Git系ツールのアカウントを連携するか、emailでアカウントを作成してください。

https://docs.newrelic.com/docs/codestream/start-here/sign-up-codestream/

3. CodeStreamのOrganizationに参加する (プラグインのチュートリアルに従って操作)

CodeStreamにはOrganizationという概念があり、同じOrganizationに所属するメンバー同士でのコミュニケーションができるようになっています。新しく作成するか、すでにチームで作成されている場合は既存Organizationに所属するようIDEを操作してください。

4. New RelicのUser Keyを準備する

New Relicにログインした状態でこちらのリンクをクリックします。User Keyを持っていない場合は、新しく作成してください。「Create a Key > Key typeはUserにする > Name入力 > Create a key」という手順で作成できます。

作成したら該当の行の右端「・・・」をクリックし、「Copy Key」をクリックしてキーをコピーします。

5. CodeStreamプラグインとNew Relicを連携する  (プラグインのチュートリアルに従って操作)

4でコピーしたキーをプラグインに登録します。

6. New Relic APM画面でリポジトリを登録する

APMにリポジトリ情報が設定されていない場合はNew Relicの画面上でリポジトリを登録しましょう。

推奨は環境変数でリポジトリ情報を連携する方法ですが、サーバーを再起動したくない場合もあると思います。その場合はAPM上でもリポジトリを登録できるので、そちらもお試しください。

APM Repository

 

Add Repository

 7. Errors Inbox上のエラーグループの詳細画面で「Open in IDE」をクリックする

OpenInIDE

エラートレースとルートのソースコードが表示されます。手元にソースコードが存在するものはハイライトされ、クリックすることで移動できます。

Code Stream without SHA

(オプション)

JetBrains製品を利用する場合、ToolBox appが必要です。こちらもインストールをお願いします。

 

3. 「環境で動いている」ソースコードを開くために、APMにリビジョンを設定する

このステップではAPMを導入しているサービスの再起動が必要です。

画面上に、「No build SHA associated with this error...」とメッセージが出てくるのは、エラーが発生したサービスのリビジョンがわからない場合の挙動となっています。リビジョン情報を連携すると、ビルドやリリース情報を確認しなくてもクリック一つで該当リビジョンのソースコードを開くことができるので、かなり効率的に障害対応を進めることができます。設定してみましょう。

設定はこちらのドキュメントにあるように、APMを起動するときに、以下の環境変数の両方もしくはどちらかを設定しておくだけです。

  • NEW_RELIC_METADATA_COMMIT
    • こちらのサンプルのように、 `git rev-parse HEAD` というコマンド等で取れるリビジョンを設定してください
    • リリースタグを利用している、していないに関わらずビルドパイプラインに組み込みやすいです。
  • NEW_RELIC_METADATA_RELEASE_TAG
    • ビルド時にリリースタグを作成している場合やタグ情報が取得しやすい場合に設定してください。
    • リリースタグが使えた方が人間が読んでわかりやすくなる可能性があります。

 

サービスを再起動し、改めてErrors InboxのOpen in IDEをクリックすると特定リビジョンのソースコードを開くことができます。

Code Stream