יום ראשון, 18 בינואר 2009

איך יודעים כשיש תקלה באפליקציה?

כמו ברוב שפות הפיתוח גם ב-RoR יש מה שנקרא Exception. קרי, המשתמש או הסביבה "זורקים" Exception כאשר יש משהו חריג או לא צפוי שקרה בקוד.
כשזה קורה בסביבת הפיתוח, אז רואים את ה-Trace על המסך, ואפשר "לדבג" את האפליקציה. אבל כאשר עובדים ב-Production, אז על פי ברירת המחדל המשתמש נשלח לדף שגיאה אשר מודיע שקרתה תקלה, ללא כל סימני התקלה הספציפית.
באחריות בעל האפליקציה, לעבור מדי פעם על הלוגים של השרת, ולראות אם משתמשים קיבלו נתקלו בתקלות שכאלה.
זוהי אחריות קשה ומעצבנת, כי לא הגיוני לעבור כל יום או כל כמה שעות על הלוגים של השרת, בלי קשר אם קרתה תקלה או לא.

לכן, המציאו ב-Rails את exception_notification - זהו Plugin פשוט אשר שולח לאימייל מסויים (או כמה), את התקלה כאשר קורית. מוסיפים כשלוש שורות לקוד (כולל האימייל לשלוח אליו), והופ, זה עובד. כל פעם שיש תקלה, מקבלים אימייל, ואין צורך להסתכל על הלוגים ללא סיבה מיוחדת.

אבל מה קורה אם יש תקלה ספציפית, שקורית מאות או אף אלפי פעמים ביום? כל תיבת האימייל עלולה להיסתם. מה גם שכאשר התקלה היא זהה אשר חוזרת על עצמה, לשווא נקבל אימיילים עם אותה התקלה.
לשם כך רציתי להמליץ על שירות שנקרא Hoptoad. זהו שירות מאוד נוח, שאוסף עבורנו את כל התקלות. ההתקנה היא זהה (Plugin - חד פעמי + כ-2 שורות לקוד), אבל היופי האמיתי הוא שכאשר תקלה קורית בפעם הראשונה, מקבלים אימייל, אבל אם התקלה חוזרת באותו היום, לא נקבל שוב את האימייל, אלא פשוט באתר מראים עבור כל תקלה את כמות הפעמים שהיא קרתה . קשה להסביר במילים. צריך להשתמש על מנת להבין כמה זה נוח.
ממליץ לכל מי שצריך להיות אחראי על שרתים ב-Production.

0 comments:

הוסף רשומת תגובה