このトピックでは、フィールド処理関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。
関数
関数 | 説明 |
ログからフィールドの値を抽出します。 関数に複数のフィールドの名前を指定した場合、関数はログに存在する最初のフィールドの値を返します。 この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。 | |
フィールドを追加するか、既存のフィールドの新しい値を指定します。 この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。 | |
指定された条件を満たすログフィールドを削除します。 この関数は、他の関数と一緒に使用できます。 詳細については、「複雑なJSONデータの変換」をご参照ください。 | |
指定された条件を満たすログフィールドを保持します。 | |
ログフィールドをパックし、ログフィールドを値として新しいフィールドに割り当てます。 | |
指定された条件を満たすログフィールドの名前を変更します。 この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。 |
v
v関数は、ログからフィールドの値を抽出します。 関数に複数のフィールドの名前を指定した場合、関数はログに存在する最初のフィールドの値を返します。
構文
v(key, ..., default=None)
パラメーター
パラメーター
データ型
必須
説明
キー
String
課金されます
フィールドの名前を設定します。
default
任意
課金されません
フィールドが存在しない場合、関数はこのパラメーターの値を返します。 デフォルト値: None。
レスポンス
ログに存在する最初のフィールドの値が返されます。 フィールドが存在しない場合、defaultパラメーターの値が返されます。
例
contentフィールドの値をtest_contentフィールドに割り当てます。
Raw log:
content: hello
変換ルール:
e_set("test_content", v("content"))
結果:
content: hello test_content: hello
関連ドキュメント
この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。
e_set
e_set関数は、フィールドを追加するか、既存のフィールドの新しい値を指定します。
構文
e_set(key1, value1, key2, value2, mode="overwrite")
重要key1パラメーターとvalue1パラメーターをペアで指定する必要があります。
e_set関数を使用してF_TIMEや __time__ などの時間フィールドの値を指定する場合、値は数値文字列である必要があります。
e_set(F_TIME, "abc") # Invalid syntax. e_set(F_TIME, "12345678") # Valid syntax.
パラメーター
パラメーター
データ型
必須
説明
キー
String
課金されます
追加する新しいフィールドの名前、または新しい値を指定する既存のフィールドの名前。 文字列式に基づいて名前を取得できます。 特別なフィールド名を指定する方法の詳細については、「イベントタイプ」をご参照ください。
value
任意
課金されます
新しいフィールドの値または既存のフィールドの新しい値。 このパラメーターの値が文字列でない場合、関数は自動的に値を文字列に変換します。 たとえば、このパラメーターをタプル、リスト、またはディクショナリ型の値に設定した場合、関数は自動的に値をJSON文字列に変換します。 文字列の変換ルールの詳細については、「割り当て時の自動型変換」をご参照ください。
説明このパラメーターをNoneに設定すると、関数は生ログを返します。
mode
String
課金されません
フィールドの上書きモード。 デフォルト値: overwrite 詳細については、「フィールド抽出のチェックモードと上書きモード」をご参照ください。
レスポンス
更新されたログが返されます。
例
例1: フィールドに固定値を指定します。
cityという名前の新しいフィールドを追加し、値をShanghaiに設定します。
e_set("city", "Shanghai")
例2: 既存のフィールドの値を抽出し、その値を新しいフィールドに割り当てます。
式関数を呼び出して、retという名前の既存のフィールドの値を抽出し、その値をresultという名前の新しいフィールドに割り当てます。
e_set("result", v("ret"))
例3: フィールドの動的値を指定します。
複数の式関数を順番に呼び出して、存在する最初のフィールドの小文字の値を取得し、その値を結果フィールドに割り当てます。
e_set("result", str_lower(v("ret", "return")))
例4: フィールドに異なる値を指定します。
event_typeフィールドの値を指定します。
e_set("event_type", "login event", "event_info", "login host")
retフィールドの値がfailの場合、event_typeフィールドをlogin failed eventに設定します。
e_if(e_search('ret==fail'), e_set("event_type", "login failed event" ))
関連ドキュメント
この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。
e_drop_fields
e_drop_fields関数は、指定された条件を満たすログフィールドを削除します。
構文
e_drop_fields(key1, key2, ....,regex=False)
パラメーター
パラメーター
データ型
必須
説明
キー
String
課金されます
ログフィールドの名前。 このパラメーターの値は正規表現にすることができます。 フィールド名が指定された条件を完全に満たす場合、フィールドは削除されます。 それ以外の場合、フィールドは保持されます。 正規表現の詳細については、「正規表現」をご参照ください。
少なくとも1つのログフィールドを指定する必要があります。
regex
ブール値
課金されません
このパラメーターをFalseに設定すると、正規表現は照合に使用されません。 デフォルト値は True です。
レスポンス
フィールドが削除されたログが返されます。
例
contentフィールドの値が123の場合は、contentフィールドとageフィールドを削除します。
Raw log:
age: 18 content: 123 name: twiss
変換ルール:
e_if(e_search("content==123"), e_drop_fields("content", "age",regex=True))
結果:
name: twiss
関連ドキュメント
この関数は、他の関数と一緒に使用できます。 詳細については、「複雑なJSONデータの変換」をご参照ください。
e_keep_fields
e_keep_fields関数は、指定された条件を満たすログフィールドを保持します。
Simple Log Serviceは、__time__ や __topic__ などの組み込みのメタフィールドを提供します。 e_keep_fields関数を呼び出したときに __time__ フィールドを保持しない場合、ログ時間は現在のシステム時間にリセットされます。 メタフィールドの値をリセットしない場合は、F_TIME、F_META、F_TAGS、"f1" 、"f2" 形式でリストにメタフィールドを追加する必要があります。 詳細については、「固定識別子」をご参照ください。
構文
e_keep_fields(key1, key2, ....,regex=False)
パラメーター
パラメーター
データ型
必須
説明
キー
String
課金されます
ログフィールドの名前。 このパラメーターの値は正規表現にすることができます。 フィールド名が指定された条件を完全に満たす場合、フィールドは保持されます。 それ以外の場合、フィールドは削除されます。
少なくとも1つのログフィールドを指定する必要があります。
regex
ブール値
課金されません
このパラメーターをFalseに設定すると、正規表現は照合に使用されません。 デフォルト値は True です。
レスポンス
フィールドが保持されているログが返されます。
例
contentフィールドの値が123の場合は、contentフィールドとageフィールドを保持します。
Raw log:
age: 18 content: 123 name: twiss
変換ルール:
e_if(e_search("content==123"), e_keep_fields("content", "age"))
結果:
age: 18 content: 123
e_pack_fields
e_pack_fields関数はログフィールドをパックし、ログフィールドを値として新しいフィールドに割り当てます。
構文
e_pack_fields(output_fields,include=".*",exclude=None,drop_packed=True)
パラメーター
パラメーター
データ型
必須
説明
output_field
String
課金されます
出力フィールドの名前。 出力フィールドの値はJSON形式です。
を含む
String
課金されません
ホワイトリスト。 ホワイトリストで指定された正規表現に一致するフィールドがパックされます。 デフォルト値: ".*" 。ログのすべてのフィールドが一致してパックされていることを示します。 詳細については、「正規表現」をご参照ください。
除外
String
課金されません
ブラックリスト。 ブラックリストで指定された正規表現に一致するフィールドはパックされません。 デフォルト値: なし。これは、ログ内のすべてのフィールドが評価されないことを示します。 詳細については、「正規表現」をご参照ください。
drop_packed
ブール値
課金されません
フィールドがパックされた後に生フィールドを削除するかどうかを指定します。 有効な値:
True: パックされた生のフィールドは結果で削除されます。 デフォルト値です。
False: パックされた生のフィールドは結果で削除されません。
レスポンス
フィールドがパックされたログが返されます。
例
例1: すべてのログフィールドをtestフィールドにパックします。 デフォルトでは、パックされた生フィールドは結果で削除されます。
Raw log:
test1:123 test2:456 test3:789
変換ルール:
e_pack_fields("test")
結果:
test:{"test1": "123", "test2": "456", "test3": "789"}
例2: すべてのログフィールドをtestフィールドにパックします。 パックされた生フィールドは結果で削除されません。
Raw log:
test1:123 test2:456 test3:789
変換ルール:
e_pack_fields("test",drop_packed=False)
結果:
test:{"test1": "123", "test2": "456", "test3": "789"} test1:123 test2:456 test3:789
例3: testおよびabcdフィールドをcontentフィールドにパックします。 パックされた生フィールドは結果で削除されません。
Raw log:
abcd@#%:123 test:456 abcd:789
変換ルール:
e_pack_fields("content", include="\w+", drop_packed=False)
結果:
abcd:789 abcd@#%:123 content:{"test": "456", "abcd": "789"} test:456
例4: testおよびabcdフィールドを除外する生のログフィールドをcontentフィールドにパックします。 パックされた生フィールドは結果で削除されます。
Raw log:
abcd@#%:123 test:456 abcd:789
変換ルール:
e_pack_fields("content", exclude="\w+", drop_packed=True)
結果:
abcd:789 content:{"abcd@#%": "123"} test:456
e_rename
e_rename関数は、指定された条件を満たすログフィールドの名前を変更します。
構文
e_rename("key1", "new key1", "key2", "new key2", ..., regex=False)
説明keyパラメーターとnew keyパラメーターをペアで指定する必要があります。 新しいキーが生のログにすでに存在する場合、操作は実行されません。
パラメーター
パラメーター
データ型
必須
説明
キー
String
課金されます
ログフィールドの名前。 このパラメーターの値は正規表現にすることができます。 フィールド名が指定された条件を完全に満たす場合、フィールド名が変更されます。 正規表現の詳細については、「正規表現」をご参照ください。
少なくとも1つのログフィールドを指定する必要があります。
新しいキー
String
課金されます
フィールドの新しい名前。
regex
ブール値
課金されません
このパラメーターをFalseに設定すると、正規表現は照合に使用されません。 デフォルト値は True です。
レスポンス
名前が変更されたフィールドが返されます。
例
例1: hostフィールドの名前をclient_hostに変更します。
Raw log:
host: 1006
変換ルール:
e_rename("host","client_host")
結果:
client_host: 1006
例2: 指定された条件を満たすフィールドがない場合、ログフィールドの名前を変更しないでください。
Raw log:
host: 1006
変換ルール:
e_rename("url","rename_url")
結果:
host: 1006
関連ドキュメント
この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。