in lambda/rapi/handler/runtimelogs.go [27:76]
func (h *runtimeLogsHandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
agentName, err := h.verifyAgentID(writer, request)
if err != nil {
log.Errorf("Agent Verification Error: %s", err)
switch err := err.(type) {
case *ErrAgentIdentifierUnknown:
rendering.RenderForbiddenWithTypeMsg(writer, request, errAgentIdentifierUnknown, "Unknown extension "+err.agentID.String())
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeClientErr, 1)
default:
rendering.RenderInternalServerError(writer, request)
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeServerErr, 1)
}
return
}
delete(request.Header, LambdaAgentIdentifier)
body, err := h.getBody(writer, request)
if err != nil {
log.Error(err)
rendering.RenderInternalServerError(writer, request)
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeServerErr, 1)
return
}
respBody, status, headers, err := h.logsSubscriptionAPI.Subscribe(agentName, bytes.NewReader(body), request.Header)
if err != nil {
log.Errorf("Telemetry API error: %s", err)
switch err {
case logsapi.ErrTelemetryServiceOff:
rendering.RenderForbiddenWithTypeMsg(writer, request,
errLogsSubscriptionClosed, "Logs API subscription is closed already")
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeClientErr, 1)
default:
rendering.RenderInternalServerError(writer, request)
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeServerErr, 1)
}
return
}
rendering.RenderRuntimeLogsResponse(writer, respBody, status, headers)
switch status / 100 {
case 2: // 2xx
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeSuccess, 1)
case 4: // 4xx
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeClientErr, 1)
case 5: // 5xx
h.logsSubscriptionAPI.RecordCounterMetric(logsapi.SubscribeServerErr, 1)
}
}