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 }
func (m *MessageAggregator) handleHTTPStart(envelope *events.Envelope) { metrics.BatchIncrementCounter("MessageAggregator.httpStartReceived") logging.Debugf(m.logger, "handling HTTP start message for appID: %v", envelope.GetHttpStart().GetApplicationId()) startEvent := envelope.GetHttpStart() requestID := startEvent.RequestId.String() event := eventID{requestID: requestID, peerType: startEvent.GetPeerType()} m.startEventsByEventID[event] = startEventEntry{startEvent: startEvent, entryTime: time.Now()} }
func (m *MessageAggregator) handleHTTPStart(envelope *events.Envelope) { m.incrementCounter(&m.httpStartReceivedCount) m.logger.Debugf("handling HTTP start message %v", spew.Sprintf("%v", envelope)) startEvent := envelope.GetHttpStart() requestID := startEvent.RequestId.String() event := eventID{requestID: requestID, peerType: startEvent.GetPeerType()} m.startEventsByEventID[event] = startEventEntry{startEvent: startEvent, entryTime: time.Now()} }
func listenForEvents(origin []string) { for { 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() tracker := eventTracker{eventType: eventId} switch envelope.GetEventType() { case events.Envelope_HttpStart: tracker.name = envelope.GetHttpStart().GetPeerType().String() case events.Envelope_HttpStop: tracker.name = envelope.GetHttpStop().GetPeerType().String() case events.Envelope_ValueMetric: tracker.name = envelope.GetValueMetric().GetName() case events.Envelope_CounterEvent: tracker.name = envelope.GetCounterEvent().GetName() default: panic("Unexpected message type") } if envelope.GetOrigin() != strings.Join(origin, "/") { panic("origin not as expected") } func() { lock.Lock() defer lock.Unlock() receivedEvents = append(receivedEvents, tracker) }() } }
func valid(env *events.Envelope) bool { switch env.GetEventType() { case events.Envelope_HttpStart: return env.GetHttpStart() != nil case events.Envelope_HttpStop: return env.GetHttpStop() != nil case events.Envelope_HttpStartStop: return env.GetHttpStartStop() != nil case events.Envelope_LogMessage: return env.GetLogMessage() != nil case events.Envelope_ValueMetric: return env.GetValueMetric() != nil case events.Envelope_CounterEvent: return env.GetCounterEvent() != nil case events.Envelope_Error: return env.GetError() != nil case events.Envelope_ContainerMetric: return env.GetContainerMetric() != nil } return true }
func HttpStart(msg *events.Envelope) Event { httpStart := msg.GetHttpStart() fields := logrus.Fields{ "cf_app_id": utils.FormatUUID(httpStart.GetApplicationId()), "instance_id": httpStart.GetInstanceId(), "instance_index": httpStart.GetInstanceIndex(), "method": httpStart.GetMethod(), "parent_request_id": utils.FormatUUID(httpStart.GetParentRequestId()), "peer_type": httpStart.GetPeerType(), "request_id": utils.FormatUUID(httpStart.GetRequestId()), "remote_addr": httpStart.GetRemoteAddress(), "timestamp": httpStart.GetTimestamp(), "uri": httpStart.GetUri(), "user_agent": httpStart.GetUserAgent(), } return Event{ Fields: fields, Msg: "", } }
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() tracker := eventTracker{eventType: eventId} switch envelope.GetEventType() { case events.Envelope_HttpStart: tracker.name = envelope.GetHttpStart().GetPeerType().String() case events.Envelope_HttpStop: tracker.name = envelope.GetHttpStop().GetPeerType().String() case events.Envelope_Heartbeat: tracker.name = envelope.GetHeartbeat().GetControlMessageIdentifier().String() case events.Envelope_ValueMetric: tracker.name = envelope.GetValueMetric().GetName() case events.Envelope_CounterEvent: tracker.name = envelope.GetCounterEvent().GetName() default: panic("Unexpected message type") } if envelope.GetOrigin() != strings.Join(origin, "/") { panic("origin not as expected")