func GetAppId(envelope *events.Envelope) string { if envelope.GetEventType() == events.Envelope_LogMessage { return envelope.GetLogMessage().GetAppId() } if envelope.GetEventType() == events.Envelope_ContainerMetric { return envelope.GetContainerMetric().GetApplicationId() } var event hasAppId switch envelope.GetEventType() { case events.Envelope_HttpStart: event = envelope.GetHttpStart() case events.Envelope_HttpStop: event = envelope.GetHttpStop() case events.Envelope_HttpStartStop: event = envelope.GetHttpStartStop() default: return SystemAppId } uuid := event.GetApplicationId() if uuid != nil { return formatUUID(uuid) } return SystemAppId }
It("marshals events and delegates to the inner emitter", func() { innerEmitter := fake.NewFakeByteEmitter() origin := "fake-origin" eventEmitter := emitter.NewEventEmitter(innerEmitter, origin) testEvent := factories.NewHeartbeat(1, 2, 3) err := eventEmitter.Emit(testEvent) Expect(err).ToNot(HaveOccurred()) Expect(innerEmitter.GetMessages()).To(HaveLen(1)) msg := innerEmitter.GetMessages()[0] var envelope events.Envelope err = proto.Unmarshal(msg, &envelope) Expect(err).ToNot(HaveOccurred()) Expect(envelope.GetEventType()).To(Equal(events.Envelope_Heartbeat)) }) }) Describe("Close", func() { It("closes the inner emitter", func() { innerEmitter := fake.NewFakeByteEmitter() eventEmitter := emitter.NewEventEmitter(innerEmitter, "") eventEmitter.Close() Expect(innerEmitter.IsClosed()).To(BeTrue()) }) }) })
buffer := make([]byte, 1024) n, _, err := udpListener.ReadFrom(buffer) if err != nil { return } if n == 0 { panic("Received empty packet") } envelope := new(events.Envelope) err = proto.Unmarshal(buffer[0:n], envelope) if err != nil { panic(err) } var eventId = envelope.GetEventType().String() switch envelope.GetEventType() { case events.Envelope_HttpStart: eventId += envelope.GetHttpStart().GetPeerType().String() case events.Envelope_HttpStop: eventId += envelope.GetHttpStop().GetPeerType().String() case events.Envelope_Heartbeat: case events.Envelope_ValueMetric: eventId += envelope.GetValueMetric().GetName() case events.Envelope_CounterEvent: eventId += envelope.GetCounterEvent().GetName() default: panic("Unexpected message type") }