Go エージェントの構成設定を編集して、New Relic がアプリを監視する方法のいくつかの側面を制御できます。例えば:
- ハイセキュリティーモードをオンにする。
- UIでのフィルタリングやソートのためのカスタムタグを追加。
- エラー、トランザクションイベント、トランザクショントレース、およびカスタムイベントの収集をオフにします。
構成方法と優先順位
Goエージェントを構成する主な方法は、標準のインストールプロセスの一部であるnewrelic.NewApplication()
の呼び出しの一部としてnewrelic.Config
構造体を変更することです。Goエージェントバージョン2.7.0以降では、UIでサーバー側の構成を使用して、限られた数の構成オプションを設定することもできます。
Goエージェントは、この優先順位に従って構成されます。有効にすると、サーバー側の設定は、サーバー側の値が空白のままであっても、 newrelic.Config
構造体の対応するすべての値を上書きします。
サーバー側の構成がGoエージェントで有効になっている場合、サーバー側の値が空白のままであっても、 newrelic.Config
構造体の対応するすべての値が上書きされます。
各構成方法の詳細な説明は次のとおりです。
構成設定の変更
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 などのセマンティック バージョンですが、常にそうとは限りません。この情報を送信すると、展開されたソフトウェアのバージョンによってテレメトリをファセットできるため、エラーを生成しているソフトウェアのバージョンをすばやく特定できます。
カスタムイベントの設定
カスタムイベントを作成して、問い合わせや分析に利用することができます。
トランザクションイベントの設定
トランザクションイベントは、ウェブリクエストやバックグラウンドタスクに対応するイベントを収集する際に使用します。イベントデータは、New Relic の UI で ヒストグラム や パーセンタイル などの追加情報を表示することができます。
エラーコレクターの構成
エラーコレクターの設定は以下のように行います。
ヒント
New Relic のエラー設定の概要については、 Manage errors in APM を参照してください。
トランザクショントレーサーの構成
ここでは、トランザクション・トレーサの設定を変更するための設定を紹介します。トランザクション・トレースの詳細については、 トランザクション・トレース を参照してください。
データストアトレーサーの設定
ここでは、 スロークエリ の有効化と設定を含むデータストアの設定を紹介します。
クロスアプリケーショントレースの設定
クロスアプリケーションのトレース の機能を変更するための設定です。
分散型トレーシングの設定
重要
分散型トレースを有効にするには、Goエージェントのバージョン2.1.0以上が必要で、 クロスアプリケーショントレースが無効になります 。また、他の機能にも影響があります。有効にする前に、 移行ガイド を読んでください。
Distributed tracing では、リクエストが分散システムを通過する際のパスを確認することができます。
ディストリビューティッド(分散)トレーシングが有効になっているときは、スパンイベントを収集することができます。
スパンイベントの設定
スパンイベント は、 分散型トレーシング で報告されます。スパンイベントを報告するためには、分散トレーシングを有効にする必要があります。これらの設定は、スパンイベントの収集を制御します。
Infinite Tracingの設定
無限トレースを有効にするには、分散トレースを有効にし( newrelic.Config
構造体にconfig.DistributedTracer.Enabled = true
を設定)、以下に追加の設定を追加します。例については、「 言語エージェント:分散トレースの構成」を参照してください。
Infinite Tracing トレース オブザーバーのホストエントリを取得する方法については、「トレースオブザーバーのエンドポイントを検索または作成する」をご覧ください。
アプリケーションログ設定
エージェントでのアプリケーション ログの構成には、次の設定を使用できます。コンテキストでの Go エージェント ログの使用に関するヒントについては、コンテキストでのGo ログ を参照してください。
重要
Goエージェントバージョン3.17.0以降が必要です
モジュールの依存関係メトリック設定
モジュールの依存関係メトリックは、Go エージェントでさまざまな方法で構成できます。モジュールの依存関係メトリックは、Go アプリケーションで使用されるインポートされたモジュールのリストを報告し、コードの依存関係の管理を容易にします。アプリのモジュールのバージョン情報も含まれます。
重要
Go エージェント バージョン 3.20.0 が必要です以上