Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var JsSwitchReturnFormatErr = errors.New("return the value is not an array")
JsSwitchReturnFormatErr 如果脚本返回不是数组错误
var Registry = &types.SafeComponentSlice{}
Functions ¶
This section is empty.
Types ¶
type ExprFilterNode ¶ added in v0.19.0
type ExprFilterNode struct { //节点配置 Config ExprFilterNodeConfiguration // contains filtered or unexported fields }
ExprFilterNode 使用expr表达式过滤消息 如果返回值`True`发送信息到`True`链, `False`发到`False`链。 如果表达式执行失败则发送到`Failure`链 通过`msg`变量访问消息体,如果消息的dataType是json类型,可以通过 `msg.XX`方式访问msg的字段。例如:`msg.temperature > 50;` 通过`metadata`变量访问消息元数据。例如 `metadata.customerName` 通过`msgType`变量访问消息类型 通过`dataType`变量访问数据类型
func (*ExprFilterNode) Init ¶ added in v0.19.0
func (x *ExprFilterNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*ExprFilterNode) New ¶ added in v0.19.0
func (x *ExprFilterNode) New() types.Node
func (*ExprFilterNode) OnMsg ¶ added in v0.19.0
func (x *ExprFilterNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
type ExprFilterNodeConfiguration ¶ added in v0.19.0
type ExprFilterNodeConfiguration struct { // 表达式 Expr string }
ExprFilterNodeConfiguration 节点配置
type FieldFilterNode ¶ added in v0.13.0
type FieldFilterNode struct { //节点配置 Config FieldFilterNodeConfiguration DataNamesList []string MetadataNamesList []string }
FieldFilterNode 过滤满足是否存在某个msg字段/metadata字段 消息 如果 `True`发送信息到`True`链, `False`发到`False`链。
func (*FieldFilterNode) Init ¶ added in v0.13.0
func (x *FieldFilterNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*FieldFilterNode) New ¶ added in v0.13.0
func (x *FieldFilterNode) New() types.Node
func (*FieldFilterNode) OnMsg ¶ added in v0.13.0
func (x *FieldFilterNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
type FieldFilterNodeConfiguration ¶ added in v0.13.0
type FieldFilterNodeConfiguration struct { //是否是满足所有field key存在 CheckAllKeys bool //msg data字段key多个与逗号隔开 DataNames string //metadata字段key多个与逗号隔开 MetadataNames string }
FieldFilterNodeConfiguration 节点配置
type GroupFilterNode ¶ added in v0.17.0
type GroupFilterNode struct { //节点配置 Config GroupFilterNodeConfiguration NodeIdList []string Length int32 }
GroupFilterNode 把多个filter节点组成一个分组, 如果所有节点都是True,则把数据到`True`链, 否则发到`False`链。 AllMatches=false,则只要有任何一个节点返回是True,则发送到`True`链 nodeIds为空或者执行超时,发送到`Failure`链
func (*GroupFilterNode) Init ¶ added in v0.17.0
func (x *GroupFilterNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*GroupFilterNode) New ¶ added in v0.17.0
func (x *GroupFilterNode) New() types.Node
func (*GroupFilterNode) OnMsg ¶ added in v0.17.0
func (x *GroupFilterNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
type GroupFilterNodeConfiguration ¶ added in v0.17.0
type GroupFilterNodeConfiguration struct { //AllMatches 是否要求所有节点都匹配才发送到True链,如果为false,则只要有任何一个节点匹配就发送到True链 AllMatches bool //NodeIds 组内节点ID列表,多个ID与`,`隔开 NodeIds string //Timeout 执行超时,单位秒,默认0:代表不限制。 Timeout int }
GroupFilterNodeConfiguration 节点配置
type JsFilterNode ¶
type JsFilterNode struct { //节点配置 Config JsFilterNodeConfiguration // contains filtered or unexported fields }
JsFilterNode 使用js脚本过滤传入信息 如果 `True`发送信息到`True`链, `False`发到`False`链。 如果 脚本执行失败则发送到`Failure`链 消息体可以通过`msg`变量访问,如果消息的dataType是json类型,可以通过 `msg.XX`方式访问msg的字段。例如:`return msg.temperature > 50;` 消息元数据可以通过`metadata`变量访问。例如 `metadata.customerName === 'Lala';` 消息类型可以通过`msgType`变量访问.
func (*JsFilterNode) Init ¶
func (x *JsFilterNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*JsFilterNode) New ¶
func (x *JsFilterNode) New() types.Node
func (*JsFilterNode) OnMsg ¶
func (x *JsFilterNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
type JsFilterNodeConfiguration ¶
type JsFilterNodeConfiguration struct { //JsScript 配置函数体脚本内容 // 使用js脚本进行过滤 //完整脚本函数: //function Filter(msg, metadata, msgType) { ${JsScript} } //return bool JsScript string }
JsFilterNodeConfiguration 节点配置
type JsSwitchNode ¶
type JsSwitchNode struct { //节点配置 Config JsSwitchNodeConfiguration // contains filtered or unexported fields }
JsSwitchNode 节点执行已配置的JS脚本。脚本应返回消息应路由到的下一个链名称的数组。 如果数组为空-消息不路由到下一个节点。 消息体可以通过`msg`变量访问,如果消息的dataType是json类型,可以通过 `msg.XX`方式访问msg的字段。例如:`msg.temperature > 50;` 消息元数据可以通过`metadata`变量访问。例如 `metadata.customerName === 'Lala';` 消息类型可以通过`msgType`变量访问.
func (*JsSwitchNode) Init ¶
func (x *JsSwitchNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*JsSwitchNode) New ¶
func (x *JsSwitchNode) New() types.Node
func (*JsSwitchNode) OnMsg ¶
func (x *JsSwitchNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息
type JsSwitchNodeConfiguration ¶
type JsSwitchNodeConfiguration struct {
JsScript string
}
JsSwitchNodeConfiguration 节点配置
type MsgTypeSwitchNode ¶
type MsgTypeSwitchNode struct { }
MsgTypeSwitchNode 根据传入的消息类型路由到一个或多个输出链 把消息通过类型发到正确的链,
func (*MsgTypeSwitchNode) Init ¶
func (x *MsgTypeSwitchNode) Init(ruleConfig types.Config, configuration types.Configuration) error
Init 初始化
func (*MsgTypeSwitchNode) New ¶
func (x *MsgTypeSwitchNode) New() types.Node
func (*MsgTypeSwitchNode) OnMsg ¶
func (x *MsgTypeSwitchNode) OnMsg(ctx types.RuleContext, msg types.RuleMsg)
OnMsg 处理消息