Push Files
- Uploaded Backend - Uploaded Mod Code - Started Documentation
This commit is contained in:
14
Backend/package.json
Normal file
14
Backend/package.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "gp-server",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node server.js"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"type": "module"
|
||||
}
|
||||
39
Backend/server.js
Normal file
39
Backend/server.js
Normal file
@@ -0,0 +1,39 @@
|
||||
import express from "express";
|
||||
import client from "prom-client";
|
||||
|
||||
const registry = new client.Registry();
|
||||
|
||||
const app = express();
|
||||
|
||||
var active_users = 0;
|
||||
|
||||
const users = new client.Gauge({
|
||||
name: "active_users",
|
||||
help: "active_users",
|
||||
async collect() {
|
||||
this.set(active_users);
|
||||
},
|
||||
});
|
||||
|
||||
registry.registerMetric(users);
|
||||
|
||||
app.get("/", (req, res) => {
|
||||
res.send("player-metrics");
|
||||
});
|
||||
|
||||
app.post("/api/players", (req, res) => {
|
||||
res.send("ok");
|
||||
active_users++;
|
||||
});
|
||||
|
||||
app.get("/metrics", async (req, res) => {
|
||||
res.setHeader("Content-Type", client.contentType);
|
||||
res.send(await registry.metrics());
|
||||
res.end();
|
||||
|
||||
active_users = 0; // reset the active_users when prometheus gets metrics (aka reset every minute -- prometheus default poll time)
|
||||
});
|
||||
|
||||
app.listen(5008, () => {
|
||||
console.log("listening on :" + 5008);
|
||||
});
|
||||
1
Backend/start.sh
Normal file
1
Backend/start.sh
Normal file
@@ -0,0 +1 @@
|
||||
node server.js
|
||||
Reference in New Issue
Block a user