これは最も単純なアプローチであり、ログフォワーダーの設定にアクセスしたり関心を持ったりしていない開発者や、アプリのコンテキストでログやその他のリンクメタデータの機能を確認したいアカウントに最適です。たくさんのセットアップ。
このオプションを使用すると、Goエージェントはログを収集し、ログをスパン、トレース、その他のテレメトリに自動的にリンクする属性を追加してNew Relicに送信し、トラブルシューティングを容易にします。
ログ転送機能を備えたエージェントバージョン(Goエージェントバージョン3.17.0以降)をインストールするだけです。次に、ログの自動取り込みには2つのオプションがあります。
NrZerologプラグインは、zerologロギングフレームワークを使用したコンテキスト取り込みでの自動ログを有効にします。アプリケーションがそれを使用するように構成されると、Goエージェントはzerologに書き込まれたすべてのログを自動的に取り込みます。次の手順でのアプリケーションログ設定の詳細については、 Goエージェントの構成に関するドキュメントを参照してください。
nrzerologプラグインをインポートします。
"github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrzerolog"
"github.com/newrelic/go-agent/v3/newrelic"
ログの収集を有効にします。
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("Example App"),
newrelic.ConfigFromEnvironment(),
newrelic.ConfigAppLogForwardingEnabled(true),
nrlogrusプラグインに接続されているzerologロガーを作成します。
バックグラウンドログを収集します。
logger := zerolog.New(os.Stdout)
nrHook := nrzerolog.NewRelicHook{
nrLogger := logger.Hook(nrHook)
nrLogger.Info().Msg("A Log Message")
トランザクション内でログを収集します。
logger := zerolog.New(os.Stdout)
txn := app.StartTransaction("My Transaction")
ctx := newrelic.NewContext(context.Background(), txn)
nrHook := nrzerolog.NewRelicHook{
nrLogger := logger.Hook(nrHook)
nrLogger.Info().Msg("A Log Message")
エージェントを介してログをNewRelicに送信したいが、現在のzerologソリューションが機能しない場合は、 RecordLog()
関数を使用してください。
バックグラウンドログを収集します。
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("Example App"),
newrelic.ConfigFromEnvironment(),
newrelic.ConfigAppLogForwardingEnabled(true),
app.RecordLog(newrelic.LogData{
Message: "A Background Log Message",
トランザクション内でログを収集します。
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("Example App"),
newrelic.ConfigFromEnvironment(),
newrelic.ConfigAppLogForwardingEnabled(true),
txn := app.StartTransaction("my transaction")
txn.RecordLog(newrelic.LogData{
Message: "A Background Log Message",
オプションの調整:
ログ転送を有効にすると、1分ごとにNewRelicに送信されるログの最大数も制御できます。デフォルト値は10,000です。60秒のウィンドウで10,000を超えるログが受信されると、ログのサンプリングが開始されます。
より多くのログを受信するには、より大きな数値に設定します。受け取るログの数を減らすには、数値を小さく設定します。 100,000までの整数が有効です。
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("Example App"),
newrelic.ConfigFromEnvironment(),
newrelic.ConfigAppLogForwardingEnabled(true),
newrelic.ConfigAppLogForwardingMaxSamplesStored(500),