Difference between revisions of "Server Metrics using Prometheus"
Rubenwardy (talk | contribs) |
(rename Minetest to Luanti) |
||
(4 intermediate revisions by 2 users 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". | ||
− | + | Luanti has built-in support for prometheus, allowing you to see metrics about your server - such as player count and performance information. | |
− | == Using Prometheus in | + | Here are some examples of Grafana dashboards created using Prometheus: |
+ | |||
+ | - [https://monitor.rubenwardy.com/d/9TgIegyGk/ctf monitor.rubenwardy.com] | ||
+ | - [https://monitoring.minetest.land/ monitoring.minetest.land] (note: this contains heavy mondifications) | ||
+ | |||
+ | == 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 | + | 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 21: | Line 26: | ||
sudo make install</syntaxhighlight> | sudo make install</syntaxhighlight> | ||
− | === Build | + | === Build Luanti === |
− | Now, you need build | + | Now, you need build Luanti with Prometheus enabled |
− | <syntaxhighlight lang="bash">cmake . -DENABLE_PROMETHEUS | + | <syntaxhighlight lang="bash">cmake . -DENABLE_PROMETHEUS=1 |
make -j$(nproc)</syntaxhighlight> | make -j$(nproc)</syntaxhighlight> | ||
=== Configure prometheus === | === Configure prometheus === | ||
− | Prometheus will make HTTP requests to | + | Prometheus will make HTTP requests to Luanti's prometheus-cpp library to get the metrics. |
− | You can set the prometheus listen address | + | 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> |
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