本文整理汇总了Golang中github.com/funkygao/dpipe/engine.PluginHelper.PipelinePack方法的典型用法代码示例。如果您正苦于以下问题:Golang PluginHelper.PipelinePack方法的具体用法?Golang PluginHelper.PipelinePack怎么用?Golang PluginHelper.PipelinePack使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/funkygao/dpipe/engine.PluginHelper
的用法示例。
在下文中一共展示了PluginHelper.PipelinePack方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: flush
func (this *esBufferWorker) flush(r engine.FilterRunner, h engine.PluginHelper) {
if this.summary.N == 0 {
return
}
// generate new pack
pack := h.PipelinePack(0)
switch this.expression {
case "count":
pack.Message.SetField(this.esField, this.summary.N)
case "mean":
pack.Message.SetField(this.esField, this.summary.Mean)
case "max":
pack.Message.SetField(this.esField, this.summary.Max)
case "min":
pack.Message.SetField(this.esField, this.summary.Min)
case "sd":
pack.Message.SetField(this.esField, this.summary.Sd())
case "sum":
pack.Message.SetField(this.esField, this.summary.Sum)
default:
panic("invalid expression: " + this.expression)
}
pack.Message.Timestamp = this.timestamp
pack.Ident = this.ident
pack.EsIndex = indexName(h.Project(this.projectName),
this.indexPattern, time.Unix(int64(this.timestamp), 0))
pack.EsType = this.esType
pack.Project = this.projectName
globals := engine.Globals()
if globals.Debug {
globals.Println(*pack)
}
r.Inject(pack)
this.summary.Reset()
}
示例2: handlePack
// for each inbound pack, this filter will generate several new pack
// the original pack will be recycled immediately
func (this *CardinalityFilter) handlePack(r engine.FilterRunner,
h engine.PluginHelper, pack *engine.PipelinePack) {
globals := engine.Globals()
for _, c := range this.converters {
if !pack.Logfile.MatchPrefix(c.logPrefix) || pack.Project != c.project {
continue
}
for _, f := range c.fields {
val, err := pack.Message.FieldValue(f.key, f.typ)
if err != nil {
if globals.Verbose {
h.Project(c.project).Println(err)
}
return
}
for _, interval := range f.intervals {
// generate new pack
p := h.PipelinePack(pack.MsgLoopCount)
if p == nil {
globals.Println("can't get pack in filter")
continue
}
p.Ident = this.ident
p.Project = c.project
p.CardinalityKey = fmt.Sprintf("%s.%s.%s", pack.Project, f.key, interval)
p.CardinalityData = val
p.CardinalityInterval = interval
r.Inject(p)
}
}
}
}