Skip to content

Scan and store metrics on Servers for various Steam games, using the Steam Server Query Protocol

License

Notifications You must be signed in to change notification settings

Tyler-OBrien/UncoreMetrics

Repository files navigation

Uncore Metrics - Very Work In Progress

Uncore Metrics collects metrics and information on servers for various steam games, using the steam server query protocol. Postgres is used for full text search and storing/querying of server information directly. Clickhouse is used to store statistics from each query, eventually being used to display graphs of player count over time, etc.

The Steam Collector is a generic service worker that is used to query and collect statistics on all of the various games. Each game has its own resolver, used modify how the servers for that game are queried/collected. For example, Post Scriptum. The models themselves for each game type contain information about how each custom property matches to what is received from the steam queries, mainly A2S_Rules.

UncoreMetrics.Data, contains the models for each of the database models and various EF Core/Clickhouse setup items.

The API is implemented in ASP.NET Core as a simple REST API, and is used to get information displayed by the Front end, which is in Next.js using Typescript.

The Steam Collector uses a modified Steam Query Library that uses a single UDP Socket to send/recv from mutiple servers at once, instead of spawning a single socket per connection/server. It can scan a few thousand servers a second, the biggest slow down being servers which are dead/won't respond.

About

Scan and store metrics on Servers for various Steam games, using the Steam Server Query Protocol

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages