コード例 #1
0
 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);
コード例 #2
0
        public void OnNext(IThrottlingResult result)
        {
            if (result.Status != ThrottlingStatus.Passed)
            {
                rejectionCounter.For(result.Status).Increment();
            }

            waitTimeSummary.Report(result.WaitTime);
        }
コード例 #3
0
 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
 });
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 private static bool ShouldAbortConnection(HttpContext context, IThrottlingResult result)
 => result.Status == ThrottlingStatus.RejectedDueToDeadline ||
 context.Request.ContentLength > LargeRequestBodySize ||
 context.Request.Headers[HeaderNames.TransferEncoding] == "chunked";