Difference between revisions of "Server Metrics using Prometheus"

From Minetest Wiki
Jump to navigation Jump to search
(Created page with "<syntaxhighlight lang="bash">cd /tmp git clone --recursive https://github.com/jupp0r/prometheus-cpp mkdir prometheus-cpp/build cd prometheus-cpp/build cmake .. -DCMAKE_INSTALL...")
 
Line 1: Line 1:
 +
== Prometheus ==
 +
 +
=== What is Prometheus? ===
 +
 +
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.
 +
 +
=== 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 Minetest.
 +
 +
Here's how you do that on Linux:
 +
 
<syntaxhighlight lang="bash">cd /tmp
 
<syntaxhighlight lang="bash">cd /tmp
 
git clone --recursive https://github.com/jupp0r/prometheus-cpp
 
git clone --recursive https://github.com/jupp0r/prometheus-cpp
Line 4: Line 19:
 
cd prometheus-cpp/build
 
cd prometheus-cpp/build
 
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=0
 
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=0
make -j2
+
make -j$(nproc)
 
sudo make install</syntaxhighlight>
 
sudo make install</syntaxhighlight>
  
 +
=== Build Minetest ===
 +
 +
Now, you need build minetest with Prometheus enabled
 +
 +
<syntaxhighlight lang="bash">cmake . -DENABLE_PROMETHEUS
 +
make -j$(nproc)</syntaxhighlight>
 +
 +
=== Configure prometheus ===
 +
 +
Prometheus will make HTTP requests to Minetest's prometheus-cpp library to get the metrics.
 +
 +
You can set the prometheus listen address like so:
 +
 +
<code><pre>prometheus_listener_address = 127.0.0.1:30000</pre></code>
 +
 +
== Grafana ==
  
<syntaxhighlight lang="lua">noise_params = {
+
You can link up Prometheus to Grafana to make nice web graphs. For example:
    offset  = 0,
+
[https://monitor.rubenwardy.com/d/r6cCl68mk/minetest-servers rubenwardy.com]
    scale  = 1,
 
    spread  = {x=250, y=250, z=250},
 
    seed    = 12345,
 
    octaves = 3,
 
    persist = 0.6,
 
    lacunarity = 2,
 
    flags = "defaults",
 
}</syntaxhighlight>
 

Revision as of 19:50, 19 February 2021

Prometheus

What is Prometheus?

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.

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 Minetest.

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 Minetest

Now, you need build minetest with Prometheus enabled

cmake . -DENABLE_PROMETHEUS
make -j$(nproc)

Configure prometheus

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

You can set the prometheus listen address like so:

prometheus_listener_address = 127.0.0.1:30000

Grafana

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