Het artikel beschrijft de technische werking van Fog-Bank, een systeem dat alle frames van FogCam verzamelt en archiveert.
De opvangmethode Er worden vier verschillende 'catchers' gebruikt (een eigen server, Fogline op Cloudflare, een Cloudflare worker en een lokale machine) die met intervallen tussen de 7 en 20 seconden frames ophalen. Om te voorkomen dat verouderde versies uit de cache worden opgehaald, worden unieke query-strings en no-cache headers gebruikt. De frames worden opgeslagen als lossless JPEG XL met een sha-256 fingerprint in Cloudflare R2.
Monitoring en status Een statusbord controleert het volledige proces en verstuurt Telegram-meldingen bij storingen. Er wordt een chronologisch logboek bijgehouden van uitval, waarbij onderscheid wordt gemaakt tussen fouten aan de zijde van FogCam en problemen met de eigen server.
Het net: hoe elk frame van FogCam wordt gevangen
De opvangmethode
Vier 'catchers' op drie verschillende netwerken vragen FogCam om zijn foto:
- Een poller op mijn eigen server elke 7 seconden.
- Fogline op Cloudflare elke 15 seconden (deze houdt een buffer van 30 dagen bij).
- Een Cloudflare worker elke 20 seconden die direct naar permanente opslag schrijft.
- Een machine bij mij thuis elke 15 seconden.
Elke catcher pusht elk frame dat hij ontvangt naar het archief. Elke vijf minuten en elke nacht wordt er een controle uitgevoerd om eventuele frames die tijdens het pushen zijn verloren gegaan, alsnog op te halen.
Elk verzoek vraagt om het daadwerkelijke bestand (via een unieke query-string en no-cache headers), omdat ik in augustus ontdekte dat de webserver-cache van FogCam kopieën uitstuurde die minuten oud waren. Elk frame wordt benoemd op basis van de uploadtijd van FogCam, voorzien van een sha-256 fingerprint, gestempeld zonder opnieuw te comprimeren, opgeslagen als lossless JPEG XL en in dezelfde minuut gekopieerd naar Cloudflare R2.
Monitoring en status
Een statusbord controleert elke paar minuten elke stap in het proces, van de camera tot YouTube, en stuurt een melding via Telegram wanneer een onderdeel stopt. De pagina lijst alle uitval tot nu toe chronologisch op, waarbij is aangegeven of de fout bij mij of bij FogCam lag:
- Serveruitval van FogCam op 13 augustus.
- Een freeze van 64 uur bij FogCam van 8 tot 10 september.
- Een uitval van 40 uur van mijn eigen server binnen diezelfde freeze (veroorzaakt door een volle schijf).
- Overige incidenten.
FogCam publiceert één foto per keer en gooit deze weg zodra de volgende binnenkomt. Fog-Bank bewaart ze echter allemaal. Wanneer er iets misgaat (aan mijn kant of die van FogCam), laat het verslag precies zien wanneer, hoe lang en wiens schuld het was.
Het net: hoe elk frame van FogCam wordt gevangen
De opvangmethode
Vier 'catchers' op drie verschillende netwerken vragen FogCam om zijn foto:
- Een poller op mijn eigen server elke 7 seconden.
- Fogline op Cloudflare elke 15 seconden (deze houdt een buffer van 30 dagen bij).
- Een Cloudflare worker elke 20 seconden die direct naar permanente opslag schrijft.
- Een machine bij mij thuis elke 15 seconden.
Elke catcher pusht elk frame dat hij ontvangt naar het archief. Elke vijf minuten en elke nacht wordt er een controle uitgevoerd om eventuele frames die tijdens het pushen zijn verloren gegaan, alsnog op te halen.
Elk verzoek vraagt om het daadwerkelijke bestand (via een unieke query-string en no-cache headers), omdat ik in augustus ontdekte dat de webserver-cache van FogCam kopieën uitstuurde die minuten oud waren. Elk frame wordt benoemd op basis van de uploadtijd van FogCam, voorzien van een sha-256 fingerprint, gestempeld zonder opnieuw te comprimeren, opgeslagen als lossless JPEG XL en in dezelfde minuut gekopieerd naar Cloudflare R2.
Monitoring en status
Een statusbord controleert elke paar minuten elke stap in het proces, van de camera tot YouTube, en stuurt een melding via Telegram wanneer een onderdeel stopt. De pagina lijst alle uitval tot nu toe chronologisch op, waarbij is aangegeven of de fout bij mij of bij FogCam lag:
- Serveruitval van FogCam op 13 augustus.
- Een freeze van 64 uur bij FogCam van 8 tot 10 september.
- Een uitval van 40 uur van mijn eigen server binnen diezelfde freeze (veroorzaakt door een volle schijf).
- Overige incidenten.