このトピックでは、マッピング関数e_dict_mapを使用してログデータをエンリッチする方法について説明します。
一般的なマッピング関数
一般的なマッピング関数は、フルテキスト照合方法を使用してデータをマッピングします。 正規表現マッチング、完全一致、ファジーマッチングなど、よりリッチなフィールドマッチング方法が必要な場合は、検索マッピング関数を使用します。 一般的なマッピング関数には、e_dict_map関数とe_table_map関数があります。 e_dict_map関数の入力データは辞書形式です。 e_table_map関数の入力データは、リソース関数を使用して取得されたテーブルの形式です。
たとえば、e_dict_map関数を使用して、nginxログのHTTPステータスコードをText型のデータに変換できます。
HTTPステータスコード | テキスト |
200 | Success |
300 | Redirect |
400 | Request error |
500 | Server error |
e_dict_map
このセクションでは、e_dict_map関数を使用してログデータをエンリッチする方法について説明します。
生のログエントリ
http_host: example.com http_status: 300 request_method: GET http_host: example.org http_status: 200 request_method: POST http_host: example.net http_status: 400 request_method: GET http_host: aliyundoc.com http_status: 500 request_method: GET
変換の要件
http_statusフィールドのステータスコードをText型のデータに変換し、変換したデータをstatus_descフィールドに追加します。
変換ルール
e_dict_map({"400": "Request error", "500": "Server error", "300": "Redirect", "200": "Success"}, "status", "status_desc")
説明上記の変換ルールには、4つのHTTPステータスコードのみが含まれます。 詳細は、「HTTPステータスコード」をご参照ください。 http_statusフィールドの値が401または404の場合、対応する値をソース辞書に含める必要があります。 そうしないと、データマッピングは失敗します。
結果
http_host: example.com http_status: 300 request_method: GET status_desc: Redirect http_host: example.org http_status: 200 request_method: POST status_desc: Success http_host: example.net http_status: 400 request_method: GET status_desc: Request error http_host: aliyundoc.com http_status: 500 request_method: GET status_desc: Server error