in lambda/rapi/handler/runtimelogs.go [27:79]
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 %s", err.agentID.String())
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeClientErr, 1)
default:
rendering.RenderInternalServerError(writer, request)
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeServerErr, 1)
}
return
}
delete(request.Header, LambdaAgentIdentifier)
body, err := h.getBody(writer, request)
if err != nil {
log.Error(err)
rendering.RenderInternalServerError(writer, request)
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeServerErr, 1)
return
}
respBody, status, headers, err := h.telemetrySubscription.Subscribe(agentName, bytes.NewReader(body), request.Header, request.RemoteAddr)
if err != nil {
log.Errorf("Telemetry API error: %s", err)
switch err {
case telemetry.ErrTelemetryServiceOff:
rendering.RenderForbiddenWithTypeMsg(writer, request,
h.telemetrySubscription.GetServiceClosedErrorType(), "%s", h.telemetrySubscription.GetServiceClosedErrorMessage())
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeClientErr, 1)
default:
rendering.RenderInternalServerError(writer, request)
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeServerErr, 1)
}
return
}
rendering.RenderRuntimeLogsResponse(writer, respBody, status, headers)
switch status / 100 {
case 2: // 2xx
if strings.Contains(string(respBody), "OK") {
h.telemetrySubscription.RecordCounterMetric(telemetry.NumSubscribers, 1)
}
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeSuccess, 1)
case 4: // 4xx
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeClientErr, 1)
case 5: // 5xx
h.telemetrySubscription.RecordCounterMetric(telemetry.SubscribeServerErr, 1)
}
}