You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
LogCollector 插件
插件执行条件
复制全文
下载 pdf
插件执行条件
LogCollector 插件支持设置执行条件,只有在日志内容满足已设置的执行条件时,日志服务才会执行该插件。本文档介绍插件执行条件的列表及设置方式。​
功能概述​
日志服务默认根据插件顺序,对指定日志字段依次执行对应的处理方式。如果需要根据日志内容判断是否执行某个插件,可以在插件配置中添加插件条件。日志服务在执行插件前会根据插件条件进行对应的字段判断,例如通过 equals 插件条件判断指定字段内容是否为某个固定值,如果字段值符合插件条件,此条件判断为真(true),则执行对应的插件处理,否则跳过此插件。​
每个 LogCollector 插件都可以配置独立的基本执行条件,日志服务也支持为插件添加组合条件。组合条件是基于基本条件的语法,根据指定基本条件的判断结果决定是否执行插件。例如 and 条件表示某一个或多个条件均为 true 时,则执行此插件。​
日志服务提供多种插件执行条件,例如检查字段值是否为某个固定值、检查字段值是否包含某个指定字符串等,支持的执行条件列表请参考执行条件列表。​
说明​
1.0.38 及后续版本的 LogCollector 支持插件执行条件,建议在使用前确认当前使用的 LogCollector 版本号。​
设置插件执行条件​
您可以在插件配置中添加执行条件字段 when,when 字段为可选参数,用于指定判断条件仅在需要添加执行条件时配置。使用插件的操作步骤请参考操作步骤。​
例如,以下示例表示为 add_kvs 插件添加执行条件,如果 data 字段值为 Click Here,且 size 字段值为 36,则在日志内容中插入 name 和 cluster_id 两个常量字段。​
​
{​
"processors": [​
{​
"add_kvs": {​
"when": {​
"equals": {​
"data": "Click Here",​
"size": "36"​
}​
},​
"fields": {​
"name": "Jack",​
"cluster_id": "C02G64T1MD6R"​
}​
}​
}​
]​
}​
​
执行条件列表​
​
条件类型​
条件名称​
说明​
基本条件​
判断指定字段的内容是否等于指定的值。​
​
判断指定字段的内容是否包含指定的字符串。​
​
判断指定字段的内容是否匹配指定的正则表达式。​
​
判断指定字段的内容是否在指定的数值范围中。​
​
判断日志是否包含指定的字段。​
​
判断指定字段的长度是否在指定的数值范围中。​
组合条件​
判断指定的基本条件是否均为 true。​
​
判断指定的基本条件是否至少有一个为 true。​
​
判断指定的基本条件是否为 false。​
​
基本条件​
equals 条件​
equals 条件用于判断指定字段的内容是否等于指定的值。如果当前日志指定字段的内容等于指定的值,那么 equals 条件为 true,否则 equals 条件为 false 当在 equals 中配置多个字段进行条件判断时,这些字段的判断结果之间的条件关系是逻辑与(AND)。​
说明​
浮点数精度受二进制存储方式影响,通过 equals 条件比较两个浮点数是否相等时,如果两个浮点数的差小于 0.000001,日志服务则认为这两个浮点数相等相等。​
参数说明​
​
名称​
类型​
是否必选​
说明​
equals​
Map<String, ?>​
其中,Value 的类型支持:​
  • Integer。​
  • Float。​
  • String。​
  • Boolean。​
是​
Key 为日志字段名称,Value 表示字段值。​
Key 不可重复,不可为空,且不支持英文句号(.)。​
​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "equals": {​
    "data": "Click Here",​
    "size": "36"​
    }​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
contains 条件​
contains 条件用于判断指定字段的内容是否包含指定的字符串。如果当前日志指定字段的内容包含指定的字符串,那么 contains 条件为 true,否则 contains 条件为 false。当在 contains 中配置多个字段进行条件判断时,这些字段的判断结果之间的条件关系是逻辑与(AND)。​
参数说明​
​
名称​
类型​
是否必选​
说明​
contains​
Map<String, String>​
是​
Key 为日志字段名称,Value 表示字段值。​
Key 不可重复,不可为空,且不支持英文句号(.)。​
​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "contains": {​
    "data": "Click",​
    "onMouseUp": "sun1"​
    }​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
regexp 条件​
regexp 条件用于判断指定字段的内容是否匹配指定的正则表达式。如果当前日志指定字段的内容匹配指定的正则表达式,那么 regexp 条件为 true 否则 regexp 条件为 false。当在 regexp 中配置多个字段进行条件判断时,这些字段的判断结果之间的条件关系是逻辑与(AND)。​
参数说明​
​
名称​
类型​
是否必选​
说明​
regexp​
Map<String, String>​
是​
Key 为日志字段名称,Value 表示字段值。​
Key 不可重复,不可为空,且不支持英文句号(.)。​
​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "regexp": {​
    "data": "^Click.*",​
    "onMouseUp": "^sun1.*"​
    }​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
range 条件​
range 条件用于判断指定字段的内容是否在指定的数值范围中。如果当前日志指定字段的内容在指定的数值范围中,那么 range 条件为 true,否则 range 条件为 false。当在 range 中配置多个字段进行条件判断时,这些字段的判断结果之间的条件关系是逻辑与(AND)。​
参数说明​
​
名称​
类型​
是否必选​
说明​
range​
Map<String, Map<String, Number>>​
是​
Key 是字段名称,Values 是运算符和数值构成的数值范围。​
Key 不可重复,不可为空,且不支持英文句号(.)。​
支持的运算符包括:​
  • lt:小于。​
  • lte:小于等于。​
  • gt:大于。​
  • gte:大于等于。​
​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "range": {​
    "hOffset": {​
    "gte": 100,​
    "lte": 1000​
    },​
    "vOffset": {​
    "gte": 50,​
    "lte": 200​
    }​
    }​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
has_fields 条件​
has_fields 条件用于判断是否包含指定的字段。如果当前日志包含指定的全部字段,那么 has_fields 条件为 true。否则 has_fields 条件为 false。当在 has_fields 中配置多个字段进行条件判断时,这些字段的判断结果之间的条件关系是逻辑与(AND)。​
参数说明​
​
名称​
类型​
是否必选​
说明​
has_fields​
List​
是​
字段列表。​
Key 不可重复,不可为空,且不支持英文句号(.)。​
​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "has_fields": [​
    "alignment",​
    "onMouseUp"​
    ]​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
length 条件​
length 条件用于判断指定字段的长度是否在指定的数值范围中。如果当前日志指定字段的长度在指定的数值范围中,那么 length 条件为 true,否则 length 条件为 false。当在 length 中配置多个字段进行条件判断时,这些字段的判断结果之间的条件关系是逻辑与(AND)。​
参数说明​
​
名称​
类型​
是否必选​
说明​
length​
Map<String, Map<String, Number>>​
是​
Key 是字段名称,Values 是运算符和数值构成的数值范围。​
字段名称不可重复,不可为空,且不支持英文句号(.)。​
支持的运算符包括:​
  • lt:小于。​
  • lte:小于等于。​
  • gt:大于。​
  • gte:大于等于。​
  • eq: 等于。​
​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "length": {​
    "hOffset": {​
    "eq": 3​
    },​
    "time": {​
    "gte": 10,​
    "lte": 50​
    }​
    }​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
组合条件​
and 条件​
and 条件支持配置一个或多个基本条件。当这些基本条件全部为 true 时,and 条件为 true;否则,and 条件为 false。​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "and": [​
    {​
    "equals": {​
    "size": 36​
    }​
    },​
    {​
    "has_fields": [​
    "alignment",​
    "onMouseUp"​
    ]​
    }​
    ]​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
or 条件​
or 条件支持配置一个或多个基本条件。当这些基本条件至少一个为 true 时,or 条件为 true;否则,or 条件为 false。​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "or": [​
    {​
    "equals": {​
    "size": 37​
    }​
    },​
    {​
    "has_fields": [​
    "alignment",​
    "onMouseUp"​
    ]​
    }​
    ]​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
not 条件​
not 条件支持配置一个基本条件。当这个基本条件为 true 时,not 条件为 false;否则,not 条件为 true。​
配置示例​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    ​
  • LogCollector 插件处理器配置:​
  • ​
    {​
    "processors": [​
    {​
    "add_kvs": {​
    "when": {​
    "not": {​
    "equals": {​
    "size": 37​
    }​
    }​
    },​
    "fields": {​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    }​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果:​
  • ​
    "data": "Click Here"​
    "size": "36"​
    "style": "bold"​
    "hOffset": "250"​
    "vOffset": "100"​
    "alignment": "center"​
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"​
    "time": "Today is 2023-06-08. Tomorrow is 2023-06-09."​
    "name": "Jack",​
    "cluster_id": "C02G64T1MD6R"​
    ​
​
最近更新时间:2025.11.26 17:23:57
这个页面对您有帮助吗?
有用
有用
无用
无用