Spark Web API
A Web API for Spark
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Spark Web API
Spark Web API
A small plugin that will host a Web API for Spark.
This plugin is made for Paper. You are free to fork this on GitHub and port this to other mod loaders.
This README is a simplified version of the Project's GitHub README.
Installation
First, Install Spark to your Paper server. Even though Paper servers for Minecraft 1.21 and up has Spark built-in, a standalone plugin version is required for this plugin.
Then, Install Spark Web API. You generally would download the JAR with -all at the end of the file name.
When starting your server, Please remember to set the `paper.preferSparkPlugin` system property to `true`
Here's an example on how to do so: ``` java -Dpaper.preferSparkPlugin=true -jar paper-1.21-129.jar ```
Configuration
When starting the server for the first time with the plugin, The plugin will generate a config file. The config file allows you to change the port of the server, which routes are enabled, and add additional headers to responses.
```yaml port: 3000 routes: tps: true mspt: true sys_cpu: false proc_cpu: false gc: false headers: enabled: false ```
API paths
/api/tps
Return the TPS of the past 10 seconds, 1 minute, 5 minutes, and 15 minutes.
Example Response: ```json { "tenSeconds": 19.999926688268733, "oneMinute": 20.000035730063832, "fiveMinutes": 20.00000458740105, "fifteenMinutes": 19.94021043987079 } ```
This route will return 500 Internal Server Error if Spark cannot get the TPS of the server.
/api/mspt
Returns the MSPT value for the past 10 seconds and 1 minute.
Example Response: ```json { "tenSeconds": { "min": 6.523605, "max": 2692.747083, "mean": 66.92731750515465, "median": 23.108289 }, "oneMinute": { "min": 6.523605, "max": 2692.747083, "mean": 66.92731750515465, "median": 23.108289 } } ```
This route will return 500 Internal Server Error if Spark cannot get the MSPT of the server.
/api/gc
Returns the information about the Garbage Collector.
Example Response: ```json { "G1 Young Generation": { "name": "G1 Young Generation", "frequency": 22328, "avgTime": 81, "totalCollections": 3, "totalTime": 243 }, "G1 Old Generation": { "name": "G1 Old Generation", "frequency": 0, "avgTime": 0, "totalCollections": 0, "totalTime": 0 } } ```
/api/cpu/sys
Returns the system CPU usage in percentage.
Example Response: ```json { "tenSeconds": 0.20461582280862525, "oneMinute": 0.31800215079510524, "fifteenMinutes": 0.39118254849183964 } ```
/api/cpu/proc
Returns the Minecraft process CPU usage in percentage.
Example Response: ```json { "tenSeconds": 0.025064927938294894, "oneMinute": 0.030417615615548597, "fifteenMinutes": 0.06684861042724896 } ```
License
This plugin is licensed under the MIT License.