← Alt arbeid

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
Analytics platform leaderboard
En rangering bygget fra opplastede kamplogger.

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

  1. 01

    Last opp

    En rå kamplogg på opptil 300 MB går inn i en jobbkø.

  2. 02

    Tolk

    En worker-tråd gjør rå hendelser om til kamper, spillere og måltall.

  3. 03

    Lagre

    Én skrivevei inn i normaliserte tabeller, gruppert med beslektede logger.

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

← Alt arbeid · Programvare og KI for bedrifter