本文整理汇总了Golang中github.com/cloudfoundry/dropsonde/emitter.Wrap函数的典型用法代码示例。如果您正苦于以下问题:Golang Wrap函数的具体用法?Golang Wrap怎么用?Golang Wrap使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Wrap函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Run
func (r *TruncatingBuffer) Run() {
for msg := range r.inputChannel {
r.lock.Lock()
select {
case r.outputChannel <- msg:
default:
messageCount := len(r.outputChannel)
r.droppedMessageCount += int64(messageCount)
r.outputChannel = make(chan *events.Envelope, cap(r.outputChannel))
appId := envelope_extensions.GetAppId(msg)
lm := generateLogMessage(fmt.Sprintf("Log message output too high. We've dropped %d messages", messageCount), appId)
env, err := emitter.Wrap(lm, r.dropsondeOrigin)
if err == nil {
r.outputChannel <- env
} else {
r.logger.Warnf("Error marshalling message: %v", err)
}
r.outputChannel <- msg
if r.logger != nil {
r.logger.Warn(fmt.Sprintf("TB: Output channel too full. Dropped %d messages for app %s.", messageCount, appId))
}
}
r.lock.Unlock()
}
close(r.outputChannel)
}
开发者ID:khj0651,项目名称:loggregator,代码行数:29,代码来源:truncating_buffer.go
示例2: Emit
func (e *EventWriter) Emit(event events.Event) error {
envelope, err := emitter.Wrap(event, e.origin)
if err != nil {
return err
}
return e.EmitEnvelope(envelope)
}
开发者ID:kei-yamazaki,项目名称:loggregator,代码行数:8,代码来源:eventwriter.go
示例3: emitMessage
func (r *TruncatingBuffer) emitMessage(outputChannel chan *events.Envelope, event events.Event) {
env, err := emitter.Wrap(event, r.context.DropsondeOrigin())
if err == nil {
outputChannel <- env
} else {
r.logger.Warnf("Error marshalling message: %v", err)
}
}
开发者ID:hpcloud,项目名称:loggregator-1,代码行数:8,代码来源:truncating_buffer.go
示例4: SendSyslogErrorToLoggregator
func (sinkManager *SinkManager) SendSyslogErrorToLoggregator(errorMsg string, appId string) {
sinkManager.logger.Warn(errorMsg)
logMessage := factories.NewLogMessage(events.LogMessage_ERR, errorMsg, appId, "LGR")
envelope, err := emitter.Wrap(logMessage, sinkManager.dropsondeOrigin)
if err != nil {
sinkManager.logger.Warnf("Error marshalling message: %v", err)
return
}
sinkManager.errorChannel <- envelope
}
开发者ID:yingkitw,项目名称:loggregator,代码行数:12,代码来源:sink_manager.go
示例5: DropsondeLogMessage
func DropsondeLogMessage(messageString string, appId string) []byte {
currentTime := time.Now()
logMessage := &events.LogMessage{
Message: []byte(messageString),
MessageType: events.LogMessage_ERR.Enum(),
Timestamp: proto.Int64(currentTime.UnixNano()),
SourceType: proto.String("DOP"),
AppId: &appId,
}
envelope, _ := emitter.Wrap(logMessage, "doppler")
msg, _ := proto.Marshal(envelope)
return msg
}
开发者ID:lyuyun,项目名称:loggregator,代码行数:15,代码来源:marshaller.go
示例6: main
func main() {
flag.Parse()
la, err := net.ResolveUDPAddr("udp", *destination)
if err != nil {
log.Fatalf("Error resolving loggregator address %s, %s", *destination, err)
}
// connection, err := net.DialUDP("udp", nil, la)
connection, err := net.ListenPacket("udp4", "")
if err != nil {
log.Fatalf("Error opening udp stuff")
}
msg := make([]byte, *size, *size)
envelope, err := emitter.Wrap(&events.LogMessage{
Message: msg,
MessageType: events.LogMessage_OUT.Enum(),
Timestamp: proto.Int64(time.Now().UnixNano()),
}, "origin")
if err != nil {
log.Fatal(err.Error())
}
buf, err := proto.Marshal(envelope)
if err != nil {
log.Fatal(err.Error())
}
finalBytes := signature.SignMessage(buf, []byte(*secret))
// println("marshal time", t2.Sub(t1).String())
var i int
d := time.Duration(*duration)
time.AfterFunc(d*time.Second, func() {
fmt.Printf("%d, %d, %d, ", *duration, len(finalBytes), i)
connection.Close()
os.Exit(0)
})
t := time.NewTicker(time.Second / time.Duration(*rate))
for {
<-t.C
connection.WriteTo(finalBytes, la)
i++
}
}
开发者ID:lyuyun,项目名称:loggregator,代码行数:48,代码来源:main.go
示例7: SendEventTCP
func SendEventTCP(event events.Event, conn net.Conn) error {
envelope, err := emitter.Wrap(event, "origin")
Expect(err).NotTo(HaveOccurred())
bytes, err := proto.Marshal(envelope)
if err != nil {
return err
}
err = binary.Write(conn, binary.LittleEndian, uint32(len(bytes)))
if err != nil {
return err
}
_, err = conn.Write(bytes)
return err
}
开发者ID:kei-yamazaki,项目名称:loggregator,代码行数:17,代码来源:tls.go
示例8: droppedLogMessage
func (w *Writer) droppedLogMessage() []byte {
droppedMessages := atomic.LoadUint64(&w.droppedMessages)
logMessage := &events.LogMessage{
Message: []byte(fmt.Sprintf("Dropped %d message(s) from MetronAgent to Doppler", droppedMessages)),
MessageType: events.LogMessage_ERR.Enum(),
AppId: proto.String(envelope_extensions.SystemAppId),
Timestamp: proto.Int64(time.Now().UnixNano()),
}
env, err := emitter.Wrap(logMessage, "MetronAgent")
if err != nil {
w.logger.Fatalf("Failed to emitter.Wrap a log message: %s", err)
}
marshaled, err := proto.Marshal(env)
if err != nil {
w.logger.Fatalf("Failed to marshal generated dropped log message: %s", err)
}
prefixedBytes, err := w.prefixMessage(marshaled)
if err != nil {
w.logger.Fatalf("Failed to prefix dropped log message: %s", err)
}
return prefixedBytes
}
开发者ID:yingkitw,项目名称:loggregator,代码行数:23,代码来源:writer.go
示例9: MarshalEvent
func MarshalEvent(event events.Event, secret string) []byte {
envelope, _ := emitter.Wrap(event, "origin")
envelopeBytes := MarshalProtoBuf(envelope)
return signature.SignMessage(envelopeBytes, []byte(secret))
}
开发者ID:rakutentech,项目名称:loggregator,代码行数:6,代码来源:helpers.go
示例10:
Describe("SendTo", func() {
It("sends to all known sinks", func() {
sink1 := &channelSink{appId: "myApp",
identifier: "myAppChan1",
done: make(chan struct{}),
}
sink2 := &channelSink{appId: "myApp",
identifier: "myAppChan2",
done: make(chan struct{}),
}
sinkManager.RegisterSink(sink1)
sinkManager.RegisterSink(sink2)
expectedMessageString := "Some Data"
expectedMessage, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, expectedMessageString, "myApp", "App"), "origin")
go sinkManager.SendTo("myApp", expectedMessage)
Eventually(sink1.Received).Should(HaveLen(1))
Eventually(sink2.Received).Should(HaveLen(1))
Expect(sink1.Received()[0]).To(Equal(expectedMessage))
Expect(sink2.Received()[0]).To(Equal(expectedMessage))
})
It("only sends to sinks that match the appID", func(done Done) {
sink1 := &channelSink{appId: "myApp1",
identifier: "myAppChan1",
done: make(chan struct{}),
}
sink2 := &channelSink{appId: "myApp2",
identifier: "myAppChan2",
开发者ID:kei-yamazaki,项目名称:loggregator,代码行数:31,代码来源:sink_manager_test.go
示例11:
Expect(websocketSink.ShouldReceiveErrors()).To(BeTrue())
})
})
Describe("Run", func() {
var inputChan chan *events.Envelope
BeforeEach(func() {
inputChan = make(chan *events.Envelope, 10)
})
It("forwards messages", func(done Done) {
defer close(done)
go websocketSink.Run(inputChan)
message, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "hello world", "appId", "App"), "origin")
messageBytes, _ := proto.Marshal(message)
inputChan <- message
Eventually(fakeWebsocket.ReadMessages).Should(HaveLen(1))
Expect(fakeWebsocket.ReadMessages()[0]).To(Equal(messageBytes))
messageTwo, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "goodbye world", "appId", "App"), "origin")
messageTwoBytes, _ := proto.Marshal(messageTwo)
inputChan <- messageTwo
Eventually(fakeWebsocket.ReadMessages).Should(HaveLen(2))
Expect(fakeWebsocket.ReadMessages()[1]).To(Equal(messageTwoBytes))
})
It("sets write deadline", func() {
go websocketSink.Run(inputChan)
开发者ID:sunatthegilddotcom,项目名称:loggregator,代码行数:31,代码来源:websocket_sink_test.go
示例12:
goRoutineSpawned.Wait()
})
AfterEach(func() {
sinkManager.Stop()
TestMessageRouter.Stop()
TestWebsocketServer.Stop()
services.Wait()
})
It("dumps all messages for an app user", func() {
expectedFirstMessageString := "Some data 1"
lm := factories.NewLogMessage(events.LogMessage_OUT, expectedFirstMessageString, "myOtherApp", "APP")
env1, _ := emitter.Wrap(lm, "ORIGIN")
expectedSecondMessageString := "Some data 2"
lm = factories.NewLogMessage(events.LogMessage_OUT, expectedSecondMessageString, "myOtherApp", "APP")
env2, _ := emitter.Wrap(lm, "ORIGIN")
dataReadChannel <- env1
dataReadChannel <- env2
receivedChan := make(chan []byte, 2)
_, stopKeepAlive, droppedChannel := AddWSSink(receivedChan, serverPort, "/apps/myOtherApp/recentlogs")
Eventually(droppedChannel).Should(Receive())
var firstMarshalledEnvelope, secondMarshalledEnvelope []byte
Eventually(receivedChan).Should(Receive(&firstMarshalledEnvelope))
开发者ID:Jonty,项目名称:loggregator,代码行数:30,代码来源:sinkserver_dump_test.go
示例13:
})
Describe("failed connections", func() {
It("fails without an appId", func() {
_, connectionDropped = AddWSSink(wsReceivedChan, fmt.Sprintf("ws://%s/apps//stream", apiEndpoint))
Expect(connectionDropped).To(BeClosed())
})
It("fails with bad path", func() {
_, connectionDropped = AddWSSink(wsReceivedChan, fmt.Sprintf("ws://%s/apps/my-app/junk", apiEndpoint))
Expect(connectionDropped).To(BeClosed())
})
})
It("dumps buffer data to the websocket client with /recentlogs", func(done Done) {
lm, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "my message", appId, "App"), "origin")
sinkManager.SendTo(appId, lm)
AddWSSink(wsReceivedChan, fmt.Sprintf("ws://%s/apps/%s/recentlogs", apiEndpoint, appId))
rlm, err := receiveEnvelope(wsReceivedChan)
Expect(err).NotTo(HaveOccurred())
Expect(rlm.GetLogMessage().GetMessage()).To(Equal(lm.GetLogMessage().GetMessage()))
close(done)
})
It("dumps container metric data to the websocket client with /containermetrics", func(done Done) {
cm := factories.NewContainerMetric(appId, 0, 42.42, 1234, 123412341234)
envelope, _ := emitter.Wrap(cm, "origin")
sinkManager.SendTo(appId, envelope)
开发者ID:JimmyMa,项目名称:loggregator,代码行数:30,代码来源:websocket_server_test.go
示例14:
"github.com/cloudfoundry/dropsonde/factories"
"github.com/cloudfoundry/sonde-go/events"
"github.com/cloudfoundry/dropsonde/emitter"
"github.com/cloudfoundry/loggregatorlib/loggertesthelper"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("Truncating Buffer", func() {
It("works like a channel", func() {
inMessageChan := make(chan *events.Envelope)
buffer := truncatingbuffer.NewTruncatingBuffer(inMessageChan, 2, loggertesthelper.Logger(), "dropsonde-origin")
go buffer.Run()
logMessage1, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "message 1", "appId", "App"), "origin")
inMessageChan <- logMessage1
readMessage := <-buffer.GetOutputChannel()
Expect(readMessage.GetLogMessage().GetMessage()).To(ContainSubstring("message 1"))
logMessage2, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "message 2", "appId", "App"), "origin")
inMessageChan <- logMessage2
readMessage2 := <-buffer.GetOutputChannel()
Expect(readMessage2.GetLogMessage().GetMessage()).To(ContainSubstring("message 2"))
})
It("works like a truncating channel", func() {
inMessageChan := make(chan *events.Envelope)
buffer := truncatingbuffer.NewTruncatingBuffer(inMessageChan, 2, loggertesthelper.Logger(), "dropsonde-origin")
开发者ID:khj0651,项目名称:loggregator,代码行数:31,代码来源:truncating_buffer_test.go
示例15:
defer conn.Close()
Expect(tlsListener.Start).Should(Panic())
})
It("panics if you start after a stop", func() {
conn := openTLSConnection(tlsListener.Address())
defer conn.Close()
tlsListener.Stop()
Expect(tlsListener.Start).Should(Panic())
})
It("fails to send message after listener has been stopped", func() {
logMessage := factories.NewLogMessage(events.LogMessage_OUT, "some message", "appId", "source")
envelope, _ := emitter.Wrap(logMessage, "origin")
conn := openTLSConnection(tlsListener.Address())
err := send(conn, envelope)
Expect(err).ToNot(HaveOccurred())
tlsListener.Stop()
Eventually(func() error {
return send(conn, envelope)
}).Should(HaveOccurred())
conn.Close()
})
})
})
开发者ID:nagyistoce,项目名称:cloudfoundry-loggregator,代码行数:31,代码来源:tls_listener_test.go
示例16:
errorHandler func(string, string, string)
inputChan chan *events.Envelope
bufferSize uint
dialer *net.Dialer
)
BeforeEach(func() {
syslogSinkRunFinished = make(chan bool)
sysLogger = NewSyslogWriterRecorder()
errorChannel = make(chan *events.Envelope, 10)
inputChan = make(chan *events.Envelope)
dialer = &net.Dialer{}
errorHandler = func(errorMsg string, appId string, drainUrl string) {
logMessage := factories.NewLogMessage(events.LogMessage_ERR, errorMsg, appId, "LGR")
envelope, _ := emitter.Wrap(logMessage, "dropsonde-origin")
select {
case errorChannel <- envelope:
default:
}
}
bufferSize = 100
})
JustBeforeEach(func() {
syslogSink = syslog.NewSyslogSink("appId", "syslog://using-fake", loggertesthelper.Logger(), bufferSize, sysLogger, errorHandler, "dropsonde-origin")
})
Context("when remote syslog server is down", func() {
开发者ID:leochencipher,项目名称:loggregator,代码行数:31,代码来源:syslog_sink_test.go
示例17: sendLogMessages
func sendLogMessages(message string, inMessageChan chan<- *events.Envelope) {
logMessage1, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, message, "appId", "App"), "origin")
inMessageChan <- logMessage1
}
开发者ID:Amit-PivotalLabs,项目名称:loggregator,代码行数:4,代码来源:truncating_buffer_test.go
示例18: ProtoMessage
type unknownEvent struct{}
func (*unknownEvent) ProtoMessage() {}
var _ = Describe("EventFormatter", func() {
Describe("wrap", func() {
var origin string
BeforeEach(func() {
origin = "testEventFormatter/42"
})
It("works with dropsonde status (Heartbeat) events", func() {
statusEvent := &events.Heartbeat{SentCount: proto.Uint64(1), ErrorCount: proto.Uint64(0)}
envelope, _ := emitter.Wrap(statusEvent, origin)
Expect(envelope.GetEventType()).To(Equal(events.Envelope_Heartbeat))
Expect(envelope.GetHeartbeat()).To(Equal(statusEvent))
})
It("works with HttpStart events", func() {
id, _ := uuid.NewV4()
testEvent := &events.HttpStart{RequestId: factories.NewUUID(id)}
envelope, _ := emitter.Wrap(testEvent, origin)
Expect(envelope.GetEventType()).To(Equal(events.Envelope_HttpStart))
Expect(envelope.GetHttpStart()).To(Equal(testEvent))
})
It("works with HttpStop events", func() {
id, _ := uuid.NewV4()
开发者ID:johannespetzold,项目名称:gorouter,代码行数:30,代码来源:event_formatter_test.go
示例19:
for i := 0; i < runCount; i++ {
sendLogMessages(fmt.Sprintf("message %d", i), inMessageChan)
}
<-readDone
})
}, 100)
})
Context("lossy", func() {
BeforeEach(func() {
bufferSize = 100
})
var send = func(count int, delay time.Duration) {
msg, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "message", "appId", "App"), "origin")
for i := 0; i < count; i++ {
inMessageChan <- msg
time.Sleep(delay)
}
}
var receive = func(count int, delay time.Duration) (totalLost uint64) {
timeout := time.NewTimer(time.Millisecond)
for i := 0; i < count; i++ {
msgs := buffer.GetOutputChannel()
var msg *events.Envelope
timeout.Reset(time.Millisecond)
select {
case msg = <-msgs:
case <-timeout.C:
开发者ID:yingkitw,项目名称:loggregator,代码行数:31,代码来源:truncating_buffer_test.go
示例20:
ws, _ = AddWSSink(receiveChan, "4567", "/firehose/hose-subcription-a")
})
AfterEach(func() {
receiveChan = nil
ws.Close()
})
It("listens for dropsonde log message on TLS port", func() {
message := "my-random-tls-message"
guid, _ := uuid.NewV4()
appID := guid.String()
logMessage := factories.NewLogMessage(events.LogMessage_OUT, message, appID, "APP")
envelope, _ := emitter.Wrap(logMessage, "origin")
encoder.Encode(envelope)
receivedMessageBytes := []byte{}
Eventually(receiveChan).Should(Receive(&receivedMessageBytes))
receivedMessage := DecodeProtoBufLogMessage(receivedMessageBytes)
Expect(receivedMessage.GetAppId()).To(Equal(appID))
Expect(string(receivedMessage.GetMessage())).To(Equal(message))
})
It("listens for dropsonde counter event on TLS port", func() {
counterEvent := factories.NewCounterEvent("my-counter", 1)
开发者ID:Jonty,项目名称:loggregator,代码行数:31,代码来源:listener_test.go
注:本文中的github.com/cloudfoundry/dropsonde/emitter.Wrap函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论