Skip to content

๐Ÿ“Š A lightweight Bungeecord/Velocity plugin that exports network stats to Prometheus

License

Notifications You must be signed in to change notification settings

weihao/bungeecord-prometheus-exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

en zh-Hans jp Release GitHub all releases

BungeeCord Prometheus Exporter

A plugin that exports network stats for Prometheus.

If you don't run a network proxy, you might also be interested in Prometheus Exporter for a single server metrics!

Why BungeeCord Prometheus Exporter?

  • monitor your server infrastructure
  • track your players, events, and servers
    • player pings histogram
    • online player list
    • server list ping, connects, disconnects, kicks, and chat event counters
  • automates the collection, management and viewing of your data
  • get alerts for service outages

Runtime Requirement

  • Java 17+

Compatible Proxy

  • Velocity
  • BungeeCord / Waterfall
  • RedisBungee

Quick Start

Drop the bungeecord-prometheus-exporter.jar into your plugins directory and start your proxy server.

After startup, the Prometheus metrics endpoint should be available at localhost:9985/metrics (assuming localhost is the server hostname).

If running inside the docker, change the host to 0.0.0.0 to allow Prometheus and other services to reach the endpoint.

The metrics port can be customized in the plugin's config.json (a default config will be created after the first use).

Prometheus config

Add the following job to the scrape_configs section of your Prometheus configuration prometheus.yml:

Single Proxy

  - job_name: 'bungeecord'
    scrape_interval: 5s

    static_configs:
      - targets: [ 'localhost:9985' ]
        labels:
          proxy_name: 'proxy'

Multiple proxies

You can use labels in your Prometheus scrape configuration to distinguish between multiple proxies:

  - job_name: 'bungeecord'
    scrape_interval: 5s

    static_configs:
      - targets: [ 'localhost:9985' ]
        labels:
          proxy_name: 'proxy1'
      - targets: [ 'localhost:9226' ]
        labels:
          proxy_name: 'proxy2'

Import Grafana Dashboard

  1. Navigate to Grafana -> Dashboards -> Import
  2. Paste in or upload default dashboard
  3. default dashboard

Notes

RedisBungee is supported but disabled by default . RedisBungee metrics are not used in the dashboard because we are already collecting metrics from single instances. However, if you still want to integrate with RedisBungee, free feel to enable it and modify the dashboard.

Links

This project is indexed at: