インテグレーションのロギングの推奨事項

New Relic Infrastructure は、ユーザーが任意のホストのデータを New Relic に送信できるインテグレーションを作成するための SDK を提供しています。ここでは、インテグレーション用のログを生成するための要件とベストプラクティスについて説明します。インテグレーションを作成する方法については、インテグレーションの作成をご覧ください。

この機能を利用できるかは契約しているサブスクリプションレベルによります。

ロギングの要件

どのような種類のログメッセージを作成するか、どのような情報が問題のデバッグに役立つかは、インテグレーションの開発者が決定できます。インテグレーション用のログ生成で求められる要件は以下はの1つだけです。

  • インテグレーション用の実行可能ファイルは、ログを標準エラー(stderr)に書き込む必要があります。

Infrastructure エージェントは、標準エラーに書き込まれた内容を取得し、Infrastructure エージェント自体によって書き込まれたログストリームにマージします。

以下の方法が、インテグレーション用のログを生成する方法として推奨されています。

  • デフォルトでは、インテグレーションは余計な出力は控えるべきです。標準出力に出力されるデータとは別に、生成されるログや診断メッセージはほとんどありません。
  • infrastructure エージェントの verbose 設定のような詳細ログモードを含めることをお勧めします。詳細ログの出力の有効/無効を切り替える方法として、--verbose のようなコマンドラインスイッチを含める方法も考えられます。
  • インテグレーションの実行中に、インテグレーションをデバッグするには、実行コマンド行の一部として、定義ファイルに冗長スイッチを含める方法があります。そうすることで、詳細ログが Infrastructure エージェント自身のログファイルに送信されます。
  • 一般的なデバッグが目的の場合、標準の JSON データを人間が判読可能の形に整形されたフォームで書き込むフラグ(例えば、code>–pretty)の使用を New Relic は推奨しています。整形されたフォームの出力は、デバッグ目的のためだけに使ってください。Infrastructure エージェントとは互換性がないことに注意してください。
  • インテグレーションはそれ自体のみで実行できる必要があります。インテグレーションが Infrastructure エージェントと通信しているかどうか気になる場合は、コマンドラインからインテグレーションを実行し、正しい出力及びログメッセージが生成されていることを確認できるようにしてください。

Infrastructure インテグレーションによって生成されるデータの仕様については、インテグレーション用の実行ファイルの作成をご覧ください。