本文整理汇总了Golang中github.com/funkygao/dpipe/engine.PipelinePack.EsType方法的典型用法代码示例。如果您正苦于以下问题:Golang PipelinePack.EsType方法的具体用法?Golang PipelinePack.EsType怎么用?Golang PipelinePack.EsType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/funkygao/dpipe/engine.PipelinePack
的用法示例。
在下文中一共展示了PipelinePack.EsType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Run
func (this *SelfSysInput) Run(r engine.InputRunner, h engine.PluginHelper) error {
var (
globals = engine.Globals()
stats = newSysStat()
inChan = r.InChan()
pack *engine.PipelinePack
jsonString string
err error
stopped = false
)
for !stopped {
select {
case <-this.stopChan:
stopped = true
case <-r.Ticker():
// same effect as sleep
}
if stopped {
break
}
stats.gatherStats()
jsonString, err = stats.jsonString()
if err != nil {
globals.Println(err)
continue
}
pack = <-inChan
if err = pack.Message.FromLine(fmt.Sprintf("als,%d,%s",
time.Now().Unix(), jsonString)); err != nil {
globals.Printf("invalid sys stat: %s\n", jsonString)
pack.Recycle()
continue
}
pack.Project = "als"
pack.Ident = this.ident
pack.EsIndex = "fun_als"
pack.EsType = "sys"
r.Inject(pack)
}
return nil
}
示例2: handlePack
func (this *EsFilter) handlePack(pack *engine.PipelinePack, project *engine.ConfProject) bool {
if pack.EsType == "" {
pack.EsType = pack.Logfile.CamelCaseName()
}
if pack.EsIndex == "" {
pack.EsIndex = indexName(project, this.indexPattern,
time.Unix(int64(pack.Message.Timestamp), 0))
}
// each ES item has area and ts fields
pack.Ident = this.ident
pack.Message.SetField("_area", pack.Message.Area)
pack.Message.SetField("_t", pack.Message.Timestamp)
for _, conv := range this.converters {
for _, key := range conv.keys {
if conv.normalizers != nil {
for _, norm := range conv.normalizers {
val, err := pack.Message.FieldValue(key, als.KEY_TYPE_STRING)
if err != nil {
// no such field
break
}
normed := normalizers[norm].ReplaceAll([]byte(val.(string)),
[]byte("?"))
val = string(normed)
pack.Message.SetField(key+"_norm", val)
}
continue
}
switch conv.typ {
case "money":
amount, err := pack.Message.FieldValue(key, als.KEY_TYPE_MONEY)
if err != nil {
// has no such field
continue
}
currency, err := pack.Message.FieldValue(conv.currency, als.KEY_TYPE_STRING)
if err != nil {
// has money field, but no currency field?
return false
}
pack.Message.SetField("_usd",
als.MoneyInUsdCents(currency.(string), amount.(int)))
case "ip":
ip, err := pack.Message.FieldValue(key, als.KEY_TYPE_IP)
if err != nil {
continue
}
pack.Message.SetField("_cntry", als.IpToCountry(ip.(string)))
case "range":
if len(conv.rang) < 2 {
continue
}
val, err := pack.Message.FieldValue(key, als.KEY_TYPE_INT)
if err != nil {
continue
}
pack.Message.SetField(key+"_rg", als.GroupInt(val.(int), conv.rang))
case "del":
pack.Message.DelField(key)
}
}
}
return true
}