- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
デフォルトでは、Datadog intake API によってログが受信されると、タイムスタンプが生成され、日付属性として付加されます。しかし、このデフォルトのタイムスタンプは、ログ自体に含まれる可能性のある実際のタイムスタンプを常に反映するわけではありません。このガイドでは、実際のタイムスタンプでデフォルトのタイムスタンプをオーバーライドする方法について説明します。
ログのタイムスタンプは、ログパネルのトップセクションにあります。タイムスタンプは UTC で保存され、ユーザーのローカルタイムゾーンで表示されます。上記のスクリーンショットでは、ローカルプロファイルが UTC+1
に設定されているため、ログを受信した時刻は 11:06:16.807 UTC
となります。
タイムゾーンが正しく設定されていないため、タイムスタンプが期待通りの値を示さない場合があります。Personal Settings > Preferences の Time zone セクションで確認できます。
タイムゾーンが正しい場合、メッセージからタイムスタンプを抽出し、表示されているログのタイムスタンプをオーバーライドします。
Datadog で生ログが期待したタイムスタンプを表示していない場合、生ログから正しいログタイムスタンプを抽出して、それをリマップします。
このようなログの例では
2017-12-13 11:01:03 EST | INFO | (tagger.go:80 in Init) | starting the tagging system
以下のようなパースルールを追加します。
MyParsingRule %{date("yyyy-MM-dd HH:mm:ss z"):date} \| %{word:severity} \| \(%{notSpace:logger.name}:%{integer:logger.line}[^)]*\) \|.*
MyParsingRule
の抽出の出力:
{
"date": 1513180863000,
"logger": {
"line": 80,
"name": "tagger.go"
},
"severity": "INFO"
}
date
属性には mytimestamp
値が格納されます。
ログ日付リマッパーを追加して、date
属性の値が現在のログのタイムスタンプをオーバーライドするようにします。
06:01:03 EST
(11:01:03 UTC
に相当) に生成された以下のログは、12:01:03 (この場合、表示タイムゾーンは UTC+1) と正しく表示されます。
注: すべての処理は取り込み時に行われるため、パイプラインの変更は新しいログにのみ影響します。
JSON ログは Datadog で自動的にパースされます。ログの date
属性は予約属性なので、JSON ログのための前処理操作を通過します。
下記の例では、ログの実際のタイムスタンプは mytimestamp
属性の値であり、ログのタイムスタンプ Dec 13, 2017 at 14:16:45.158
ではありません。
mytimestamp
属性の値が、現在表示されているログのタイムスタンプをオーバーライドするようにするには、それを日付属性として追加する必要があります。
mytimestamp
を追加します。日付リマッパーは予約された各属性をリストの順番に探します。日付が mytimestamp
属性に由来していることを確認するために、リストの最初に置きます。リマップが機能するためには、特定の日付形式に従う必要があります。認識されている日付形式は ISO8601、UNIX (ミリ秒 EPOCH 形式)、RFC3164 です。
別の日付形式を使用する場合は、カスタム日付形式を参照してください。
注: すべての処理は取り込み時に行われるため、パイプラインの変更は新しいログにのみ影響します。
リマッパーがデフォルトでサポートしていない日付形式は、Grok パーサーを使ってパースした後、サポートされている形式に変換することができます。
mytimestamp
を Extract from
セクションに追加して、このパーサーがカスタムの mytimestamp
属性にのみ適用されるようにします。お役に立つドキュメント、リンクや記事: