Multi-tenant analyseplattform: fra rå logg til rangert resultat
En gratis nettplattform der spillere laster opp kamplogger fra et spill på opptil 300 MB og får tilbake analyser kamp for kamp, persentiler og rangeringer. Tolkingen skjer på serveren i worker-tråder, resultatene lagres i en relasjonsdatabase, og én kodebase betjener hver tenant fra sin egen container. Bygget og driftet av Agentas.
- Status
- I drift, gratis for spillerne
- Arkitektur
- Ett image; egen container og database per tenant
- Teknologi
- Node.js, Express, SQLite, worker-tråder
- Kildekode
- Privat — gjennomgang på forespørsel
Hva den gjør
Tolking i worker-tråder
En opplastet logg går inn i en jobbkø og tolkes i en egen worker-tråd, slik at webserveren holder seg responsiv. Antall workere er begrenset ut fra antall CPU-er, og når køen er full, får nye opplastinger en tydelig beskjed om å prøve igjen litt senere.
Én parser, én skrivevei
Nettleseren og serveren deler samme parserkode, og hver tolkede logg lagres gjennom én og samme innsettingsvei. Når tolkingen blir bedre, kan en admin kjøre hele arkivet gjennom den nye versjonen.
Rangeringer beregnet på serveren
Persentilene er verdibaserte, der resultatet ditt måles mot det beste i klassen din, og de beregnes bare på serveren, så en klient kan ikke forfalske dem. Hurtigbufrede resultater tømmes når en admin endrer dataene bak dem.
Beslektede opplastinger gruppert automatisk
Flere opplastinger fra samme økt grupperes etter tidsvindu, overlapp i spillere og like kamper, og hver logg får en relevansscore, så duplikater og logger med lav verdi er lette å finne.
Privat modus
En spiller kan analysere en logg uten å publisere den. Serveren tolker den i minnet og sender resultatet tilbake uten å skrive noe til disk eller database.
Sammenlign med simulatoren
Fra en bosskamp kan en spiller bygge opp sitt eget oppsett i simulatoren vår og se hvordan resultatet står seg mot det simuleringen sier var mulig. Begge nettstedene bruker samme innlogging.
Aktuelt hvis du ser etter…
epoglogs.com er en gratis plattform for spillere, og teknikken bak passer for enhver virksomhet som trenger svar ut av filer eller hendelser.
- Analyse av kamplogger for spillmiljøet ditt: last opp en rå logg på opptil 300 MB og få analyser kamp for kamp, persentiler og topplister.
- En loggparser som tåler store filer: hver logg tolkes på serveren i en egen worker-tråd bak en jobbkø, så nettstedet holder seg responsivt.
- Logganalyse av egne data i bedriften: vi bygger det samme mønsteret for kunder, fra opplasting og tolking til tall beregnet på serveren i en ryddig datamodell.
- En multi-tenant-plattform på én kodebase: ett Docker-image betjener hver tenant fra egen container og database, og vi setter opp slike plattformer for kunder.
Vi bygger dette for kunder: Data- og rapporteringsplattform · Skreddersydd programvare og interne verktøy
Slik fungerer den
- 01
Last opp
En rå kamplogg på opptil 300 MB går inn i en jobbkø.
- 02
Tolk
En worker-tråd gjør rå hendelser om til kamper, spillere og måltall.
- 03
Lagre
Én skrivevei inn i normaliserte tabeller, gruppert med beslektede logger.
- 04
Ranger
Persentiler og topplister beregnet på serveren, bufret til dataene endres.
Slik er den bygget
Plattformen er én Node.js- og Express-tjeneste med en frontend i ren JavaScript og få avhengigheter. Det samme Docker-imaget betjener alle tenants: en innstilling ved oppstart velger tenant, og alt som er tenant-spesifikt, fra merkevare til metadata for søkemotorer, hentes fra egne datafiler per tenant. Hver tenant kjører i sin egen container med sin egen SQLite-database, i separate dev- og prod-miljøer, slik at én tenant kan endres eller slås av uten å berøre en annen.
Lagringen er SQLite i WAL-modus med rundt 60 tabeller og håndskrevet SQL. Da metadataspørringer krøp opp i 18 til 32 sekunder, sporet vi årsaken til kampdata på flere megabyte lagret inne i hovedradene, flyttet dem til egne tabeller med en sikret migrering, og gjorde spørringene omtrent 200 til 400 ganger raskere. CI bygger imaget én gang, og serveren henter akkurat det merkede imaget over et privat nettverk.
Ingeniørarbeidet
- Tolking i worker-tråder med begrenset pool og mottrykk
- Rundt 60 tabeller, håndskrevet SQL, ingen ORM
- Metadataspørringer gjort omtrent 200–400× raskere
- Streng innholdssikkerhetspolicy og escaping av brukerinnsendt tekst
- Bare ni kjøretidsavhengigheter, uten frontend-rammeverk eller bundler
- Egne dev- og prod-miljøer per tenant, rullet ut fra hver sin gren
Spørsmål
Hva gjør et analyseverktøy for kamplogger?
Det leser hendelsesloggen et spill skriver under kamper, og gjør den om til tall per kamp og per spiller. På epoglogs.com skjer tolkingen på serveren, og resultatene blir analyser, persentiler og topplister.
Er epoglogs.com gratis?
Ja. Det er en gratis tjeneste for spillere, bygget og driftet av Agentas.
Kan jeg analysere en logg uten å publisere den?
Ja. I privat modus tolker serveren loggen i minnet og sender resultatet tilbake uten å skrive noe til disk eller database.
Vil du ha noe lignende?
Det samme mønsteret passer enhver virksomhet som samler inn filer eller hendelser og trenger svar ut av dem: tolk utenfor selve forespørselen, lagre én gang i en ryddig modell, regn ut tallene som betyr noe på serveren, og hold hver kundes data på sitt eget sted.
Ta kontakt