મલ્ટી-રીજન હેલ્થ-ચેક એગ્રીગેટર બનાવવું

સાઓ પાઉલોમાં એક યુઝર ડેડ એજ નોડ (dead edge node) પર પહોંચે છે. તેઓ બગ રિપોર્ટ ફાઇલ કરતા નથી. તેઓ ટેબ બંધ કરી દે છે અને બીજું કંઈક જોવા લાગે છે.

સામાન્ય અપટાઇમ મોનિટર આ બાબત ચૂકી જાય છે. મોટાભાગના મોનિટર સિંગલ લોકેશનથી પ્રોબ (probe) કરે છે. તે એક જ જગ્યાએથી બધું બરાબર (green) દેખાય છે.

જ્યારે વાસ્તવિક યુઝર્સ ટાઇમઆઉટ (timeouts) અનુભવતા હતા, ત્યારે અમારું સ્ટેટસ પેજ 100% અપટાઇમ બતાવતું હતું. એક ગ્લોબલ હેલ્થ ચેક અમને ખોટું કહી રહ્યું હતું.

અમે સત્ય જણાવતી સિસ્ટમ કેવી રીતે બનાવી તે અહીં છે.

The Problem: Sampling Bias જો તમારું મોનિટર એક જ ડેટા સેન્ટરમાં હોય, તો તે માત્ર એક જ વાસ્તવિકતા જોઈ શકે છે. જો તમારા સિંગાપોર અને સાઓ પાઉલો એજ કનેક્શન ડ્રોપ કરી રહ્યા હોય, તો પણ તમે બધું બરાબર (green) હોવાનું રિપોર્ટ કરી શકો છો.

વિડિયો ટ્રાફિક આ પરિસ્થિતિને વધુ ખરાબ બનાવે છે. સામાન્ય પ્રાદેશિક નિષ્ફળતાઓમાં (regional failures) નીચેનાનો સમાવેશ થાય છે:

એક સિંગલ "200 OK" રિસ્પોન્સ તમને લગભગ કંઈ જ કહેતો નથી.

Our Three Rules for Health: અમે સ્ટેટસ કોડ્સથી આગળ વધ્યા છીએ. અમે ત્રણ મેટ્રિક્સનો ઉપયોગ કરીને હેલ્થ વ્યાખ્યાયિત કરીએ છીએ:

The Solution: Multi-Region Probing અમે એક મોટું મોનિટર વાપરવાનું બંધ કર્યું. તેના બદલે, અમે સસ્તા પ્રાદેશિક VPS ઇન્સ્ટન્સ પર નાના Go બાઈનરીઝ (Go binaries) ડિપ્લોય કરીએ છીએ.

દરેક પ્રોબર (prober):

અમે સ્ટોરેજ માટે SQLite નો ઉપયોગ કરીએ છીએ. તે સરળ છે અને ઝીરો ઓવરહેડ (zero overhead) સાથે અમારા વર્કલોડને હેન્ડલ કરે છે. અમે પ્રી-એગ્રીગેટડ ડેટાને બદલે રો (raw) સેમ્પલ્સ સ્ટોર કરીએ છીએ. આ અમને ઇતિહાસને ફરીથી સ્કોર કરવા અથવા પછીથી ચોક્કસ નિષ્ફળતાઓનું ડિબગ કરવા દે છે.

The Secret: Quorum નેટવર્ક ઘોંઘાટવાળું (noisy) હોય છે. એક ડ્રોપ થયેલ પેકેટ એ આઉટેજ (outage) નથી.

અમે ખોટા એલાર્મ અટકાવવા માટે ક્વોરમ સિસ્ટમનો ઉપયોગ કરીએ છીએ. જ્યારે અનેક પ્રદેશો સહમત થાય ત્યારે જ અમે એજને "ડાઉન" (

તમારે કોઈ ભારે ઓબ્ઝર્વેબિલિટી પ્લેટફોર્મની જરૂર નથી. તમારે લોકલ પ્રોબ્સ, રો ડેટા અને એક એવો નિયમ જોઈએ છે જે નોઈઝ (noise) ને કારણે ગભરાઈ ન જાય.

સ્ત્રોત: https://dev.to/ahmet_gedik778845/building-a-multi-region-health-check-aggregator-for-video-cdn-edges-2865