Difference between revisions of "Server Metrics using Prometheus"
Rubenwardy (talk | contribs) (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...") |
Rubenwardy (talk | contribs) |
||
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 - | + | 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 == | ||
− | + | You can link up Prometheus to Grafana to make nice web graphs. For example: | |
− | + | [https://monitor.rubenwardy.com/d/r6cCl68mk/minetest-servers rubenwardy.com] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
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