The goal of this project is to provide a simple way to get metrics from CS2 game servers and store them on Prometheus.
docker run -d -p <external port>:9591 --name cs2_exporter --restart=always ghcr.io/revij/cs2_exporter:latest
You need to have NodeJS installed if you want to run the sources, NVM (Node Version Manager) is a simple tool to get it running : https://github.com/nvm-sh/nvm
- Download the repo (using git clone or direct zip download)
- Enter the cs2_exporter directory and run
npm i
, this will install all required dependencies - Start the script with node :
node index.js
, you can create a service or run it in a screen to keep it active in background
By default, the exporter runs on port 9591, it's possible to customize this by setting the HTTP_PORT variable to the desired port.
- Configure a rcon password password either via command line:
+rcon_password <password>
or under your server.cfg file:
rcon_password "<password>"
- Make sure that your server's firewall allows the exporter to connect to the game server's RCON port (TCP).
Add the following configuration to Prometheus static configuration :
- job_name: 'cs2_exporter'
static_configs:
- targets: ["<ip>:<port>:<rconpassword>"]
relabel_configs:
- source_labels: [__address__]
regex: "(.+):.+:.+"
replacement: "$1"
target_label: __param_ip
- source_labels: [__address__]
regex: ".+:(.+):.+"
replacement: "$1"
target_label: __param_port
- source_labels: [__address__]
regex: ".+:.+:(.+)"
replacement: "$1"
target_label: __param_password
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: <IP>:<port> # Real exporter's IP:Port
If you want to see what the exporter returns, you can access :
http://<ip>:9591/metrics?ip=<server ip>&port=<server port>&password=<rcon password>
If you encounter any issue, feel free to open an issue on the github repository!