כמה מילים על Event Tracing for Windows ומה השתנה בו בויסטה וב Windows Server 2008

16 במרץ 2008

תגיות: ,
2 תגובות

יפה מצדו של סשה שהעלה שוב מן האוב את הנושא החשוב הזה, שמשום מה רבים לא מכירים. ETW הוא חלק מובנה מהתשתית של מערכת ההפעלה חלונות לדורותיה, כבר הרבה שנים. זה נושא שכבר התיחסתי אליו בעבר בבלוג שלי וגם הרצתי עליו במפגשי קבוצת המשתמשים של C#++ יותר מפעם אחת, גם בהרצאה שלי על Instrumentation ב 16/06/2005 (כן 2005) וגם בהרצאה שלי ב 21/2/2007.

מסתבר שגם בחו"ל הנושא הזה לא מוכר, הרצתי על הנושא הזה  בדיוק לפני שבוע ב SDWest2008 בעמק הסיליקון בארה"ב, והרבה פנו אלי בסוף ההרצאה ואמרו שזו פעם ראשונה שהם שומעים על הנושא החשוב הזה. אנשים בונים מערכות שלמות של Logging ו Tracing ומשלבים אותם בתכנה שלהם, במקום להשתמש בתשתית המובנה של מערכת ההפעלה לצורך זה. המוטו הוא כמובן למה להשתמש בדבר קיים אם אפשר להמציא את הגלגל מחדש.

לקראת ויסטה ו Windows Server 2008 כל המנגנון עבר ניתוח קוסמטי, שכולל תוספת פורמט ל XML וכלים חמודים נוספים, שסשה מתאר בצורה יפה בבלוג שלו, וכל המוסיף גורע. הבעיה היא שכל הצעצועים החדשים הללו עובדים, אך ורק, בתנאי שאתה יכול להבטיח באופן מוחלט, שהתכנה שלך תרוץ אך ורק על Vista ועל Windows Server 2008. מה שאומר, שכל הצעצועים החדשים הללו הינם חסרי תועלת באופן פרקטי, ברוב סביבות העבודה, עד אשר אחוזי החדירה של ויסטה ו windows server 2008 יהיו הרבה יותר משמעותיים ממה שהם כרגע (דהינו עוד שנה שנתיים).

אני מאד דוחף שימוש ב ETW אצל הלקוחות שלי. אלה מהם, שהם בסביבה ארגונית, ויש להם שליטה על מערכת ההפעלה שבה ירוץ היישום שאותו הם כותבים. מקבלים ממני המלצה חמה להשתמש בסט ה API החדש ובכלים החדשים (שהם באמת יותר פשוטים ונוחים מהמערכת הישנה יותר). לאלה שאין להם את הפריבילגיה הזו, אני ממליץ להשתמש בסט ה API הישן, שנתמך בצורה מלאה גם ב Vista וגם ב Windows server 2008.

כל מה שאתה צריך לעשות כדי להפוך את היישום שלך ל Provider של ETW זה שלוש קריאות של API, השאר מובנה במערכת ההפעלה. ניתן גם להשתמש בזה בקלות רבה (כמו שהראתי והדגמתי בהרצאה שלי ב SDWest2008) מתוך יישומי דוט נט.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. Sasha Goldshtein16 במרץ 2008 ב 9:46

    ניתן לאסוף את הנתונים על XP SP2 או 2003 ולנתח אותם מאוחר יותר על ויסטה. נקודה אחרת היא שבויסטה הוסיפו המון providers חדשים.

    הגב
  2. GadiM17 במרץ 2008 ב 16:58

    הי סשה,
    בארגון שסביבת התפעול והייצור שלו לא עברה עדיין ל Vista או ל Windows Server 2008. מנהל ה IT לא יתקין מחשב יעודי עם ויסטה או עם Windows Server 2008 רק כדי לפענח לוגים של Trace ולכן יקח זמן עד שהכלים החדשים והטובים הללו יוכלו להיכנס לשימוש שוטף. בינתיים אין בעיה להשתמש בסביבות כאלה בכלים הישנים (שרצים גם על ויסטה וגם על Windows Server 2008).
    לגבי כמות ה Providers שנוספו, רובם היו כבר גם ב XP וגם ב Windows Server 2003 אלא שהם לא הכריזו על עצמם ל WMI ולכן היו נגישים רק למי שידע על קיומם. נסה את הפקודה tracelog -enumguid (מה WDK) ב XP וב windows server 2003 כדי לראות אותם.

    הגב