зеркало из https://github.com/microsoft/msquic.git
Add Path Change Perf Counters (#1990)
This commit is contained in:
Родитель
e2ef1c733c
Коммит
0ecdb81ef6
|
@ -158,6 +158,10 @@ QUIC_PERF_COUNTER_CONN_OPER_COMPLETED | Total connection operations processed ev
|
|||
QUIC_PERF_COUNTER_WORK_OPER_QUEUE_DEPTH | Current worker operations queued
|
||||
QUIC_PERF_COUNTER_WORK_OPER_QUEUED | Total worker operations queued ever
|
||||
QUIC_PERF_COUNTER_WORK_OPER_COMPLETED | Total worker operations processed ever
|
||||
QUIC_PERF_COUNTER_PATH_VALIDATED | Total path challenges that succeed ever
|
||||
QUIC_PERF_COUNTER_PATH_FAILURE | Total path challenges that fail ever
|
||||
QUIC_PERF_COUNTER_SEND_STATELESS_RESET | Total stateless reset packets sent ever
|
||||
QUIC_PERF_COUNTER_SEND_STATELESS_RETRY | Total stateless retry packets sent ever
|
||||
|
||||
## Windows Performance Monitor
|
||||
|
||||
|
|
|
@ -129,6 +129,10 @@ MsQuicPcwStartup(
|
|||
{ 30, 0, QUIC_PERF_COUNTER_WORK_OPER_QUEUE_DEPTH * sizeof(int64_t), sizeof(int64_t)},
|
||||
{ 31, 0, QUIC_PERF_COUNTER_WORK_OPER_QUEUED * sizeof(int64_t), sizeof(int64_t)},
|
||||
{ 32, 0, QUIC_PERF_COUNTER_WORK_OPER_COMPLETED * sizeof(int64_t), sizeof(int64_t)},
|
||||
{ 33, 0, QUIC_PERF_COUNTER_PATH_VALIDATED * sizeof(int64_t), sizeof(int64_t)},
|
||||
{ 34, 0, QUIC_PERF_COUNTER_PATH_FAILURE * sizeof(int64_t), sizeof(int64_t)},
|
||||
{ 35, 0, QUIC_PERF_COUNTER_SEND_STATELESS_RESET * sizeof(int64_t), sizeof(int64_t)},
|
||||
{ 36, 0, QUIC_PERF_COUNTER_SEND_STATELESS_RETRY * sizeof(int64_t), sizeof(int64_t)},
|
||||
};
|
||||
|
||||
RtlZeroMemory(&RegInfo, sizeof(RegInfo));
|
||||
|
|
|
@ -966,6 +966,8 @@ QuicBindingProcessStatelessOperation(
|
|||
QUIC_STATELESS_RESET_TOKEN_LENGTH
|
||||
).Buffer);
|
||||
|
||||
QuicPerfCounterIncrement(QUIC_PERF_COUNTER_SEND_STATELESS_RESET);
|
||||
|
||||
} else if (OperationType == QUIC_OPER_TYPE_RETRY) {
|
||||
|
||||
CXPLAT_DBG_ASSERT(RecvPacket->DestCid != NULL);
|
||||
|
@ -1049,6 +1051,8 @@ QuicBindingProcessStatelessOperation(
|
|||
QuicCidBufToStr(RecvPacket->DestCid, RecvPacket->DestCidLen).Buffer,
|
||||
(uint16_t)sizeof(Token));
|
||||
|
||||
QuicPerfCounterIncrement(QUIC_PERF_COUNTER_SEND_STATELESS_RETRY);
|
||||
|
||||
} else {
|
||||
CXPLAT_TEL_ASSERT(FALSE); // Should be unreachable code.
|
||||
goto Exit;
|
||||
|
|
|
@ -4711,6 +4711,7 @@ QuicConnRecvFrames(
|
|||
QUIC_PATH* TempPath = &Connection->Paths[i];
|
||||
if (!TempPath->IsPeerValidated &&
|
||||
!memcmp(Frame.Data, TempPath->Challenge, sizeof(Frame.Data))) {
|
||||
QuicPerfCounterIncrement(QUIC_PERF_COUNTER_PATH_VALIDATED);
|
||||
QuicPathSetValid(Connection, TempPath, QUIC_PATH_VALID_PATH_RESPONSE);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -792,6 +792,7 @@ QuicLossDetectionRetransmitFrames(
|
|||
Connection,
|
||||
"Path[%hhu] validation timed out",
|
||||
Path->ID);
|
||||
QuicPerfCounterIncrement(QUIC_PERF_COUNTER_PATH_FAILURE);
|
||||
QuicPathRemove(Connection, PathIndex);
|
||||
} else {
|
||||
Path->SendChallenge = TRUE;
|
||||
|
|
|
@ -464,6 +464,10 @@ typedef enum QUIC_PERFORMANCE_COUNTERS {
|
|||
QUIC_PERF_COUNTER_WORK_OPER_QUEUE_DEPTH,// Current worker operations queued.
|
||||
QUIC_PERF_COUNTER_WORK_OPER_QUEUED, // Total worker operations queued ever.
|
||||
QUIC_PERF_COUNTER_WORK_OPER_COMPLETED, // Total worker operations processed ever.
|
||||
QUIC_PERF_COUNTER_PATH_VALIDATED, // Total path challenges that succeed ever.
|
||||
QUIC_PERF_COUNTER_PATH_FAILURE, // Total path challenges that fail ever.
|
||||
QUIC_PERF_COUNTER_SEND_STATELESS_RESET, // Total stateless reset packets sent ever.
|
||||
QUIC_PERF_COUNTER_SEND_STATELESS_RETRY, // Total stateless retry packets sent ever.
|
||||
QUIC_PERF_COUNTER_MAX,
|
||||
} QUIC_PERFORMANCE_COUNTERS;
|
||||
|
||||
|
|
|
@ -194,6 +194,10 @@ DumpMsQuicPerfCounters(
|
|||
printf(" WORK_OPER_QUEUE_DEPTH: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_WORK_OPER_QUEUE_DEPTH]);
|
||||
printf(" WORK_OPER_QUEUED: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_WORK_OPER_QUEUED]);
|
||||
printf(" WORK_OPER_COMPLETED: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_WORK_OPER_COMPLETED]);
|
||||
printf(" PATH_VALIDATED: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_PATH_VALIDATED]);
|
||||
printf(" PATH_FAILURE: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_PATH_FAILURE]);
|
||||
printf(" SEND_STATELESS_RESET: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_SEND_STATELESS_RESET]);
|
||||
printf(" SEND_STATELESS_RETRY: %llu\n", (unsigned long long)Counters[QUIC_PERF_COUNTER_SEND_STATELESS_RETRY]);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -296,6 +296,18 @@ QuicTraceGlobalEvent(
|
|||
case QUIC_PERF_COUNTER_WORK_OPER_COMPLETED:
|
||||
printf(" Total worker operations processed ever: ");
|
||||
break;
|
||||
case QUIC_PERF_COUNTER_PATH_VALIDATED:
|
||||
printf(" Total path challenges that succeed ever: ");
|
||||
break;
|
||||
case QUIC_PERF_COUNTER_PATH_FAILURE:
|
||||
printf(" Total path challenges that fail ever: ");
|
||||
break;
|
||||
case QUIC_PERF_COUNTER_SEND_STATELESS_RESET:
|
||||
printf(" Total stateless reset packets sent ever: ");
|
||||
break;
|
||||
case QUIC_PERF_COUNTER_SEND_STATELESS_RETRY:
|
||||
printf(" Total stateless retry packets sent ever: ");
|
||||
break;
|
||||
default:
|
||||
printf(" Unknown: ");
|
||||
break;
|
||||
|
|
Загрузка…
Ссылка в новой задаче