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.