FAForever / server

The servercode for the Forged Alliance Forever lobby

Home Page:http://www.faforever.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Send estimated wait time when joining a queue

BlackYps opened this issue · comments

The server already logs the wait time of each search party. This data would need to be aggregated for rating brackets and sent to the client, which can then display it to the user.
Challenges:

  • The wait times vary a lot depending on how many people are online, so we would need to factor that in somehow
  • we need to come up with a fallback if a particular rating bracket has too little data available

Implementation idea:
We log the wait time together with total online players at that moment and the rating of the matched players. With some linear regressions we can then provide an estimate for a given rating and current number of online players

I've opened a PR to add the player count of the queue as a dimension to the matchmaking search time metric in Prometheus. How does one take a look at these metrics for PROD?

You need to ask our server admins for access. But I am not sure how having this info in Prometheus is supposed to help?
The wait time calculations need to happen in the server, so they can be sent to the clients

You need to ask our server admins for access. But I am not sure how having this info in Prometheus is supposed to help? The wait time calculations need to happen in the server, so they can be sent to the clients

My idea was to add the dimension to prometheus to get initial regression modelling for the server calculations. We'd need a sufficiently large sample size for the linear regression so we can store it in prometheus to perform the regression. The other option is to store it in the DB for queue, # of players in the queue, and time it took to find a match.

I'd say it should be stored in the db otherwise it would be hard to get the info out of Prometheus again

I'd say it should be stored in the db otherwise it would be hard to get the info out of Prometheus again

Okay too easy. I'll close that PR and get to work on that change.