Difference between revisions of "Server Metrics using Prometheus"

From Minetest Wiki
Jump to navigation Jump to search
(rename Minetest to Luanti)
 
(One intermediate revision by one other user not shown)
Line 2: Line 2:
 
Prometheus is an "open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach".
 
Prometheus is an "open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach".
  
Minetest has built-in support for prometheus, allowing you to see metrics about your server - such as player count and performance information.
+
Luanti has built-in support for prometheus, allowing you to see metrics about your server - such as player count and performance information.
  
 
Here are some examples of Grafana dashboards created using Prometheus:
 
Here are some examples of Grafana dashboards created using Prometheus:
Line 9: Line 9:
 
- [https://monitoring.minetest.land/ monitoring.minetest.land] (note: this contains heavy mondifications)
 
- [https://monitoring.minetest.land/ monitoring.minetest.land] (note: this contains heavy mondifications)
  
== Using Prometheus in Minetest ==
+
== Using Prometheus in Luanti ==
  
 
=== Get or build the prometheus-cpp library ===
 
=== Get or build the prometheus-cpp library ===
  
 
You may be able to find prometheus-cpp in your distro's package manager.  
 
You may be able to find prometheus-cpp in your distro's package manager.  
Otherwise, you'll need to build it and make it available to Minetest.
+
Otherwise, you'll need to build it and make it available to Luanti.
  
 
Here's how you do that on Linux:
 
Here's how you do that on Linux:
Line 26: Line 26:
 
sudo make install</syntaxhighlight>
 
sudo make install</syntaxhighlight>
  
=== Build Minetest ===
+
=== Build Luanti ===
  
Now, you need build minetest with Prometheus enabled
+
Now, you need build Luanti with Prometheus enabled
  
 
<syntaxhighlight lang="bash">cmake . -DENABLE_PROMETHEUS=1
 
<syntaxhighlight lang="bash">cmake . -DENABLE_PROMETHEUS=1
Line 35: Line 35:
 
=== Configure prometheus ===
 
=== Configure prometheus ===
  
Prometheus will make HTTP requests to Minetest's prometheus-cpp library to get the metrics.
+
Prometheus will make HTTP requests to Luanti's prometheus-cpp library to get the metrics.
  
You can set the prometheus listen address like so:
+
You can set the prometheus listen address by assigning an IP:PORT in the minetest.conf:
  
 
<code><pre>prometheus_listener_address = 127.0.0.1:30000</pre></code>
 
<code><pre>prometheus_listener_address = 127.0.0.1:30000</pre></code>
 
 
  
 
== Grafana ==  
 
== Grafana ==  

Latest revision as of 22:59, 22 October 2024

Prometheus is an "open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach".

Luanti has built-in support for prometheus, allowing you to see metrics about your server - such as player count and performance information.

Here are some examples of Grafana dashboards created using Prometheus:

- monitor.rubenwardy.com - monitoring.minetest.land (note: this contains heavy mondifications)

Using Prometheus in Luanti

Get or build the prometheus-cpp library

You may be able to find prometheus-cpp in your distro's package manager. Otherwise, you'll need to build it and make it available to Luanti.

Here's how you do that on Linux:

cd /tmp
git clone --recursive https://github.com/jupp0r/prometheus-cpp
mkdir prometheus-cpp/build
cd prometheus-cpp/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=0
make -j$(nproc)
sudo make install

Build Luanti

Now, you need build Luanti with Prometheus enabled

cmake . -DENABLE_PROMETHEUS=1
make -j$(nproc)

Configure prometheus

Prometheus will make HTTP requests to Luanti's prometheus-cpp library to get the metrics.

You can set the prometheus listen address by assigning an IP:PORT in the minetest.conf:

prometheus_listener_address = 127.0.0.1:30000

Grafana

You can link up Prometheus to Grafana to make nice web graphs. For example: monitor.rubenwardy.com

To do: example layouts