Spaces:
Running
Running
Ahmad Schinner
commited on
Update index.js
Browse files
index.js
CHANGED
@@ -108,6 +108,42 @@ async function sendRequestAndSetGlobals() {
|
|
108 |
|
109 |
setInterval(sendRequestAndSetGlobals, 3600000);
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
app.get('/whois', async (req, res) => {
|
113 |
const { domain } = req.query;
|
|
|
108 |
|
109 |
setInterval(sendRequestAndSetGlobals, 3600000);
|
110 |
|
111 |
+
let requestsCount = 0;
|
112 |
+
let totalTime = 0;
|
113 |
+
let domainsQueried = {};
|
114 |
+
|
115 |
+
app.use((req, res, next) => {
|
116 |
+
const startTime = Date.now();
|
117 |
+
requestsCount++;
|
118 |
+
next();
|
119 |
+
const endTime = Date.now();
|
120 |
+
totalTime += endTime - startTime;
|
121 |
+
const averageResponseTime = totalTime / requestsCount;
|
122 |
+
|
123 |
+
// track domains queried
|
124 |
+
if (req.query.domain) {
|
125 |
+
const domain = req.query.domain;
|
126 |
+
if (!domainsQueried[domain]) {
|
127 |
+
domainsQueried[domain] = 1;
|
128 |
+
} else {
|
129 |
+
domainsQueried[domain]++;
|
130 |
+
}
|
131 |
+
}
|
132 |
+
});
|
133 |
+
|
134 |
+
app.get('/stats', (req, res) => {
|
135 |
+
const stats = {
|
136 |
+
requestsCount,
|
137 |
+
averageResponseTime,
|
138 |
+
uptime: process.uptime(),
|
139 |
+
domainsQueried: Object.keys(domainsQueried).map((domain) => ({
|
140 |
+
domain,
|
141 |
+
count: domainsQueried[domain],
|
142 |
+
})),
|
143 |
+
};
|
144 |
+
|
145 |
+
res.json(stats);
|
146 |
+
});
|
147 |
|
148 |
app.get('/whois', async (req, res) => {
|
149 |
const { domain } = req.query;
|