すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:フィールド処理関数

最終更新日:Aug 27, 2024

このトピックでは、フィールド処理関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。

関数

関数

説明

v

ログからフィールドの値を抽出します。 関数に複数のフィールドの名前を指定した場合、関数はログに存在する最初のフィールドの値を返します。

この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。

e_set

フィールドを追加するか、既存のフィールドの新しい値を指定します。

この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。

e_drop_fields

指定された条件を満たすログフィールドを削除します。

この関数は、他の関数と一緒に使用できます。 詳細については、「複雑なJSONデータの変換」をご参照ください。

e_keep_フィールド

指定された条件を満たすログフィールドを保持します。

e_pack_fields

ログフィールドをパックし、ログフィールドを値として新しいフィールドに割り当てます。

e_rename

指定された条件を満たすログフィールドの名前を変更します。

この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。

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: フィールドに異なる値を指定します。

      1. event_typeフィールドの値を指定します。

        e_set("event_type", "login event", "event_info", "login host")
      2. 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
    • 関連ドキュメント

      この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用したデータの浄化」をご参照ください。