Skip to main content

Metrics exporter for Pterodactyl

Project description

Pterodactyl Exporter

Please use the Discussion for Support rather than the Issues.

A python script that exports performance metrics from Pterodactyl Panel 1.x via the Client API, converts the data to the correct format and provides a prometheus target.

This can be used for time series monitoring of Pterodactyl game servers and visualization with Grafana.

Feel free to try this script and submit an issue if needed.

How to install

What you need:

  • Linux server (should run on Windows as well, but is only tested in a linux environment)
  • Prometheus
  • Python (3.10)
  • Pterodactyl client API key
    • Service account with read only is recommended
    • You only need to set Backup->Read as permission for the account to the server you want to monitor.

Run as Pterodactyl Server

  • Download the Egg JSON from egg/egg-pterodactyl-exporter.json or the releases
  • Import the Egg into the Nest of your choice
  • Create the server from the egg and fill in the required config values
  • Run the server

Run as service

Installed as user "prometheus":

  • To install with pipx:
pipx install pterodactyl-exporter
  • To install with pip (not recommended, could break system dependencies):
pip install pterodactyl-exporter
  • Create directory pterodactyl_exporter.

  • Create the config file config.yml in that directory (set the values as needed, it's recommended to use https):

host: panel.example.com
host_port: # This is the port of the panel (optional)
port: 9531 #Standard port for the exporter
api_key: APIKEY_APIKEYAPIKEYAPIKEY
https: true
ignore_ssl: false
server_list_type: owner
query_interval: 10 # Interval in seconds between each query to the Pterodactyl panel (default: 10)
  • Create systemd service /etc/systemd/system/pterodactyl_exporter.service:
[Unit]
Description=Prometheus Server
After=network-online.target

[Service]
User=prometheus
Restart=on-failure
ExecStart=pterodactyl_exporter \
--config-file=/home/prometheus/pterodactyl_exporter/config.yml

[Install]
WantedBy=multi-user.target
  • Enable and start the service.

  • Add a job configuration:

- job_name: 'pterodactyl_exporter'
   static_configs:
     - targets: ['localhost:9531']
  • To get the Grafana dashboard, import id 16575. Alternatively download the JSON file from the releases.

To show and hide servers from being monitored, just remove the read permission of the service account on that Server

Run with Docker

  • Create a folder named pterodactyl_exporter

  • Download the config file from GitHub:

curl -fsSL -o config.yml https://raw.githubusercontent.com/LOENS2/pterodactyl_exporter/master/config.example.yml
  • Create a folder named docker

  • Download the docker-compose.yml into that folder:

curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/LOENS2/pterodactyl_exporter/master/docker/docker-compose.yml
  • Run the container:
docker-compose up -d

Run manually

Only meant for testing purposes, not recommended for production use!

  • Clone the project:
git clone https://github.com/LOENS2/pterodactyl_exporter.git
  • Change to the cloned directory
cd pterodactyl_exporter
  • Install dependencies:
python -m pip install -r requirements.txt
  • Run with python:
python -m pterodactyl_exporter.pterodactyl_exporter --config-file=config.example.yml

Troubleshooting

You can view the output with (Time is UTC):

sudo journalctl -u pterodacyl_exporter.service -b --since "2024-12-14 13:45:27"

Post any stacktraces as an Issue.

With special thanks to @grimsi for helping me with docker.

© LOENS2 2023

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pterodactyl_exporter-1.0.6.tar.gz (27.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pterodactyl_exporter-1.0.6-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file pterodactyl_exporter-1.0.6.tar.gz.

File metadata

  • Download URL: pterodactyl_exporter-1.0.6.tar.gz
  • Upload date:
  • Size: 27.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pterodactyl_exporter-1.0.6.tar.gz
Algorithm Hash digest
SHA256 4531d0713abd47f0a3600db52b9519f80da8fb8ed252fe83eab8ccd221b3fb13
MD5 eee8413d36441a77c8ed587e9cd19ddf
BLAKE2b-256 7c9e1dc83e1f6ed328143d73b97aa1a2032a548e1cdcc97d5257816ecd567951

See more details on using hashes here.

File details

Details for the file pterodactyl_exporter-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for pterodactyl_exporter-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6b5367c7245fe095e5220b828fcb0c42d846fc97b3e211439862da317e0979df
MD5 156e39be02b7b3006dcb436b00fe13f8
BLAKE2b-256 28a302221216b4954137833ebf625c78d659be03cf9f4fae6727e48d460a61ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page