mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-25 05:35:25 +02:00
Improve usability of Prometheus metrics backend (#16060)
This commit is contained in:
@@ -284,12 +284,12 @@ Server::Server(
|
||||
throw ServerError("Supplied invalid gamespec");
|
||||
|
||||
#if USE_PROMETHEUS
|
||||
if (!simple_singleplayer_mode)
|
||||
m_metrics_backend = std::unique_ptr<MetricsBackend>(createPrometheusMetricsBackend());
|
||||
else
|
||||
#else
|
||||
if (true)
|
||||
if (!simple_singleplayer_mode) {
|
||||
// Note: may return null
|
||||
m_metrics_backend.reset(createPrometheusMetricsBackend());
|
||||
}
|
||||
#endif
|
||||
if (!m_metrics_backend)
|
||||
m_metrics_backend = std::make_unique<MetricsBackend>();
|
||||
|
||||
m_uptime_counter = m_metrics_backend->addCounter("minetest_core_server_uptime", "Server uptime (in seconds)");
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <prometheus/gauge.h>
|
||||
#include "log.h"
|
||||
#include "settings.h"
|
||||
#include "exceptions.h"
|
||||
#endif
|
||||
|
||||
/* Plain implementation */
|
||||
@@ -183,7 +184,16 @@ MetricsBackend *createPrometheusMetricsBackend()
|
||||
{
|
||||
std::string addr;
|
||||
g_settings->getNoEx("prometheus_listener_address", addr);
|
||||
return new PrometheusMetricsBackend(addr);
|
||||
if (addr.empty())
|
||||
return nullptr;
|
||||
infostream << "Starting Prometheus metrics on " << addr << std::endl;
|
||||
try {
|
||||
return new PrometheusMetricsBackend(addr);
|
||||
} catch (std::exception &e) {
|
||||
errorstream << "Error while starting Prometheus metrics on " << addr
|
||||
<< ":\n" << e.what() << std::endl;
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user