Coder Social home page Coder Social logo

meza / fabric-exporter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ruscalworld/fabric-exporter

0.0 1.0 0.0 258 KB

Fabric mod that adds a Prometheus exporter with general metrics of your server

Home Page: https://modrinth.com/mod/fabricexporter

License: MIT License

Java 100.00%

fabric-exporter's Introduction

FabricExporter

Fabric mod that adds a Prometheus exporter with general metrics of your server.

Grafana Dashboard


It's a server-side mod that exposes metrics of your Fabric server in Prometheus format. So, it requires you to have at least Prometheus installed to collect provided metrics. I recommend also using Grafana to visualize data.

If you want to get TPS and MSPT metrics, you should also install Spark as mod for your Fabric server.

Exposed metrics

Here is a list of metrics that are collected by FabricExporter.

  • Metrics collected by Minecraft doesn't require anything, but may cause errors when running on old Minecraft versions
  • Metrics collected by Spark require Spark to be installed

You can disable any of these metrics in config.

Prometheus name Description Config property Collected by
minecraft_loaded_chunks Amount of currently loaded chunks on server enable-loaded-chunks Minecraft
minecraft_total_loaded_chunks Amount of total loaded chunks on server enable-total-loaded-chunks Minecraft
minecraft_mspt Count of milliseconds per tick (MSPT) enable-mspt Spark
minecraft_tps Count of ticks per second (TPS) enable-tps Spark
minecraft_players_online Amount of currently online players on your server enable-players-online FabricExporter
minecraft_entities Amount of currently loaded entities on your server enable-entities FabricExporter
minecraft_handshakes Count of handshake requests enable-handshakes FabricExporter
jvm_* JVM metrics collected by Prometheus client export-jvm-metrics Prometheus client

Getting started

To use this mod you should have at least Fabric server and Prometheus installed.

Installing mod

  1. Download the mod from Releases page.
  2. Drop downloaded mod jar to the mods folder.
  3. Start your server to generate config file.
  4. Open config/exporter.properties, ensure that server-port value is an open port that can be accessed by your Prometheus and change it if required.
  5. Restart the server if you made changes in config.

Configuring Prometheus

  1. Open your Prometheus config file (it located at /etc/prometheus/prometheus.yml by default).
sudo nano /etc/prometheus/prometheus.yml
  1. Add FabricExporter endpoint to the scrape_configs section. Don't forget to replace 127.0.0.1 with address of your server and 25585 with port specified in server-port property in exporter.properties file.
- job_name: 'fabric'
  static_configs:
    - targets: ['127.0.0.1:25585']
  1. Restart Prometheus service.
sudo service prometheus restart

Importing Grafana dashboard

If you want to use Grafana, you can use my dashboard as template. I assume that you have already created a Prometheus data source in Grafana. So, let's import dashboard for FabricExporter.

  1. Log in to your Grafana and go to Create -> Import tab.
  2. Type 14492 in "Import via grafana.com" field and click "Load".
  3. On the next page change settings as you wish and click "Import".

Configuring

After your server starts, FabricExporter will create exporter.properties file in the config folder. You should use this file to configure the mod. In this file you can see some general settings and metrics settings.

General settings

Property Description Default value
server-port Port on what the web server will listen for requests 25585
update-interval Interval between gauge metrics updates in milliseconds 1000
use-spark If set to false, FabricExporter will be independent from Spark true

Metrics settings

You can disable any metric that registered via MetricRegistry (all metrics by default) using exporter.properties file. Names of properties consist of enable and metric name without prefix and _ replaced with -. For example, if you want to disable minecraft_players_online, you should set enable-players-online to false. You can also see list of available properties in "Exposed metrics" section. If you can't find property for some metrics, you can manually add it. All metrics are enabled by default.

License

MIT license. Read more in LICENSE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.