feat: filter candidates by request resolution
This commit is contained in:
@@ -214,6 +214,9 @@ func failureMetrics(err error, simulated bool) (string, map[string]any, time.Tim
|
||||
if detail := rateLimitFailureDetail(err); len(detail) > 0 {
|
||||
metrics["rateLimit"] = detail
|
||||
}
|
||||
if detail := store.ModelCandidateErrorDetails(err); len(detail) > 0 {
|
||||
metrics["modelCandidate"] = detail
|
||||
}
|
||||
}
|
||||
if meta.StatusCode > 0 {
|
||||
metrics["statusCode"] = meta.StatusCode
|
||||
@@ -230,6 +233,23 @@ func failureMetrics(err error, simulated bool) (string, map[string]any, time.Tim
|
||||
return meta.RequestID, metrics, meta.ResponseStartedAt, meta.ResponseFinishedAt, meta.ResponseDurationMS
|
||||
}
|
||||
|
||||
func buildFailureResult(code string, message string, requestID string, err error) map[string]any {
|
||||
errorPayload := map[string]any{
|
||||
"code": code,
|
||||
"message": message,
|
||||
}
|
||||
if requestID != "" {
|
||||
errorPayload["requestId"] = requestID
|
||||
}
|
||||
if detail := rateLimitFailureDetail(err); len(detail) > 0 {
|
||||
errorPayload["rateLimit"] = detail
|
||||
}
|
||||
if detail := store.ModelCandidateErrorDetails(err); len(detail) > 0 {
|
||||
errorPayload["modelCandidate"] = detail
|
||||
}
|
||||
return map[string]any{"error": errorPayload}
|
||||
}
|
||||
|
||||
func rateLimitFailureDetail(err error) map[string]any {
|
||||
var limitErr *store.RateLimitExceededError
|
||||
if !errors.As(err, &limitErr) {
|
||||
|
||||
Reference in New Issue
Block a user