unixfox / grafana-stratusnetwork Goto Github PK
View Code? Open in Web Editor NEWScripts and programs for generating the grafana dashboard for the Minecraft server Stratus Network
Home Page: https://graph.unixfox.eu
Scripts and programs for generating the grafana dashboard for the Minecraft server Stratus Network
Home Page: https://graph.unixfox.eu
When there are 3 servers in the output of /servers parse incorrectly the output.
Example to test on it:
Current Rotation (Medium) (1 of 2)
1. Mutiny by Avaleer and Sucitare
2. Western Port by Riilo and Vior_
3. Azure by _3Each and Obelistics
4. Clearcut by rockymine, Obelistics, and DoomyBoy
5. Equinox by nixter1029 and ItzaMeLuigi
6. Tetrad by Chicky
7. Desert Sanctuary by Strangey and Avaleer
8. Fractal Descent by teheggy and Reshif
The time limit is 07:30 with the result default
Servers (Page 1 of 1)
[Mixed] 23/32 (11) 07:17 Facility
[Staging] 17/50 (6) 00:00 Stratus UHC - Beta
[Lobby] 3
Next map: Desert Sanctuary by Strangey and Avaleer
I'm sure the difficulty of this is great, but it would be awesome to have a full conversation with unixbox so that context isn't lost like when normally talking to CleverBot.
To prevent some memory or cache from filling up, it would only last for like a minute or when the player leaves (whichever comes first).
Track when whole network is down, show a status on the graph and on Discord (related with #33).
Bonus for discord: Post the message inside the the channel #general and with the ability to be ping when the server is on again.
A panel of the avatar of each players playing on the server mixed.
Make it scrollable so that it doesn't take too much place.
Documentation: https://github.com/PrismarineJS/mineflayer/blob/master/docs/api.md#botplayers
Submitted by @sharkskill
Currently, the prediction program use the default server which is siceth's server, I should host my own stratus network website mirror.
And for the map picture move that to AWS lambda because it's ideal and free.
Currently I only track the status of the proxy, add a panel to tell if the lobby is down or the proxy.
Submitted by "CDS_"
Status of the server mixed.
Get client ping and detect if higher than minimal ping when the server just restarted.
New metric: top donator on buycraft
Given the total number of players on a server, the maps in each rotation, and the list of rotations and what number of players they activate on, it should be possible to deduce if the rotation's going to switch (and if so, what the next map will actually be).
Currently I clear the table of recent matches and the rotation list with TRUNCATE
but that's a bad way because it renders strangely on grafana.
Implement a way to update the table instead of trunk it.
New metric: "MVP" to "about the server mixed" panel and the "recent matches" panel
Submitted by "CDS_"
Next map is empty if /next
doesn't have a by.
The regex is a bit broken.
Because the way metrics are stored SQL is the wrong choice and the noSQL should be used because it's more flexible when I need to add new metrics and is natively compatible with NodeJS.
Moreover I plan to migrate the bot and grafana to Azure and it offers 5GB stockage of Azure Cosmos DB compatible MongoDB.
Use redis for quick and temporary data like kills of the current match.
Currently too many things are hardcoded for the mixed server.
It would be great to make it more flexible for others stratus network servers or others PGM servers so that anyone can have his own unixbot on his private server.
Ability to disable some features too by implementing a plugin thing.
Show the prediction after the collum "winner" inside the "recent matches" panel because there is no way when the match is ended to see what was predicted by the machine.
What unixbox can do right now is great, but player interaction is limited to however CleverBot responds. Ideally, some regex statements should catch questions players commonly ask (that are Stratus-related); i.e:
That little bit of parsing would really help hook the bot into the server better, although I can see where potential snares can be hit.
Some player spam the bot with the same sentence.
Detect that and prevent it. With levenshtein distance?
Sometimes the bot can't reconnect after a crash because it's already logged in.
The error of the crash is "EPIPE".
In this situation exit completely the process so that systemd restart a new one.
Not sure if it's intended to ignore obs. If it's intended, I think it would be better to call it "Players ingame on Mixed" or "Players playing on Mixed"
It shows 1 player on mixed: https://gyazo.com/09ce693d1f04df6f4f69ec3b5cb665b8
But there are 4 Players on the server: https://gyazo.com/830c4902cd84324d063ea0a10fe355ce
Because the win predictor pulls stats from the Stratus website and the website doesn't properly remove players (see this issue), the statistics displayed is the result of statting incorrect players as people join and leave the match.
In other words, the maximum accuracy of the utility is when it's ran at the near-beginning of the match (around 30 seconds in) or when upwards of 95% of the original players are still playing.
Potential fixes:
Submited by _hunter__
Count the blocks destroyed on mixed and store that in a database.
The plan is to use AWS dynamodb because it's free.
Working on a single file is a bad thing, I should dissect the main file into multiple files for readability and maintainability.
Could work as plugins.
https://old.reddit.com/r/node/comments/bea9ab/bulletproof_nodejs_project_architecture/
New metric: panel of the most recent top killers on the server
Submitted by "CDS_"
It's kinda like MVP -- mostly pointless, but it'll give something for people to try for.
/rot
, /tl
and /next
only on world change/servers
. Idea(s):
Rotation update
on the server appears: https://i.imgur.com/iJl5Vv0.png (optional)Add the leaderboard from this page: https://stratus.network/stats
Submitted by @fulanit0
New metric: kills and deaths of every + kd ratio on recent matches panel
Submitted by @dragonrider455
Currently, I parse the packet trough an unstable API provided by mineflayer but they recently released a stable one: PrismarineJS/mineflayer@cd53dc8
Not everyone knows or read the code of the bot, it would be great to some times advertise the commands of the bot in the obs chat so that it doesn't spam the global chat and thus having more players know the existence of the various commands of the bot.
Currently the portion of code that detect the end of the match is an ugly long regex: https://github.com/unixfox/grafana-stratusnetwork/blob/master/bot.js#L197
I need to find a better way to detect that end of the match.
Currently the regex doesn't detect Blue Team wins!
Shouldn't trigger on everything that have wins!
before like this: https://i.imgur.com/wKNvq3Z.png
As of now, I'm a little bit confused as to what the "notification sound" does, and when it notifies you.
My suggestion: add a brief description when hovering over the on/off
toggle. Something like "rings briefly when the match ends" (if this is what it does).
It's awesome that unixbox checks if someone's on the spectator team now, as to not spam the chat. But if the observer uses /g, unixbox responds with /t when he should probably respond in the same chat channel as where the message was sent.
Expose a public API so that external programs can query information about the stratus network server.
Endpoint list:
/stats <player>
bot.players
gives)I don't doubt that people will begin noticing the bot's constant online presence; the bot itself may be a good way to promote this project to interested ears.
When and only when the bot receives a /msg, it may /reply with a custom-message, such as "I help track the statistics of the match for the Stratus Network Server Monitoring project! See more here: https://stratus.network/forums/topics/5b7b4498ba15960001003ef9"
Be sure to have this toggled solely for /reply (and not any other form of chat) as otherwise it may be considered spam. A player may send the bot a message, the bot should respond to the player only once (or after each individual message).
Maybe have the bot use /msg <player> <message>
instead of /r
, as the latter can be unreliable.
A discord bot for the community to get informations about the server without joining the server.
A panel where one could enter the username of a player and get the statistics of him (kills, hours played, kd, etc).
Use a variable to get the username.
From the suggestion on the forums, which I agree with (https://stratus.network/forums/posts/5b7e41f0ba159600010045da) - I've sent a link to the game ending sound to @unixfox.
Currently I fetch the image from the map page of stratus.
Implement a way to fetch them instead from the mcresourcepile repositories: https://github.com/MCResourcePile
Great idea from @CrazyisCreeps:
That's where it might be simpler to set up your own repository of images, grabbing them from the ResourcePile repos? Like taking each repo and deleting every other file type, and merging them all into one repo
Note to me: It's better to make it using javascript instead of using PHP.
New metric: the time remaining of the match currently played on mixed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.