private void LogFailure(HttpContext context, IRequestInfo info, IThrottlingResult result) => log.Error( "Dropping request from '{ClientIdentity}' at {RequestConnection} due to throttling status {ThrottlingStatus}. Rejection reason = '{RejectionReason}'.", info?.ClientApplicationIdentity ?? "unknown", GetClientConnectionInfo(context), result.Status, result.RejectionReason);
public void OnNext(IThrottlingResult result) { if (result.Status != ThrottlingStatus.Passed) { rejectionCounter.For(result.Status).Increment(); } waitTimeSummary.Report(result.WaitTime); }
private void LogWaitTime(HttpContext context, IRequestInfo info, IThrottlingResult result) => log.Warn( "Request from '{ClientIdentity}' at {RequestConnection} spent {ThrottlingWaitTime} on throttling.", new { ClientIdentity = info?.ClientApplicationIdentity ?? "unknown", RequestConnection = GetClientConnectionInfo(context), ThrottlingWaitTime = result.WaitTime.ToPrettyString(), ThrottlingWaitTimeMs = result.WaitTime.TotalMilliseconds });
private void LogFailure(HttpContext context, IRequestInfo info, IThrottlingResult result) { const string messageTemplate = "Dropping request from '{ClientIdentity}' at {RequestConnection} due to throttling status {ThrottlingStatus}. Rejection reason = '{RejectionReason}'."; var args = new object[] { info?.ClientApplicationIdentity ?? "unknown", GetClientConnectionInfo(context), result.Status, result.RejectionReason }; if (result.Status == ThrottlingStatus.RejectedDueToQuota || result.Status == ThrottlingStatus.RejectedDueToDeadline) { log.Warn(messageTemplate, args); } else { log.Error(messageTemplate, args); } }
private static bool ShouldAbortConnection(HttpContext context, IThrottlingResult result) => result.Status == ThrottlingStatus.RejectedDueToDeadline || context.Request.ContentLength > LargeRequestBodySize || context.Request.Headers[HeaderNames.TransferEncoding] == "chunked";