パイプラインログ
デフォルトでは、イベントログおよびエラーログのエントリが確認のために Splunk に送信されます。 ログに報告される情報量は、実行時に各パイプラインバージョンで選択したログレベルによって異なります。 Splunk は、運用インテリジェンスのためのデータ収集、インデックス作成、および視覚化エンジンです。 Splunk の使用方法については 、 Splunk エンタープライズユーザーマニュアルを参照してください。
パイプラインログの基本
HERE platform パイプラインでは、操作中にログを使用して詳細情報を提供します。 さまざまな目的で、さまざまなレベルのログを使用できます。 HERE platform パイプラインでは、次のレベルのログ記録がサポートされています。
- デバッグ —パイプラインのトラブルシューティングに最も役立つ詳細情報イベントが含まれています。
- 情報 —大まかなレベルでパイプラインの進行状況を強調する情報メッセージが含まれます。
- 警告 —望ましくない、または予期せぬ、必ずしも「間違っている」ものではないその他の実行時の状況を含む、潜在的に有害な状況に関する情報が含まれます。
- エラー —パイプラインの実行を継続できる可能性のある、その他のランタイムエラーまたは予期しない状況(エラーイベントなど)が含まれます。
注
パイプラインのデフォルトのログレベルはです warn
ログレベルを変更します
ログレベルはパイプラインバージョンに設定されています。 すべてのジョブで、対応するパイプラインバージョンに関連付けられているログレベルが使用されます。
ログレベルは 、パイプライン全体のルートレベル、 またはパイプラインクラスの個々のロガーレベルで設定できます。 運用の遅延により、変更が有効になるまでに数分かかります。 これにより、 Splunk の新しいレベルでログが利用できなくなる可能性があります。
注
表示されるパイプラインバージョンの詳細には、ユーザーが最後に変更したログレベルまたはデフォルトのログレベル(、)が含ま warn
れます。
パイプラインバージョンのログレベルは、次のいずれかの状態にある場合にのみ変更できます。
- 実行中—実行中状態のパイプラインバージョンのログレベルが変更される と、現在実行中のジョブのログレベルが変更されます。
- 準備完了またはスケジュール済み —準備完了またはスケジュール済み状態のパイプラインバージョンのログレベルが変更されると、システム は新しいログレベルを使用して今後のジョブを実行します。
- 一時停止 —一時停止状態のパイプラインバージョンの場合 、ログレベルが変更され、パイプラインバージョンが再開されると、システムは新しいログレベルを使用して今後のジョブを実行します。
API ソリューション
パイプラインバージョンのログレベルをルートレベルでデバッグするように変更するには、 REST API から次のコマンドを使用します。
PUT /v2/pipelines/{pipelineId}/versions/{versionId}/logging-configuration
次のボディーを使用:
{
"configuration": {
"loggers": {
"root": {
"level": "debug"
}
}
}
}
詳細については 、『パイプライン API リファレンス』を参照してください。
CLI ソリューション
パイプラインバージョンのログレベルをルートレベルでデバッグするように変更するには、 OLP CLI から次のコマンドを使用します。
olp pipeline version log level set <pipeline-id> <pipeline-version-id> [command parameters]
例
ルートレベルでデバッグするパイプラインバージョンのログレベルを変更するには、次の手順を実行します。
olp pipeline version log level set f2fc50c4-a0ac-4c8a-9637-0d9b3a0d4a96 d77f288e-2c89-4c94-b4ba-79fbd1e26e79 --root DEBUG --json
成功すると、コマンドは次のような内容を返します。
{"configuration": {"loggers": {
"root": {"level": "debug"}
}}}
この場合、パイプラインはログレベルがに設定されたことを確認 debug
します。
詳細については 、『 CLI ユーザー ガイド』を参照してください。
ログレベルを取得します
現在のログレベルの設定を確認するには、特定のパイプラインバージョンのログレベルの設定を取得する必要があります。
API ソリューション
API を使用して現在のロギングレベルを取得するには、 REST API から次のコマンドを使用します。
GET /v2/pipelines/{pipelineId}/versions/{versionId}/logging-configuration
詳細については 、『パイプライン API リファレンス』を参照してください。
CLI ソリューション
OLP CLI を使用して現在のロギングレベルを取得するには、次のコマンドを使用します。
olp pipeline version log level get <pipeline-id> <pipeline-version-id> [command parameters]
例
現在のログレベルを取得します。
olp pipeline version log level get f2fc50c4-a0ac-4c8a-9637-0d9b3a0d4a96 d77f288e-2c89-4c94-b4ba-79fbd1e26e79 --json
成功すると、このコマンドは次のような内容を返します。
{"configuration": {"loggers": {
"logger": [
{
"level": "info",
"name": "com.example.someLoggingClass"
},
{
"level": "info",
"name": "com.example.examplepkg.otherClass"
}
],
"root": {"level": "error"}
}}}
詳細については 、『 CLI ユーザー ガイド』を参照してください。
パイプラインログを検索しています
実行中の各パイプラインバージョンには、そのパイプラインのログが保存される一意の URL があります。 パイプラインからログにアクセスするには、図 1 に示すように、実行中のポータルのディスプレイにある [ ログを参照 ] リンクをクリックします。
CLI を使用する場合、パイプラインバージョンがアクティブ化、アップグレードされたとき、またはステータスリクエストが送信されたときに、ログ URL 情報がパイプラインによって提供されます。 ただし、パイプライン REST API と直接インターフェイスしてパイプラインを実行している場合は、ロギング URL を検出するためのステータス要求を作成する必要があります。 詳細について は、『 Logs 、 Monitoring and Alerts ユーザー ガイド』を参照してください。
例
CLI show
機能を使用すると、ステータスを確認できます。 特定のジョブの場合、次の CLI コマンドを使用できます。
olp pipeline version job show f2fc50c4-a0ac-4c8a-9637-0d9b3a0d4a96 d77f288e-2c89-4c94-b4ba-79fbd1e26e79 e8e31070-4f4b-4e4b-a8e0-40425844cb75
正常に終了した出力結果 :
{
"catalogVersions": null,
"created": "2018-03-01T15:23:04.618Z",
"id": "e8e31070-4f4b-4e4b-a8e0-40425844cb75",
"state": "failed",
"updated": "2018-03-01T15:23:32.497Z",
"loggingUrl": null
}
この場合 loggingUrl
、パラメータの値は null になります。 これは、まだ実行されていないジョブで検索する内容です。 ジョブが実行されると、ログ URL が表示されます。
注
スケジュール設定されたパイプラインが実行されるまで、ロギング URL は残り null
ます。
カスタムログとローカル開発
HERE platform パイプラインでは、追加のカスタムイベントのログが必要になる場合があります。 これらのコードはパイプラインアプリケーションコードに追加できますが、一部の制限があります。
HERE platform は通常、 SLF4J を介した標準的なログ記録をサポートしています。 SLF4J 互換の特定のログバックエンドが必要な場合は、 application.conf で設定を指定する必要があります ランタイムには SLF4J バックエンドも必要です。 SLF4J のバックエンド実装のログの詳細について は、公式の SL4FJ ドキュメントを参照してください。
- 開発者がパイプラインコードにログを追加する場合は、 SLF4J 抽象化ログ API を使用する必要があります。 HERE platform は、前述のように、プラットフォームでのバインディングと、ログレベルをオンザフライで制御する API を提供します。
- パイプライン JAR ファイル アーティファクトには、
slf4j-api
またはなどの個別のロギング実装 JAR ファイル を含めることはできませ slf4j-log4j12
ん。 たとえば、は slf4j-api
、パイプラインアプリケーションの Fat JAR ファイル の BOM で定義されている Provided JAR ファイル である必要があります。 - パイプラインコードのローカルでの開発およびテストを行う場合
logback
、開発者は任意の SLF4J バインディングを自由に提供できますが、推奨されています。
イベントログは、組み込みバージョンの Splunk によって処理されます。 一般的に、 Splunk はバックグラウンドで実行されるため、注意する必要はありません。 ただし、新しい Splunk ホームを作成するか 、またはプラットフォームポータルでレポートを実行できます。
も参照してください