文法の枠組みとサンプル:データ処理サービスをログに記録

1.グローバルオペレーションのイベント

1.1フィールドの割り当て(設定したイベント)

1.1.1。構文はじめに

構文:

SET_EVENT[[_]数字]_新字段 = 固定值
SET_EVENT[[_]数字]_新字段 = 表达式函数

説明

  • 単一のフィールドの値を提供することで、フィールド名は新字段、存在する場合、それは既存のフィールド値を上書き
  • 新字段:文字の制約がある、英語_デジタル構図が、数字で始めることはできません。注意:中国の支援ではなく:、ログインすることはできません。このようにtag等、を参照することが一般的な手順などの要件を完了します。
  • 式の関数は値を返しませんNone操作は無視されます
  • 返される値の任意のタイプの式(バックイベントに、例えば、数、文字列としてフォーマットされている)文字列に変換します
  • 同じに設定すると、特定の状況下で、複数のフィールドを必要とする中間体の使用を必要とする[[_]数字プレースホルダを区別するために異なる値を作成します。
  • 完全な式の機能情報、ご参照ください表現関数を

1.1.2。サンプル

例1:固定値を設定し
、新たなフィールドを追加するcity値を上海

SET_EVENT_city = "上海"

例2:フィールドの値をコピー
表現の単一の関数を呼び出すことをv既存のフィールド、ret新しいフィールドに割り当てられた値result

SET_EVENT_result = v("ret")

実施例3:動的設定
フィールドからの関数呼び出し式組成物、retおよびreturn第一のフィールドに存在する値は、フィールドに戻り、その小文字に割り当てにresult

SET_EVENT_result = str_lower(v("ret", "return"))

実施例4:複数のセットフィールド値が
最初のフィールドの設定event_typeのデフォルト値を:

SET_EVENT_1_event_type = "login event"

いくつかの他の操作の後、フィールドがresultあるfailフィールドイベント、event_typeに設定されていますlogin failed event

# 中间一些其他操作

SET_EVENT_2_event_type = op_if(op_eq(v("ret"), "fail"), "login failed event", v("event_type"))

注意:これは、異なる番号の使用は、同じ名前の前にプレースホルダフィールドを行う必要です。

1.2フィールドエキス(抽出イベント)

1.2.1。構文はじめに

構文:

EXTRACT_EVENT[[_]数字]_字段 = 字符串
EXTRACT_EVENT[[_]数字]_字段 = 字段操作类函数

説明

  • 単一の字段値はJSONは、フィールド値を含む、分割キーと値のペア、濃縮されたルックアップテーブルを展開し、典型的には、正規表現のような複数のフィールドを、値を抽出するように動作する、イベントが複数に分割されます。
  • 文字列フィールドの操作は、クラスの関数であるREGEXの速記。
  • デフォルト値の複数をさらに参照して、存在する場合、または元のカバーフィールド空でない抽出されるフィールドの検査の抽出された値と上書きモード
  • 字段_中国、英作文が、数字で始めることはできません:文字の制約があります。中国人のためのサポートが、サポートしていません注::それは丸太のためにこの方法ではありません、tag参照することができ、操作するなど、一般的な操作の完全な要件。
  • 式の関数は値を返しませんNone操作は無視されます
  • いくつかのケースでは、必要に応じ場合と同じ値の複数の引き出し電界、中間の使用を必要とする[[_]数字プレースホルダを区別するために異なる値を作成します。
  • 完全なオペレーションフィールドクラスの機能は、参照フィールドベースの操作機能

1.2.2。サンプル

例1:抽出された正規表現値
フィールドからemailユーザー名を抽出するためにuser、メール名の部門company

EXTRACT_EVENT_email = r"(?P<user>\w+)@(?P<company>\w+)\.com"

注:文字列フィールドの動作は、正規表現のクラス関数(あるREGEX)速記、参照してより詳細が使用します。

例2:新しいフィールドをマッピングするフィールド値
フィールドに基づくlevel値、機能は動作磁界のクラスを呼び出してLOOKUP新しいフィールドをマッピングlevel_infoするには:

EXTRACT_EVENT_level = LOOKUP({"1": "info","2": "warning","3": "error", "*": "other"},"level_info")

実施例3:JSON展開
フィールドrequest_body及びresponse_body値を、関数は、動作フィールドクラスを呼び出すJSON複数の値に自動的に(デフォルトの深さ10)を展開します。

EXTRACT_EVENT_request_body = JSON
EXTRACT_EVENT_response_body = JSON(depth=1)

パラメータなしでJSONより呼び出す簡単な方法であり、JSON関数のパラメータ、特定の参照マニュアル。

実施例4:複数の抽出フィールドの値
まずフィールドresponse_body展開JSON、それらの特定の値を抽出するために、その後の正規表現:

EXTRACT_EVENT_1_response_body = JSON(depth=1)
EXTRACT_EVENT_2_response_body = r"trace_id=(?P<trace_id>[\w\-]+)"

注意:これは、異なる番号の使用は、同じ名前の前にプレースホルダフィールドを行う必要です。

1.3. 通用操作

1.3.1。構文はじめに

構文:

TRANSFORM_ANY_[占位符] = 操作
TRANSFORM_ANY_[占位符] = 操作列表

操作
三つの形式、上記2つの操作を含む、拡張形態、および第三の一般的操作事件操作类函数

字段赋值操作 = {"新字段名": 固定值或表达式函数, "另一个字段名": }
字段提取操作 = 字段输入, 字符串或字段操作类函数
一般操作 = 事件操作类函数

アクションリスト
などの複数の操作のリスト[操作1, 操作2, 操作3, ....]から構成されるリストは、イベントを破棄するために操作しない限り、実装継続が続きます。
注意:複数の操作をしなければならない[]同封。

説明

  • フィールド割付:{ key1: value1, key2: value2}キーと値の形の複数の、複数の値の割り当てをサポートします。
  • フィールド抽出操作:输入, 操作単一ペア、输入専用フィールドには、例えば、することができないOSSLOOKUP複数の入力をサポートしてマッピングを行います。
  • 一般的な手順:ドロップイベント、特定のフィールドを保持または破棄などだけでなく、出力イベント:のような、イベントの通常動作をカバー
  • 一般的な複数の動作は、異なる値を必要としない占位符、一般的にデジタル蓄積に、区別するために。
  • 完全なイベント・クラス操作は詳細を参照し、情報を機能入射クラス機能の動作の詳細

1.3.2。サンプル

実施例1:フィールド割り当て複数の
複数のフィールドを割り当てるためには、式機能をサポートします。

TRANSFORM_ANY_1 = {"__topic__": "default topic", "tag:__type__": v("event_type"), "level": "1"}

実施例2:抽出されたフィールドの値
フィールドに基づくrequest_body値、フィールドベースのコール機能の動作JSON複数の値に拡張:

TRANSFORM_ANY_2 = "request_body", JSON(depth=1)

例3:一般的な手順は、
イベントフィールドをドロップするfield1field2

TRANSFORM_ANY_3 = DROP_F(["field1", "field2"])

実施例4:動作する複数の
複数の動作が順に実行されます。

TRANSFORM_ANY_4 = [ {"email": "[email protected]"}, ("request_body", JSON) ]

実施例4:発現および機能ベースの操作機能の相互運用性
フィールドvalidかどうかの値trueイベントを保持または廃棄します。

TRANSFORM_ANY_5 = op_if(op_eq(v("valid"), "true"), KEEP, DROP)

注意:場所KEEPDROPイベントクラスの操作を識別保持し、破棄されます。

1.4一般的な運転条件に

1.4.1。構文はじめに

構文:

TRANSFORM_EVENT_占位符 = 条件操作
TRANSFORM_EVENT_占位符 = 条件操作列表

動作条件は、
条件は、すなわち、その動作の実装、又は全く操作を満たしている場合、運転条件と共通です。

条件操作 = 条件, 操作

注意:どこ操作も可能操作列表詳細については、を参照してください。操作

条件は、
条件現在のイベント、特定の条件は次の3つの方法の形で発現を満たしているかどうかを決定するために使用されます。

- 固定条件标识
- {"字段名1", "正则表达式1"}
- {"字段名1", NOT("正则表达式1")}            # NOT
- {"字段名1", "正则表达式1", "字段名2": "正则表达式2", ... }   # AND
- 表达式函数
- 以上形式的列表,如:[ {"字段名1": "正则表达式1"}, {"字段名2": "正则表达式2"}, ... ]   # OR

条件付き演算のリスト、
複数の条件操作ようなリスト、[条件操作1, 条件操作2, 条件操作3, ....]リストの設定。それぞれが各チェック条件操作条件は、すなわち、アクチュエータの操作、または全く操作を満たします。チェックした後、次の続行する条件操作ステップは、イベントを破棄しない限り、。
注意:リスト全体をしなければならない[]動作条件のそれぞれが使用する必要があり、同封()同封。

条件の構文

  • 固定条件ロゴ:特定の事前定義された識別子の使用は、例えばANYALLなどの任意のイベントであることすべてが一致し、その後の操作であろう識別する。
  • キーと値のペア:{ key : value }フィールドの値が正であり、完全な一致、フィールドの値の一つは、正規表現でなければならないことに注意があり、完全一致(開始から終了まで試合が)条件を満たしていると考えることができます。

    • 例:フィールドのuser値が「私のpythonを愛する」、その後、正規表現「私は愛する」または「Pythonは」一致することができませんでした。
    • 複数のキーチーム関係との間の関係は、全体がペアリング操作(リスト)を実行するために満たす必要があり、ANDです。
    • 定期的に使用NOT動員、ロジックになりますnot
  • することができ表达式函数、判定条件(デフォルトは空の文字列、なし、ブール値はFalse、番号0として値を返すなど、空のリストを表し満たされていない、そうでない場合に満足を示し表明しました。
  • 発現された複数の論理的な組み合わせのリスト使用してOR意味を満たす、すなわち、ペアリング操作を行う(リスト)を有するように単純に

    • ORなお、AND、NOTなどの現在のバージョンは、任意の論理を入れ子にすることはできません。
    • 複合決意ロジックを使用することができます表达式函数
  • 式関数リファレンス式の機能を

1.4.2。サンプル

実施例1:演算値が一致した後に
フィールドがresultあるfailed、またはfailure、テーマに設定されたイベントlogin_failed_event

TRANSFORM_EVENT_1 = {"result": r"failed|failure"}, {"__topic__": "login_failed_event"}

実施例2:決意した再抽出フィールドの値
フィールドが場合request_body存在し、非ヌル値であり、フィールドベースの操作機能を起動JSONフィールドにはrequest_body複数の値に拡張されます。

TRANSFORM_EVENT_2 = NO_EMPTY("request_body"), ("request_body", JSON)

本明細書で使用される、表現の特定の機能は、NO_EMPTYフィールドの存在を示しrequest_body、および非空を。

実施例3:高度な操作を再決定
フィールドときvalidの値であるfailed、ドロップイベント:

TRANSFORM_EVENT_3 = op_if(v("valid"), "failed"), DROP

実施例4:の運転状態の複数の
複数の動作が順番に実行されます。

TRANSFORM_EVENT_3 = [ 
                          (ANY, {"__topic__": "default_login"}), 
                          ( {"valid": "failed"}, {"__topic__": "login_failed_event"} ) 
]

なお、動作条件の複数用いて[]動作条件の囲まれた、各々のために、使用されて()封入されます。

1.5。条件に基づいて派遣業務を

1.5.1。構文はじめに

構文:

DISPATCH_EVENT_占位符 = 条件操作列表

説明

  • フォームでの一般的な動作条件は、基本的には同じであることを
  • 複数の前記条件操作各各チェックリストの、条件操作条件を満たさない絶えず次チェック条件操作ペアリング操作アクチュエータ(リスト)を満たすように、すなわち、それは、もはやその後の後に行われていない条件操作アップ。

1.5.2。サンプル

例4:条件付き割り当て
フィールドに基づいてhttp_status別のイベントのテーマを設定するには:

DISPATCH_EVENT_1 = [ 
                          ({"http_status": r"2\d+"} , {"__topic__": "success_event"}), 
                          ({"http_status": r"3\d+"} , {"__topic__": "redirection_event"}), 
                          ({"http_status": r"4\d+"} , {"__topic__": "unauthorized_event"}), 
                          ({"http_status": r"5\d+"} , {"__topic__": "internal_server_error_event"}), 
]

なお、動作条件の複数用いて[]動作条件の囲まれた、各々のために、使用されて()封入されます。

簡素化されたマクロ1.6共通操作イベント

1.6.1リテンション/ドロップイベント

構文
保持するかの条件を満たすようにイベントを破棄

KEEP_EVENT_占位符 = 条件
DROP_EVENT_占位符 = 条件

説明

  • 条件:運転条件に及び一般的状態に一致リスト、基準とすることができる条件

1.6.2予約/ドロップフィールド

構文
フィールド名の条件を満たして保持するか破棄

KEEP_FIELDS_占位符 = 字符串或字符串列表
DROP_FIELDS_占位符 = 字符串或字符串列表

文字列または文字列のリスト

  • 文字列:文字列は、ここを指し正则表达式、フィールド名が一致したときに、文字列を保持するか破棄します。
  • リスト:表現[]のような正規表現文字列の囲まれたリスト:["abc", "xyz"]
  • 提供する事前定義された良いの数meta識別フィールド名は、例えば、直接使用することができるF_TIME時間フィールドが表すF_META時間、テーマ、およびその他のフィールドを示しています。

説明

  • 条件:運転条件に及び一般的状態に一致リスト、基準とすることができる条件
  • イベントログサービスも隠しメタフィールドが含まれているため:含め__time____topic__あなたが削除した場合など__time__、イベント時間は現在の時間にリセットされますが、使用にはKEEP_FIELDS_特別な注意が必要で、誤って削除しないでください。
  • 一般的なKEEP_FIELDS_形式は次のとおりです。[F_TIME, F_META, F_TAGS, "f1", "f2" ]

1.6.3名前の変更フィールド

文法

ALIAS_xxx = {"现有字段名正则1": "新字段名1", "现有字段正则2": "新字段名2",}
RENAME_FIELDS_xxx = {"现有字段名正则1": "新字段名1", "现有字段正则2": "新字段名2",}

説明

  • ALIAS_そして、RENAME_FIELDS_違いはありません
  • ここでは、既存のフィールドの実際の名前がある正则表达式複数の一致フィールドがある場合、すべてのフィールドは、新しいフィールド名に変更され、新しいフィールド名の値は、特定され、未知のうちの一つです。ログがある場合に主に簡略化された統一フィールド名を持つデータソースの混合様々な解決します。

1.6.4出力イベント

私たちは、イベント出力の条件を満たしています

文法

OUTPUT_xxx = 条件
COUTPUT_xxx = 条件

説明

  • 条件:運転条件に及び一般的状態に一致リスト、基準とすることができる条件
  • OUTPUT状態出力イベント、後続の処理のためにないイベントを、(廃棄理解されるように)満たした後。
  • COUTPUTイベントの条件を満たすために出力した後、イベントが(コピー出力として理解することができる)、治療をフォローアップしていきます。
  • 事件类操作函数OUTPUTは` よりカスタマイズされた動作をサポートCOUTPUT`。リファレンスイベントクラス操作関数

2.表現関数

発現は、典型的には、単一の関数呼び出しの、特定の値を返し、または式の組み合わせは、以下の幅広いカテゴリをカバーし、100から増加し続けました。

  • 基本的な操作機能:フィールド値、制御、比較は、コンテナは、コンテンツ、マルチフィールドオペレーションフィールド、等の存在を決定し、決定され
  • 伝達関数:基本的な型変換、デジタル変換
  • 算術関数:計算多値比較演算、数学的計算、および他の数学的パラメータに基づいて
  • 文字列関数:マルチフィールド操作、符号化/復号化、ソート、フラッシュバック、あるいは、従来の構造では、判断、セグメンテーション、フォーマット、および他の文字セットが決定される見つけます
  • 日付時刻関数:取得の日付時刻スマート変換、取得日時属性、日付と時刻、取得のUnix時刻取得日時文字列、変更日 - 時間、変更日時、日付と時刻の比較
  • 正規表現関数:フィールド抽出、判断力を合わせる、あるいは、分類をカット

詳細は、ユーザーマニュアルを参照してください。

3.機能のフィールドクラスの操作

入力フィールドの値に基づいて、操作、ノート:現在のフィールドは、関数や演算式機能ベースの相互運用性をサポートしていません。

以下の広いカテゴリーをカバーし、かつ増加し続けました:

  • 通常の抽出カラム:通常のフルサポート、動的抽出フィールド名などを含みます
  • CSV形式の抽出物が:標準のCSVをサポート
  • 辞書マッピング:ダイレクト・フィールドのマッピング
  • 外部OSSマルチカラムマッピング:データ強化は、広い外部OSSの関連付けからCSVをマッチング、増分リフレッシュをサポートしています。
  • 外部データベースのマッピングマルチカラム:関連する外部データベースからデータ強化、ダイナミックリフレッシュ、広いマッチングをサポートしています。
  • 外部Logstore多列マッピング:関連する外部logstoreからデータ強化は、増分リフレッシュ、部分一致をサポートしています。
  • 自動KV:自動抽出KVは、また、カスタム区切り文字、自動脱出シーンをサポートしています
  • JSONは自動的に拡張:サポート、配列など、JSONコンテンツを自動展開するカスタム・プロセスのサポートが開始されました。
  • JSON-JMESフィルタ:JMESは、プロセスを選択した後、動的計算をサポートしています。
  • (JSON配列や文字列に基づいて)スプリットイベント:文字列のイベントベースのアレイの分割またはJSONの配列
  • 行(JSONに基づいて、文字列またはアレイ)の組み合わせ、複数:文字列またはJSONの配列に基づいてマルチフィールドマージアレイ

詳細は、ユーザーマニュアルを参照してください。

現場検査と上書きモードの値を抽出します

キーワード文字セット:

  • この政策の実施方法は以下のとおりです。REGEX(ダイナミックキー名)、JSON、KV
  • デフォルト:[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\w\-\.]*
  • 非準拠の例:123 = ABC 1K = 200 { "123": "456"}、等

上書きモードモードパラメータを設定します。

  • サポートされている抽出方法:REGEX、KV、CSV、検索、JSON

    • ("msg",REGEX(r"(\w+):(\d+)",{r"k_\1": r"v_\2"}, mode="fill-auto")
  • 埋める - 主なフィールドが存在しないか、空になったとき
  • 主なフィールドが存在しない場合に設定 - 追加
  • 上書き - 常にセット
  • /追加/埋める上書きオート - (null以外の値場合にのみ、新しい操作)
  • デフォルト:フィル・オート

4.イベントのクラスの操作は、詳細機能します

直接操作イベント機能、

次のカテゴリをカバーします:

  • KVマルチフィールド抽出
  • イベントメタ:フィールドは破棄され、名前を変更
  • イベント出力:コピー出力、出力が低下し、マルチターゲット構成、オーバーロードされた元のメタ、および他の追加の詳細タグ

注:イベントは、操作の特定の種類でサポートされて表現関数のようなリターン式関数として相互。

詳細は、ユーザーマニュアルを参照してください。

さらに参照して

ようこそスキャンコードは、直接タイムリーとアリクラウドエンジニアにリアルタイムの更新をサポートする公式のネイルグループ(11775223)に参加するには:
画像

おすすめ

転載: yq.aliyun.com/articles/704938