summaryrefslogtreecommitdiff
path: root/src/proto.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/proto.c')
-rw-r--r--src/proto.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/proto.c b/src/proto.c
index 51eb71b..cd66ead 100644
--- a/src/proto.c
+++ b/src/proto.c
@@ -825,19 +825,29 @@ static void recalulate_waketime(struct dht *dht) {
if(!dht->pause){
struct entry* oldest;
routing_oldest(&oldest);
- if(oldest != NULL)
+ if(oldest != NULL) {
dht->wake = oldest->expire;
+ prom_gauge_set(wakeup_time, oldest->expire, (const char *[]){"routing"});
+ }
}
+ time_t req_timeout = 0;
for(int i = 0; i < MAX_INFLIGHT; i++) {
if(!dht->reqalloc[i])
continue;
time_t timeout = dht->requestdata[i].timeout;
- if(dht->wake == 0 || (timeout != 0 && difftime(timeout, dht->wake) < 0))
- dht->wake = timeout;
+ if(req_timeout == 0 || (timeout != 0 && difftime(timeout, req_timeout) < 0)) {
+ req_timeout = timeout;
+ }
+ }
+
+ prom_gauge_set(wakeup_time, req_timeout, (const char *[]){"requests"});
+ if(dht->wake == 0 || (req_timeout != 0 && difftime(req_timeout, dht->wake) < 0)) {
+ dht->wake = req_timeout;
}
+ prom_gauge_set(wakeup_time, dht->lookup.timeout, (const char *[]){"lookup"});
if(dht->wake == 0 || difftime(dht->lookup.timeout, dht->wake) < 0) {
dht->wake = dht->lookup.timeout;
}