Giter Site home page Giter Site logo

unixfox / grafana-stratusnetwork Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 0.0 247 KB

Scripts and programs for generating the grafana dashboard for the Minecraft server Stratus Network

Home Page: https://graph.unixfox.eu

JavaScript 92.10% Shell 4.08% Perl 3.52% Dockerfile 0.30%
dashboard grafana influxdb minecraft mysql stratus-network

grafana-stratusnetwork's People

Contributors

dependabot-support avatar siceth avatar unixfox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

grafana-stratusnetwork's Issues

Invalid parsing when three servers in the ouput of /servers

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

Continue CleverBot conversations

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).

retrospective of each match

Introducing a retrospective of every match on Mixed just like Google news do with the football matches:

Stats:

  • KD, kills, deaths of each players
  • wool, monument, etc...

Track when the bungeecord is down

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.

Offload siceth's server

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.

Advanced track of the status of the server

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.

Get the next map more accurately

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).

Fix next map

Next map is empty if /next doesn't have a by. The regex is a bit broken.

Migrate to noSQL

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.

Give unixbox common query response functionality

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:

  • What time is it? Give the time instead of the CleverBot "I don't know, what is it?"
  • Who will win this match? Give the prediction instead of the CleverBot default "I will win"
  • What is the mutation?
  • and so on

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.

Reduce spam

Some player spam the bot with the same sentence.
Detect that and prevent it. With levenshtein distance?

Win Predictor fires too often

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:

  1. Only run the predictor program once either by detecting when to run it or use caching
  2. Adjust the predictor program to pull a player list from the bot continuously, rather than from the website

Announce first kill

It's kinda like MVP -- mostly pointless, but it'll give something for people to try for.

Random tip in the obs chat

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.

More data for the GG at the end of the match

  • The player with the most kills
  • The longest shot
  • most common weapon
  • least common weapon
  • overall number of kills and deaths
  • first kill of the match (@Siceth)
  • Highest killstreak (@sharkskill)
  • Highest/lowest K/D ratio (@sharkskill)
  • Most blocks placed/broken (@sharkskill)
  • Most blocks traveled (@sharkskill)
  • Most raindrops earned (@sharkskill)
  • Most damage taken/dealt (@sharkskill)
  • Most bow shots (@sharkskill)
  • stats command for requesting K/D
  • ability to request these stats at any moment

Add a brief description of the "notification sound" functionality

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).

Unixbox spectator responses

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.

Public API for external programs

Expose a public API so that external programs can query information about the stratus network server.

Endpoint list:

  • teams list (related to #15) : https://stratusapi.unixfox.eu/teams
  • /stats <player>
  • data collected for grafana
  • Top 10 kill shots of every map (for @nixter1029)
  • State of the objectives of the match: #29
  • Data about each player on the server (his ping, the info about his entity, everything that bot.players gives)

Have the static bot reply to player-issued in-game messages with a basic explanation of its purpose/features

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.

Discord bot

A discord bot for the community to get informations about the server without joining the server.

New way to fetch the image of the current map

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.

Time remaining

New metric: the time remaining of the match currently played on mixed

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.