in logsapi/route_handlers.go [28:52]
func handleLogEventsRequest(logger *zap.SugaredLogger, logsChannel chan LogEvent) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
var logEvents []LogEvent
if err := json.NewDecoder(r.Body).Decode(&logEvents); err != nil {
logger.Errorf("Error unmarshalling log events: %+v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
for idx := range logEvents {
if logEvents[idx].Type == "" {
logger.Errorf("Error reading log event: %+v", logEvents[idx])
w.WriteHeader(http.StatusInternalServerError)
continue
}
select {
case logsChannel <- logEvents[idx]:
case <-r.Context().Done():
logger.Warnf("Failed to enqueue event, signaling lambda to retry")
w.WriteHeader(http.StatusInternalServerError)
return
}
}
}
}