
log_output(エイリアス Alias)

パラメータ名 | パラメータ説明 | パラメータタイプ | 必須かどうか | パラメータのデフォルト値 | パラメータの値の範囲 |
alias | ターゲットトピックのエイリアス | string | はい | - | - |
[{"loglevel": "warning"},{"loglevel": "info"},{"loglevel": "error"}]
//loglevelフィールドの値がwarning/info/errorの場合に応じて、3つの異なるログトピックに振り分けます。t_switch(regex_match(v("loglevel"),regex="info"),log_output("info_log"),regex_match(v("loglevel"),regex="warning"),log_output("warning_log"),regex_match(v("loglevel"),regex="error"),log_output("error_log"))

log_auto_output(topic_name="", logset_name="", index_options="", period=3,storage_type=" ",hot_period=0)
パラメータ名 | パラメータ説明 | パラメータタイプ | 必須かどうか | パラメータ デフォルト値 | パラメータ説明 |
topic_name | 動的に生成されたログトピック名。 例えば v("loglevel")の場合、タスクは「Error」、「Info」、「Warning」という名前の3つのログトピックを自動的に生成します。 (お客様のログにおいて、loglevelフィールドが上記3つの値であると仮定します) | string | y | - | パラメータtopic_nameに「|」が含まれている場合、「|」は生成されるトピック名から削除されます。 パラメータtopic_nameの長さが250文字を超える場合、生成されるログトピック名は先頭の250文字のみとなり、超過分は切り捨てられます。 |
logset_name | 動的に生成されたログトピック名。 例えば「my_logSet」の場合、タスクは名前が「my_logSet」のログセットを自動的に作成します。 例えばv("namespace")の場合、タスクは名前が「dev」、「test」の2つのログセットを自動的に作成します。(ログ内のnamespaceフィールドが上記2つの値であると仮定します。) | string | y | - | - |
index_options | all_index:キー値インデックスと全文インデックスを有効にします。 no_index:インデックスを有効にしません。 content_index:全文インデックスを有効にします。 key_index:キー値インデックスを有効にします。 | string | n | all_index | storage_type=cold、つまり低頻度ストレージの場合、all_indexとkey_indexは有効になりません。つまり、低頻度ストレージはキー値インデックスをサポートしません。 |
period | 保存期間。一般的な値の範囲は1~3600日です。 3640は永久保存を表します。 | number | n | 3 | 1~3600日です。 |
storage_type | ログトピックのストレージタイプ。選択可能な値です。 hot:標準ストレージ cold:低頻度ストレージ | string | n | hot | coldの場合、periodは最小7日です。 |
hot_period | 0:ログ沉降を無効にします。 0以外:ログ沉降を有効にした後、標準ストレージに保存される日数 HotPeriodは7以上、かつPeriod未満である必要があります。StorageTypeがhotの場合にのみ有効になります。 | number | n | 0 | - |
tag_dynamic | ログトピックに動的タグを追加し、extract_tag()関数と連携して、ログフィールドからタグのKVを抽出するために使用します。例えば:tag_dynamic=extract_tag(v("pd"),v("env"),v("team"), v("person")) | string | n | - | tag_staticと合わせて10ペアのタグを超えないこと。 |
tag_static | ログトピックに静的タグを追加します。例えば:tag_static="Ckafka:test_env,developer_team:MikeWang" | string | n | - | tag_dynamicと合わせて10ペアのタグを超えないことの例です。 |
log_auto_output( str_join("-", "myPrefix", v("app")), "myLogSet")の構文を参照してください。appが存在しない場合、または値が「 」の場合、ログは「myprefix」という名前のログトピックに書き込まれます。[{"pd": "CLB","dateTime": "2023-05-25T00:00:26.579"},{"pd": "Ckafka","time": "2023-05-25T18:00:55.350+08:00"},{"pd": "COS","time": "2023-05-25T00:06:20.314+08:00"},{"pd": "CDN","time": "2023-05-25T00:03:52.051+08:00"}]
log_auto_output(v("pd"),"我的日志集",index_options="content_index", period=3)

名前が重複するシナリオ | 処理ルール | 実際の結果例 |
ログセット/ログトピック test を手動で作成し、タスクでも test を作成する必要があります。 | -CreateByCLSETL サフィックスを自動的に追加して隔離します。 | タスクは実際に test-CreateByCLSETL という名前のログセット/ログトピックを作成しました。 |
加工タスク1とタスク2の両方で、ログセットを myLogSet として定義しています。 | 計算されたカスタムIDが同じであれば、後続のタスクは既存のリソースを再利用し、サフィックスを追加しません。 | タスク2は当該ログセットを直接共用し、重複して作成することはありません。 |
特殊なシナリオ | 処理ロジック |
動的タグのKV値の取得に失敗しました | 例えば、Aフィールドの値をタグのKeyに、Bフィールドの値をタグのValueに指定した場合、ある行のログにAフィールドまたはBフィールドがない場合、またはAフィールドとBフィールドの値が空の場合、タグの追加に失敗します。 |
タグのKV値の前後にスペースがあります | タグの追加に失敗しました。 |
動的タグと静的タグの合計数が10ペアを超えている | 動的タグの優先度が高く、動的タグを追加した後も10ペアに満たない場合は静的タグを補充しますが、合計数は10ペアを超えません。 |
タグKVの長さが制限を超えています | タグのkeyの長さが127を超えるか、valueの長さが255を超える場合、タグの追加に失敗します。 |
log_split(filed, sep=",", quote="\\", jmes="", output="")
パラメータ名 | パラメータ説明 | パラメータタイプ | 必須かどうか | パラメータのデフォルト値 | パラメータの値の範囲 |
field | 抽出対象のフィールド名 | string | はい | - | - |
sep | 区切り文字 | string | いいえ | , | 任意の1文字 |
quote | 値を囲む文字 | string | いいえ | - | - |
jmes | 説明: jmesに特殊文字(例: . \\ * + ? ^ $ | () [] {} - /)が含まれる場合は、エスケープ文字を付ける必要があります。 | string | いいえ | - | - |
output | 単一フィールド名 | string | はい | - | - |
{"field": "hello Go,hello Java,hello python","status":"500"}
//区切り文字「、」を使用して、ログを3つに分割します。log_split("field", sep=",", output="new_field")
{"new_field":"hello Go","status":"500"}{"new_field":"hello Java","status":"500"}{"new_field":"hello python","status":"500"}
{"field": "{\\"a\\":{\\"b\\":{\\"c\\":{\\"d\\":\\"a,b,c\\"}}}}", "status": "500"}
//a.b.c.dノードの値は「a,b,c」です。log_split("field", jmes="a.b.c.d", output="new_field")
{"new_field":"a","status":"500"}{"new_field":"b","status":"500"}{"new_field":"c","status":"500"}
{"field": "{\\"a\\":{\\"b\\":{\\"c\\":{\\"d\\":[\\"a\\",\\"b\\",\\"c\\"]}}}}", "status": "500"}
log_split("field", jmes="a.b.c.d", output="new_field")
{"new_field":"a","status":"500"}{"new_field":"b","status":"500"}{"new_field":"c","status":"500"}
log_drop(条件1)
パラメータ名 | パラメータ説明 | パラメータタイプ | 必須かどうか | パラメータのデフォルト値 | パラメータの値の範囲 |
condition | bool型の関数式 | bool | はい | - | - |
[{"field": "a,b,c","status": "500"},{"field": "a,b,c","status": "200"}]
log_drop(op_eq(v("status"), 200))
{"field":"a,b,c","status":"500"}
log_keep(条件1)
パラメータ名 | パラメータ説明 | パラメータタイプ | 必須かどうか | パラメータのデフォルト値 | パラメータの値の範囲 |
condition | bool型の関数式 | bool | はい | - | - |
[{"field": "a,b,c","status": "500"},{"field": "a,b,c","status": "200"}]
log_keep(op_eq(v("status"), 500))
{"field":"a,b,c","status":"500"}
log_split_jsonarray_jmes("field", jmes="items", prefix="")
パラメータ名 | パラメータ説明 | パラメータタイプ | 必須かどうか | パラメータのデフォルト値 | パラメータの値の範囲 |
field | 抽出対象のフィールド名 | string | はい | - | - |
{"common":"common","result":"{\\"target\\":[{\\"a\\":\\"a\\"},{\\"b\\":\\"b\\"}]}"}
log_split_jsonarray_jmes("result",jmes="target")fields_drop("result")
{"common":"common", "a":"a"}{"common":"common", "b":"b"}
{"common":"common","target":"[{\\"a\\":\\"a\\"},{\\"b\\":\\"b\\"}]"}
log_split_jsonarray_jmes("target",prefix="prefix_")fields_drop("target")
{"prefix_a":"a", "common":"common"}{"prefix_b":"b", "common":"common"}
フィードバック