Go エージェントの構成設定を編集して、New Relic がアプリを監視する方法のいくつかの側面を制御できます。例えば:
- ハイセキュリティーモードをオンにする。
- UIでのフィルタリングやソートのためのカスタムタグを追加。
- エラー、トランザクションイベント、トランザクショントレース、およびカスタムイベントの収集をオフにします。
構成方法と優先順位
Goエージェントを構成する主な方法は、標準のインストールプロセスの一部であるnewrelic.NewApplication()
の呼び出しの一部としてnewrelic.Config
構造体を変更することです。Goエージェントバージョン2.7.0以降では、UIでサーバー側の構成を使用して、限られた数の構成オプションを設定することもできます。
Go エージェントは設定のこの優先順位に従います。 有効にすると、サーバー側の値が空白のままであっても、サーバー側構成により、 newrelic.Config
構造体のallに対応する値がオーバーライドされます。

Go エージェントでサーバー側構成が有効になっている場合、サーバー側の値が空白のままであっても、 newrelic.Config
構造体のallに対応する値がオーバーライドされます。
各構成方法の詳細な説明は次のとおりです。
構成設定の変更
Goエージェントの構成を変更するには、カスタムnewrelic.ConfigOption
内からnewrelic.Config
構造体の値を設定します。たとえば、テスト目的でNew Relicの監視を一時的にオフにするには、 Enabled
の値をfalse
に変更します。
app, err := newrelic.NewApplication( newrelic.ConfigAppName("Your Application Name"), newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")), func(config *newrelic.Config) { config.Enabled = false },)
この例と次の例では、 config
はNew Relicの構成構造体を表していますが、Goエージェントをインストールしてアプリで構成を開始したときに、別の変数名を付けた可能性があります。
一般的な構成設定
New Relic CodeStreamを使用してIDEからパフォーマンスを監視する場合は、リポジトリをサービスに関連付け、ビルドSHAまたはリリースタグをエラーに関連付ける必要があります。
環境からの構成
柔軟性を高めるために、環境変数をアプリケーションのソースコードにハードコーディングする代わりに、環境変数を設定することで、多くの構成オプションを設定できます。それらを使用するには、他の構成オプションの中でConfigFromEnvironment()
への呼び出しを追加します。
app, err := newrelic.NewApplication( newrelic.ConfigAppName("Your Application Name"), newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")), newrelic.ConfigFromEnvironment(),)
newrelic.ConfigFromEnvironment()
が表示されるオプションのリスト内のポイントで、環境変数が読み取られ、 newrelic.Config
構造体の対応するエントリが更新されることに注意してください。ConfigFromEnvironment
の後に追加の構成オプションがリストされている場合、それらはConfigFromEnvironment
によって設定された値をオーバーライドする可能性があります。
たとえば、次の環境変数が設定されている場合:
NEW_RELIC_LICENSE_KEY="your_license_key_here"NEW_RELIC_APP_NAME="Your Application Name"NEW_RELIC_CODE_LEVEL_METRICS_ENABLED="true"NEW_RELIC_CODE_LEVEL_METRICS_PATH_PREFIX="myproject/src"NEW_RELIC_LABELS="Env:Dev;Label2:label2;Label3:label3;Label4:label4"
次に、次のコード:
app, err := newrelic.NewApplication( newrelic.ConfigFromEnvironment(),)
ハードコードされた同等のものと同じ結果を達成します:
app, err := newrelic.NewApplication( newrelic.ConfigAppName("Your Application Name"), newrelic.ConfigLicense("your_license_key_here"), newrelic.ConfigCodeLevelMetricsEnabled(true), newrelic.ConfigCodeLevelMetricsPathPrefix("myproject/src"), func(config *newrelic.Config) { config.Labels = map[string]string{ "Env": "Dev", "Label2": "label2", "Label3": "label3", "Label4": "label4", } },)
すべての可能な構成オプションが環境変数を介して設定されるわけではありません。以下のコラプスの環境変数と関数の表は、使用可能なすべての構成関数とそれに対応する環境変数を示しています。名前付き構成オプションは、 Config
構造体の対応するフィールドに値を直接割り当てることで設定できますが、可能な限り構成関数や環境変数を使用することをお勧めします。
バージョンタグを設定
NEW_RELIC_METADATA_SERVICE_VERSION を設定すると、イベント データにタグtag.service.version
が作成されます。このコンテキストでは、サービス バージョンはデプロイされるコードのバージョンであり、多くの場合、1.2.3 などのセマンティック バージョンですが、常にそうとは限りません。この情報を送信すると、展開されたソフトウェアのバージョンによってテレメトリをファセットできるため、エラーを生成しているソフトウェアのバージョンをすばやく特定できます。
AIモニタリング
このセクションには、AIモニタリングを設定するためのGoエージェント設定が含まれています。
重要
ディストリビューティッド(分散)トレーシングが無効になっているか、高セキュリティモードを有効にしている場合、AIモニタリングはAIデータを収集しません。
重要
AI モニタリングを有効にすると、モニタリング対象として選択したモデルとの間で送受信される入力と出力のストリーミング コピー (そこに含まれる個人情報も含む) が記録されます。 AIモニタリング機能を提供する目的で、モデルユーザーのインタラクションが第三者(New Relic)によって記録される可能性があることについて、モデルユーザーから同意を得る責任があります。
カスタムイベントの設定
カスタムイベントを作成して、問い合わせや分析に利用することができます。
トランザクションイベントの設定
トランザクションイベントは、ウェブリクエストやバックグラウンドタスクに対応するイベントを収集する際に使用します。イベントデータは、New Relic の UI で ヒストグラム や パーセンタイル などの追加情報を表示することができます。
エラーコレクターの構成
エラーコレクターの設定は以下のように行います。
ヒント
New Relic のエラー設定の概要については、 Manage errors in APM を参照してください。
トランザクショントレーサーの構成
ここでは、トランザクション・トレーサの設定を変更するための設定を紹介します。トランザクション・トレースの詳細については、 トランザクション・トレース を参照してください。
データストアトレーサーの設定
ここでは、 スロークエリ の有効化と設定を含むデータストアの設定を紹介します。
クロスアプリケーショントレースの設定
クロスアプリケーションのトレース の機能を変更するための設定です。
重要
クロスアプリケーション トレーシングはディストリビューティッド(分散)トレーシングに代わって非推奨となり、将来のエージェント バージョンでは削除される予定です。
分散型トレーシングの設定
重要
分散型トレースを有効にするには、Goエージェントのバージョン2.1.0以上が必要で、 クロスアプリケーショントレースが無効になります 。また、他の機能にも影響があります。有効にする前に、 移行ガイド を読んでください。
Distributed tracing では、リクエストが分散システムを通過する際のパスを確認することができます。
ディストリビューティッド(分散)トレーシングが有効になっているときは、スパンイベントを収集することができます。
スパンイベントの設定
スパンイベント は、 分散型トレーシング で報告されます。スパンイベントを報告するためには、分散トレーシングを有効にする必要があります。これらの設定は、スパンイベントの収集を制御します。
Infinite Tracingの設定
無限トレースを有効にするには、分散トレースを有効にし( newrelic.Config
構造体にconfig.DistributedTracer.Enabled = true
を設定)、以下に追加の設定を追加します。例については、「 言語エージェント:分散トレースの構成」を参照してください。
アプリケーションログ設定
エージェントでのアプリケーション ログの構成には、次の設定を使用できます。コンテキストでの Go エージェント ログの使用に関するヒントについては、コンテキストでのGo ログ を参照してください。
重要
Goエージェントバージョン3.17.0以降が必要です
モジュールの依存関係メトリック設定
モジュールの依存関係メトリックは、Go エージェントでさまざまな方法で構成できます。モジュールの依存関係メトリックは、Go アプリケーションで使用されるインポートされたモジュールのリストを報告し、コードの依存関係の管理を容易にします。アプリのモジュールのバージョン情報も含まれます。
重要
Go エージェント バージョン 3.20.0 が必要です以上
New Relic IAST
New Relic Interactive application Security Testing ( IAST ) は、脆弱なペイロードを使用して生成された HTTP リクエストを再生することにより、悪用可能な脆弱性についてアプリケーションをテストします。 INIT 関数に渡される設定を使用して Go アプリ コードを更新することで、 New Relic IASTを有効にすることができます。 これらの設定は、YAML ファイルまたは環境変数を使用して行うこともできます。
INIT 関数を使用して設定されたオプションは、環境または YAML 構成よりも優先されます。ただし、これらの設定は環境内の他のエージェントに渡されるため、YAML ファイルを使用してIASTを有効にすることをお勧めします。
セットアップ手順
次の直接依存関係をgo.mod
ファイルに追加して、統合をインポートします。
import "github.com/newrelic/go-agent/v3/integrations/nrsecurityagent"
次に、セキュリティ エージェントを初期化して有効にします。
IASTを有効にする
IASTを構成する
セキュリティ エージェントは次のオプションを使用して構成できます。
アプリケーションのセキュリティに敏感な部分を計装する
nrgin
、 nrgrpc
、 nrmicro
、 fasthttp
、またはnrmongo
統合には、処理するデータのセキュリティ分析をサポートするコードが含まれるようになりました。
さらに、Go エージェントは、データストア セグメント、SQL 操作、トランザクション、ラップされた HTTP 呼び出しとエンドポイントを含むインストゥルメントで示されたコードに対して脆弱性スキャンを実行します。