func (instance *Instance) publishLineAs(pub *zmqpubsub.Publisher, source string, logname string, line *tail.Line) { if line == nil { panic("line is nil") } msg := &message.Message{ LogFilename: logname, Source: source, InstanceIndex: instance.Index, AppGUID: instance.AppGUID, AppName: instance.AppName, AppSpace: instance.AppSpace, MessageCommon: common.NewMessageCommon(line.Text, line.Time, util.LocalNodeId()), } if line.Err != nil { // Mark this as a special error record, as it is // coming from tail, not the app. msg.Source = fmt.Sprintf("%v[apptail]", util.GetBrandName()) msg.LogFilename = "" log.Warnf("[%s] %s", instance.AppName, line.Text) } err := msg.Publish(pub, false) if err != nil { common.Fatal("Unable to publish: %v", err) } }
func (instance *Instance) SendTimelineEvent(format string, v ...interface{}) { line := fmt.Sprintf(format, v...) tEvent := event.TimelineEvent{event.App{instance.AppGUID, instance.AppSpace, instance.AppName}, instance.Index} evt := sieve.Event{ Type: "timeline", Desc: line, Severity: "INFO", Info: map[string]interface{}{ "app": tEvent.App, "instance_index": tEvent.InstanceIndex, }, Process: "apptail", MessageCommon: common.NewMessageCommon(line, time.Now(), util.LocalNodeId()), } instance.pubch.Ch <- evt }
func PublishAppLog( pub *zmqpubsub.Publisher, t TimelineEvent, source string, event *sieve.Event) { err := (&message.Message{ LogFilename: "", Source: source, InstanceIndex: t.InstanceIndex, AppGUID: t.App.GUID, AppName: t.App.Name, AppSpace: t.App.Space, MessageCommon: common.NewMessageCommon(event.Desc, time.Unix(event.UnixTime, 0), util.LocalNodeId()), }).Publish(pub, true) if err != nil { common.Fatal("%v", err) } }