Logtailを使用してログを収集する場合、processor_gotime
またはprocessor_strptime
プラグインを使用して、生ログの時間フィールドを解析できます。 このトピックでは、processor_gotimeおよびprocessor_strptimeプラグインのパラメーターについて説明し、プラグインの設定方法の例を示します。
エントリーポイント
Logtailプラグインを使用してログを処理する場合は、Logtail設定を作成または変更するときにLogtailプラグイン設定を追加できます。 詳細については、「データ処理用Logtailプラグインの概要」をご参照ください。
Goでサポートされている時間形式
processor_gotime
プラグインは、生ログの時間フィールドをGoでサポートされている時間形式に解析します。 Simple log Serviceで収集されたログのログ時間として新しい時間値を設定できます。
Logtail V0.16.28以降はprocessor_gotimeプラグインをサポートしています。
フォーム設定: フォーム設定を使用して、テキストログとコンテナのstdoutおよびstderrを収集できます。
JSONのエディター設定: JSONのエディター設定を使用してテキストログを収集することはできません。
フォーム設定
パラメーター
[プロセッサタイプ] を [ログ時間の抽出 (移動時間形式)] に設定します。
次に、次の表に基づいて他のパラメーターを設定します。
パラメーター
説明
元の時間フィールド
元のフィールドの名前。
元の時間形式
元の時間形式。
元のタイムゾーン
元のタイムゾーン。 システムタイムゾーンを保持する場合、Logtailがインストールされているサーバーまたはコンテナーのタイムゾーンが使用されます。
新しい時間フィールド
解析後に取得される新しいフィールドの名前。
新しい時間形式
解析後に取得される新しいフィールドの時間形式。
カスタム新しいタイムゾーン
解析後に取得される新しいフィールドのタイムゾーン。 [システムタイムゾーン] を保持する場合、Logtailがインストールされているサーバーのタイムゾーンが使用されます。
高度なパラメーター > ログタイムとして使用
新しい時間値をログ時間として使用するかどうかを指定します。
高度なパラメーター > 元のフィールドを保持
解析後に取得される新しいログに元のフィールドを保持するかどうかを指定します。
高度なパラメータ > 元のフィールド欠落エラーの報告
生のログに元のフィールドが含まれていない場合にエラーを報告するかどうかを指定します。
高度なパラメータ > レポート抽出失敗エラー
ログ時間の抽出に失敗した場合にエラーを報告するかどうかを指定します。
例:
元のtimeフィールドは
s_key
で、フィールド値は2006-01-02 15:04:05 (UTC + 8)
形式です。 元の時間値は、2006/01/02 15:04:05 (UTC + 9)
形式に解析されます。 新しい時間値はd_key
フィールドに保存され、Simple log Serviceのログ時間として使用されます。生ログ
"s_key":"2022-07-05 19:28:01"
データ処理用のLogtailプラグイン設定
結果
"s_key":"2022-07-05 19:28:01" "d_key":"2022/07/05 20:28:01"
JSONでのエディター設定
パラメーター
typeをprocessor_gotimeに設定します。 次に、次の表に基づいて他のパラメーターを詳細に設定します。
パラメーター
データ型
必須
説明
SourceKey
String
課金されます
元のフィールドの名前。
SourceFormat
String
課金されます
元の時間形式。
SourceLocation
Int
課金されます
元のタイムゾーン。 パラメーターが空の場合、Logtailがインストールされているサーバーまたはコンテナーのタイムゾーンが使用されます。
DestKey
String
課金されます
解析後に取得される新しいフィールドの名前。
DestFormat
String
課金されます
解析後に取得される新しいフィールドの時間形式。
DestLocation
Int
課金されません
解析後に取得される新しいフィールドのタイムゾーン。 パラメーターが空の場合、Logtailがインストールされているサーバーのタイムゾーンが使用されます。
SetTime
ブール値
課金されません
新しい時間値をログ時間として使用するかどうかを指定します。 有効な値:
true (デフォルト)
false
KeepSource
ブール値
課金されません
解析後に取得される新しいログに元のフィールドを保持するかどうかを指定します。 有効な値:
true (デフォルト)
false
NoKeyError
ブール値
課金されません
生のログに元のフィールドが含まれていない場合にエラーを報告するかどうかを指定します。 有効な値:
true (デフォルト)
false
AlarmIfFail
ブール値
課金されません
ログ時間の抽出に失敗した場合にエラーを報告するかどうかを指定します。 有効な値:
true (デフォルト)
false
例:
元のtimeフィールドはs_keyで、フィールド値は
2006-01-02 15:04:05 (UTC + 8)
形式です。 元の時間値は、2006/01/02 15:04:05 (UTC + 9)
形式に解析されます。 新しい時間値はd_keyフィールドに保存され、Simple log Serviceのログ時間として使用されます。生ログ
"s_key":"2019-07-05 19:28:01"
データ処理用のLogtailプラグイン設定
{ "processors":[ { "type":"processor_gotime", "detail": { "SourceKey": "s_key", "SourceFormat":"2006-01-02 15:04:05", "SourceLocation":8, "DestKey":"d_key", "DestFormat":"2006/01/02 15:04:05", "DestLocation":9, "SetTime": true, "KeepSource": true, "NoKeyError": true, "AlarmIfFail": true } } ] }
結果
"s_key":"2019-07-05 19:28:01" "d_key":"2019/07/05 20:28:01"
strptimeでサポートされる時間形式
processor_strptime
プラグインは、rawログの時間フィールドをstrptimeでサポートされている時間形式に解析します。 Simple log Serviceで収集されたログのログ時間として新しい時間値を設定できます。 時間形式の詳細については、「strptime (3) - Linuxマニュアルページ」をご参照ください。
Logtail V0.16.28以降はprocessor_strptimeプラグインをサポートしています。
フォーム設定
パラメーター
[プロセッサタイプ] を [ログ時間の抽出 (strptime Time形式)] に設定します。 次に、次の表に基づいて他のパラメーターを設定します。
パラメーター
説明
元のフィールド
元のフィールドの名前。
元の時間形式
元の時間形式。
元のフィールドを保持
解析後に取得される新しいログに元のフィールドを保持するかどうかを指定します。
レポート抽出失敗エラー
ログ時間の抽出に失敗した場合にエラーを報告するかどうかを指定します。
タイムオフセットの使用
時間オフセットを設定するかどうかを指定します。
時間オフセット
タイムゾーンのオフセット。 単位は秒です。 たとえば、値28800はUTC + 8を指定し、値-3600はUTC-1を指定します。
例:
元の時間フィールドは
log_time
で、フィールド値は% Y/% m/% d % H:% M:% S
形式です。 元の時間値は、Logtailがインストールされているサーバーのタイムゾーンを使用するログ時間に解析されます。 この例では、タイムゾーンはUTC + 8です。生ログ
"log_time":"2022/01/02 12:59:59"
データ処理用のLogtailプラグイン設定
結果
"log_time":"2022/01/02 12:59:59" Log.Time = 1451710799
一般的な時間表現
説明processor_strptimeプラグインは、時間値を % f形式に解析できます。 % fは1秒の小数部です。 processor_strptimeプラグインでサポートされる最高精度はナノ秒です。
例
時間表現
2016/01/02 12:59:59
% Y/% m/% d % H:% M:% S
2016/01/02 12:59:59.1
% Y/% m/% d % H:% M:% S.% f
2016/01/02 12:59:59.987654321 + 0700 (UTC)
% Y/% m/% d % H:% M:% S.% f % z (% Z)
2016/Jan/02 12:59:59,123456
% Y/% b/% d % H:% M:% S,% f
2019-07-15T04:16:47:123Z
% Y-% m-% dT % H:% M:% S:% f
JSONでのエディター設定
パラメーター
typeをprocessor_strptimeに設定します。 次に、次の表に基づいて他のパラメーターを詳細に設定します。
パラメーター
データ型
必須
説明
SourceKey
String
課金されます
元のフィールドの名前。
Format
String
課金されます
元の時間形式。
AdjustUTCOffset
ブール値
課金されません
タイムゾーンを変更するかどうかを指定します。 有効な値:
true
false (デフォルト)
UTCOffset
Int
課金されません
タイムゾーンのオフセット。 単位は秒です。 たとえば、値28800はUTC + 8を指定します。
AlarmIfFail
ブール値
課金されません
ログ時間の抽出に失敗した場合にエラーを報告するかどうかを指定します。 有効な値:
true (デフォルト)
false
KeepSource
ブール値
課金されません
解析後に取得される新しいログに元のフィールドを保持するかどうかを指定します。 有効な値:
true (デフォルト)
false
EnablePreciseTimestamp
ブール値
課金されません
高精度で時間値を抽出するかどうかを指定します。 有効な値:
true
false (デフォルト)
このパラメーターをtrueに設定すると、processor_strptimeプラグインは、SourceKeyで指定された時間フィールドの値をミリ秒の精度でタイムスタンプに解析し、そのタイムスタンプをPreciseTimestampKeyで指定されたフィールドに格納します。
重要このパラメーターをtrueに設定する前に、SourceKeyで指定されたtimeフィールドの値が、必要な時間精度 (ms、us、またはns) を使用していることを確認してください。
Logtail V1.0.32以降のみがこのパラメータをサポートしています。
PreciseTimestampKey
String
課金されません
高精度でタイムスタンプを保存するフィールド。 デフォルト値: precise_timestamp
PreciseTimestampUnit
String
課金されません
高精度のタイムスタンプの単位。 デフォルト値: ms。 有効な値: ms、us、およびns。
例:
元の時間フィールドはlog_timeで、フィールド値は
% Y/% m/% d % H:% M:% S
形式です。 元の時間値は、Logtailサーバーのタイムゾーンを使用するログ時間に解析されます。例1: タイムゾーンはUTC + 8です。
生ログ
"log_time":"2016/01/02 12:59:59"
データ処理用のLogtailプラグイン設定
{ "processors":[ { "type":"processor_strptime", "detail": { "SourceKey": "log_time", "Format": "%Y/%m/%d %H:%M:%S" } } ] }
結果
"log_time":"2016/01/02 12:59:59" Log.Time = 1451710799
例2: タイムゾーンはUTC + 7です。
生ログ
"log_time":"2016/01/02 12:59:59"
データ処理用のLogtailプラグイン設定
{ "processors":[ { "type":"processor_strptime", "detail": { "SourceKey": "log_time", "Format": "%Y/%m/%d %H:%M:%S", "AdjustUTCOffset": true, "UTCOffset": 25200 } } ] }
結果
"log_time":"2016/01/02 12:59:59" Log.Time = 1451714399
例3: タイムゾーンはUTC + 7です。
生ログ
"log_time":"2016/01/02 12:59:59.123"
データ処理用のLogtailプラグイン設定
{ "processors":[ { "type":"processor_strptime", "detail": { "SourceKey": "log_time", "Format": "%Y/%m/%d %H:%M:%S.%f", "EnablePreciseTimestamp": true } } ] }
結果
"log_time":"2016/01/02 12:59:59.123" "precise_timestamp": 1451714399123 Log.Time = 1451714399
一般的な時間表現
説明processor_strptimeプラグインは、時間値を % f形式に解析できます。 % fは1秒の小数部です。 processor_strptimeプラグインでサポートされる最高精度はナノ秒です。
例
時間表現
2016/01/02 12:59:59
% Y/% m/% d % H:% M:% S
2016/01/02 12:59:59.1
% Y/% m/% d % H:% M:% S.% f
2016/01/02 12:59:59.987654321 + 0700 (UTC)
% Y/% m/% d % H:% M:% S.% f % z (% Z)
2016/Jan/02 12:59:59,123456
% Y/% b/% d % H:% M:% S,% f
2019-07-15T04:16:47:123Z
% Y-% m-% dT % H:% M:% S:% f