summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/metrics.c10
-rw-r--r--src/metrics.h1
-rw-r--r--src/proto.c3
3 files changed, 14 insertions, 0 deletions
diff --git a/src/metrics.c b/src/metrics.c
index c16beb0..d3eaf52 100644
--- a/src/metrics.c
+++ b/src/metrics.c
@@ -23,6 +23,7 @@ prom_counter_t *retries = NULL;
prom_counter_t *keepalive_count = NULL;
prom_counter_t *lookup_count = NULL;
prom_gauge_t *routing_table_occupied = NULL;
+prom_counter_t *outbox_overflow = NULL;
enum MHD_Result promhttp_handler(
void *cls,
@@ -243,6 +244,15 @@ void metric_init() {
(const char *[]) {"dist"}
)
);
+
+ outbox_overflow = prom_collector_registry_must_register_metric(
+ prom_counter_new(
+ "dht_outbox_overflow",
+ "Number of times the outbox has overflowed",
+ 0,
+ NULL
+ )
+ );
}
void metric_end() {
diff --git a/src/metrics.h b/src/metrics.h
index d0b444f..3c79129 100644
--- a/src/metrics.h
+++ b/src/metrics.h
@@ -26,6 +26,7 @@ extern prom_counter_t *keepalive_count;
extern prom_counter_t *requestsProcessed;
extern prom_counter_t *lookup_count;
+extern prom_counter_t *outbox_overflow;
extern prom_gauge_t *routing_table_occupied;
diff --git a/src/proto.c b/src/proto.c
index 5d28ceb..314d846 100644
--- a/src/proto.c
+++ b/src/proto.c
@@ -734,6 +734,7 @@ int handle_packet(struct dht* dht, time_t now, enum commandType type, char* tran
dht->pause = false;
int rc = dht->requestdata[reqId].fun(dht, now, &dht->requestdata[reqId].cont, packet, packet_len, dht->sfd, (struct sockaddr*)remote, remote_len, msgbuff);
if(rc == PROTO_ENOREQ) {
+ prom_counter_inc(outbox_overflow, NULL);
dht->pause = true;
} else if(rc == PROTO_EDISC) {
return 0;
@@ -880,6 +881,7 @@ int proto_run(struct dht* dht, char* buff, size_t recv_len, struct sockaddr_in*
int rc = dht->requestdata[i].timeout_fun(dht, &dht->self, now, &dht->requestdata[i].cont, &msgbuff);
if(rc == PROTO_ENOREQ) {
+ prom_counter_inc(outbox_overflow, NULL);
dht->pause = true;
recalulate_waketime(dht);
return 0;
@@ -905,6 +907,7 @@ int proto_run(struct dht* dht, char* buff, size_t recv_len, struct sockaddr_in*
dest.sin_port = oldest->addr.port;
int rc = send_ping(dht, &oldest->id, now, false, (const struct sockaddr*)&dest, sizeof(dest), &msgbuff);
if(rc == PROTO_ENOREQ) {
+ prom_counter_inc(outbox_overflow, NULL);
dht->pause = true;
recalulate_waketime(dht);
return 0;