From: Alan T. DeKok Date: Sat, 3 May 2025 17:04:37 +0000 (-0400) Subject: add elapsed timers to statistics X-Git-Tag: release_3_2_8~83 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=066ceaac44c775183679403507cd7aed5c8e81bb;p=thirdparty%2Ffreeradius-server.git add elapsed timers to statistics it's v3, and we didn't really support TLVs when this started. so the elapsed statistics are not associated strongly with a particular type of thing being returned. --- diff --git a/share/dictionary.freeradius b/share/dictionary.freeradius index 9b792b6047..90100e7bfd 100644 --- a/share/dictionary.freeradius +++ b/share/dictionary.freeradius @@ -307,4 +307,14 @@ ATTRIBUTE FreeRADIUS-Stats-Threads-Max 195 integer ATTRIBUTE FreeRADIUS-Stats-Server-Src-IP-Address 196 ipaddr ATTRIBUTE FreeRADIUS-Stats-Server-Src-IPv6-Address 197 ipaddr +ATTRIBUTE FreeRADIUS-Stats-Elapsed 198 tlv +ATTRIBUTE FreeRADIUS-Stats-Elapsed-1us 198.1 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-10us 198.2 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-100us 198.3 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-1ms 198.4 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-10ms 198.5 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-100ms 198.6 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-1s 198.7 integer64 +ATTRIBUTE FreeRADIUS-Stats-Elapsed-10s 198.8 integer64 + END-VENDOR FreeRADIUS diff --git a/src/main/stats.c b/src/main/stats.c index 730366c586..72ae335978 100644 --- a/src/main/stats.c +++ b/src/main/stats.c @@ -538,6 +538,17 @@ static void request_stats_addvp(REQUEST *request, counter = *(uint64_t *) (((uint8_t *) stats) + table[i].offset); vp->vp_integer = counter; } + + /* + * Add in count of elapsed times. + */ + for (i = 0; i < 8; i++) { + vp = radius_pair_create(request->reply, &request->reply->vps, + (198 + ((i + 1) << 8)), VENDORPEC_FREERADIUS); + if (!vp) continue; + + vp->vp_integer64 = stats->elapsed[i]; + } } static void stats_error(REQUEST *request, char const *msg)