Datahotellet ustabilt mars 2022 — rate-limiting innført
-
I dei siste vekene har Digdir sitt Datahotell (hotell.difi.no) vore ustabilt grunna svært høg trafikk — på det meste over 1000 forespørslar i sekundet. Dette har ført til at datahotellet blir overbelasta og må restartast.
Kva er Datahotellet?
Datahotellet er ei teneste frå Digdir der verksemder i offentleg sektor kan publisere datasett, og konsumentar kan hente ut data, enten ved å laste ned heile datasettet eller gjere oppslag via eit API.Datahotellet er over 10 år gammalt, og i dag er det i utgangspunktet ikkje ope for å legge ut nye datasett eller sleppe til nye verksemder som vil publisere data. Den tekniske løysinga er gammal, og skal ikkje vidareutviklast.
I prosjektet Datafabrikken jobbar ein med å lage ei ny løysing som på sikt skal erstatte dagens datahotell.
Rate limiting vert snart skrudd på
Vi innfører rate-limit på datahotellet — ei grense på tal på forespørslar pr. sekund pr. IP-adresse.
Dersom ein kjem over grensa, vil ein få HTTP-feilkode 429 («Too Many Requests»).Nøyaktig kvar grensa går vil vi prøve oss fram på. Vi begynner med ei grense på 10 forespørslar pr. sekund pr. IP-adresse.
Vi ser på å skru på dette allereie i dag, fredag 25. mars. Det er kort varsel, men alternativet er at datahotellet vert utilgjengeleg for alle. Forrige helg gjekk datahotellet ned 7 ganger.
Sperre IP-adresser
Ved svært høg bruk kan vi komme til å sperre IP-adresser. Vi vil helst unngå dette, men det kan vere aktuelt for å hindre at datahotellet vert utilgjengeleg for alle.Korleis kan eg bidra til eit stabilt datahotell?
Unngå for mykje trafikk på kort tid
Begrens kor mange forespørslar du gjer samtidig, eller vent med å gjere eit nytt kall til datahotellet før du har fått tilbake svar på forrige API-kall.Last ned heile datasettet
Vi ser at det er mange som lastar ned heile datasett via API-et ved å hente ut ei side om gangen. (?page=1, ?page=2 osv.)
Ei side (page) gir 100 rader. For store datasett vert dette svært mange API-kall.Eksempel: For datasettet «brreg/enhetsregisteret» med over 1 million rader vert dette 10 000 API-kall.
Du bør heller laste ned heile datasettet som CSV og konvertere til ønskt format.
Driftsmeldingar via @datahotellet på Twitter
Vi postar driftsmeldingar via eigen Twitter-konto.
Vi anbefaler også å sjå på dokumentasjon på hotell.difi.no -
Rate-limiting vart skrudd på kl. 13:08 og ser ut til å fungere fint.
-
Eit par punkt å merke seg når det gjeld nokre av dei mest brukte datasetta på Datahotellet.
Hent Enhetsregisteret frå data.brreg.no i staden for
Du bør vurdere å hente Enhetsregisteret frå data.brreg.no i staden for Datahotellet.Enhetsregisteret er å finne på Datahotellet (datasetta brreg/enhetsregisteret og brreg/underenheter). Sidan Enhetsregisteret først vart publisert via Datahotellet for om lag 10 år sidan, har Brønnøysundregistrene lansert data.brreg.no. Sidan dette er hovud-distribusjonen, bør du heller bruke denne.
Fordelar ved å hente frå data.brreg.no
Det er fleire fordelar, mellom anna at data er oppdatert i sanntid. Eksempel: ein ny organisasjon X er registrert i Enhetsregisteret 31. mars. Dersom du slår opp på X i Datahotellet, vil du ikkje få nokon treff fordi datasettet i datahotellet kun vert oppdatert ein gang i døgnet.Dersom ein slår opp på eit organisasjonsnummer som er sletta, så kan ein få ut informasjon om at enheten er sletta og dato den vart sletta. I Datahotellet blir sletta enheter fjerna frå datasettat, så ein kan berre anta at ein organisasjon er sletta dersom ein ikkje får treff på organisasjonsnummeret.
API-et på data.brreg.no støttar også å gjere direkteoppslag der ein slår opp på fleire organisasjonsnummer i 1 API-kall.
Sjå dokumentasjonen på data.brreg.no for detaljar.
Datahotellet som fallback
Eit tips; du kan rigge din integrasjon til å hente frå data.brreg.no og setje opp backup-oppslag mot Datahotellet. At dersom data.brreg.no er nede, så slår ein opp i Datahotellet i staden for. Dersom oppetid er viktig for deg, så er dette ein god måte å sikre oppetida mot dei få gangane data.brreg.no er nede.Ikkje bruk ELMA til å sjekke om ein organisasjon kan motta efaktura
Dersom du brukar ELMA-datasettet (i Datahotellet: difi/elma/participants) til å slå opp på organisasjonsnummer for å sjekke om ei verksemd støttar eit visst dokumentformat (til dømes efaktura), så bør snarast legge om prosessen din.Årsaka er at norske verksemder også kan vere registrerte andre stader enn i ELMA. Dersom oppslag i ELMA gir negativt svar, så kan det likevel vere at verksemda støttar til dømes efaktura fordi den er registrert ein annan stad.
Les meir om dette i ein eigen diskusjonstråd.
Redigert 4/4: La til at data.brreg.no også gir info om sletta enheter.
-
-
Innstramming i rate-limiting
I går kveld, 31. august, stramma vi ytterlegare inn på rate-limiting.
Bakgrunnen er høg trafikk som førte til at datahotellet vart overbelasta og dermed utilgjengeleg for alle.Grensa på rate-limiting er framleis 10 forespørslar i sekundet pr. IP-adresse.
Innstramminga er at støtte for «burst» er skrudd av. Når burst var skrudd på, vart ekstra forespørslar som oversteig grensa på 10 forespørslar i sekundet sett i kø. Forespørslane vart så vidaresendt til datahotellet etter ei viss forsinkelse. No blir slike ekstra forespørslar avvist med ein gang med HTTP-feilkode 429.
Vi ser dette skapar problem og ser på om det er nokon justeringar vi kan gjere.
OPPDATERT kl. 12:45: vi har senka rate-limit til 5 forespørslar i sekunder pr. IP-adresse, men skrudd på «burst» igjen.
-