mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-15 07:24:52 +09:00
Add hit counter for HTTP requests
Add a complementary total hit counter for all HTTP requests. The endpointHitCounter doesn't cover all endpoints and fixing it to cover all endpoints without making it possible for it to create an infinite number of time seriers is not straight forward.
This commit is contained in:
1 parent
b70303c437
commit
a904a8fb9d
1 file changed
+27
-16
+27
-16
@@ -80,18 +80,6 @@ let httpServerCloser;
|
||||
let httpsServer;
|
||||
let httpsServerCloser;
|
||||
|
||||
app.use(cookieParser());
|
||||
app.use(bodyParser.json({
|
||||
limit: "10mb",
|
||||
}));
|
||||
app.use(bodyParser.urlencoded({
|
||||
parameterLimit: 100000,
|
||||
limit: "10mb",
|
||||
extended: true,
|
||||
}));
|
||||
app.use(fileUpload());
|
||||
app.use(compression());
|
||||
|
||||
|
||||
// Servers the web interface with the root path set apropriately.
|
||||
function serveWeb(route) {
|
||||
@@ -112,10 +100,6 @@ function serveWeb(route) {
|
||||
};
|
||||
}
|
||||
|
||||
// Set folder to serve static content from (the website)
|
||||
app.use(express.static(path.join(__dirname, "dist", "web")));
|
||||
app.use(express.static("static")); // Used for data export files
|
||||
|
||||
const slaveMappingGauge = new libPrometheus.Gauge(
|
||||
"clusterio_master_slave_mapping",
|
||||
"Mapping of Slave ID to name",
|
||||
@@ -151,6 +135,11 @@ const instanceMappingGauge = new libPrometheus.Gauge(
|
||||
}
|
||||
);
|
||||
|
||||
const hitCounter = new libPrometheus.Counter(
|
||||
"clusterio_master_http_hits_total",
|
||||
"How many HTTP requests in total have been received"
|
||||
);
|
||||
|
||||
const endpointHitCounter = new libPrometheus.Counter(
|
||||
"clusterio_master_http_endpoint_hits_total",
|
||||
"How many requests a particular HTTP endpoint has gotten",
|
||||
@@ -183,6 +172,28 @@ const wsActiveSlavesGauge = new libPrometheus.Gauge(
|
||||
"How many slaves are currently connected to the master"
|
||||
);
|
||||
|
||||
|
||||
app.use((req, res, next) => {
|
||||
hitCounter.inc();
|
||||
next();
|
||||
});
|
||||
app.use(cookieParser());
|
||||
app.use(bodyParser.json({
|
||||
limit: "10mb",
|
||||
}));
|
||||
app.use(bodyParser.urlencoded({
|
||||
parameterLimit: 100000,
|
||||
limit: "10mb",
|
||||
extended: true,
|
||||
}));
|
||||
app.use(fileUpload());
|
||||
app.use(compression());
|
||||
|
||||
// Set folder to serve static content from (the website)
|
||||
app.use(express.static(path.join(__dirname, "dist", "web")));
|
||||
app.use(express.static("static")); // Used for data export files
|
||||
|
||||
|
||||
// Merges samples from sourceResult to destinationResult
|
||||
function mergeSamples(destinationResult, sourceResult) {
|
||||
// Merge metrics received by multiple slaves
|
||||
|
||||
Reference in new issue
Block a user