ניפוי באגים ופתרון בעיות בשרתי proxy של Node.js

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מומלץ לוודא שכל קוד Node.js שמוסיפים לשרת proxy פועל לפני פריסתו ב-Edge. במאמר הזה נפרט דרכים לניפוי באגים ולפתרון בעיות בשרתי proxy שכוללים אפליקציות Node.js לאחר הפריסה.

הגדלת מאגר החיבורים כדי לשפר את הביצועים

אם הביצועים איטיים, ייתכן שיהיה אפשר לפתור את הבעיה על ידי הגדלת ברירת המחדל של מאגר החיבורים של Node.js באמצעות maxSockets, או על ידי השבתה של מאגר socket Pool לגמרי. מידע נוסף וקוד לדוגמה זמין במאמר טיפים לשיפור הביצועים ב-Node.js: מאגר שקעים בקהילת Apigee.

הצגת יומני Node.js

כדי להציג פרטי יומן של האפליקציה Node.js:

  1. בדף שרת ה-proxy הראשי של ה-API, לוחצים על שרת ה-proxy שרוצים להציג.
  2. בדף הסיכום של שרת ה-proxy שנבחר, לוחצים על יומני Node.js בצד שמאל של סרגל הכלים.

בדף 'יומנים' אפשר לבחור טווח זמן של יומנים להצגה, כפי שמוצג בהמשך. היומנים מתעדים קריאות לשיטת HTTP, קריאות שנכשלו או כשל של קריאות, הודעות console.log וכו'. מזינים מחרוזת חיפוש בשדה החיפוש כדי להציג את כל הרשומות ביומן שמכילות את המחרוזת.

שימוש בכלי המעקב

כלי המעקב שימושי לניפוי באגים כללי בשרת Proxy. למידע מפורט על השימוש בכלי המעקב, אפשר לעיין במאמר שימוש בכלי המעקב.

פלט ממסוף ההדפסה

אפשר להטמיע הצהרות Console.log בקוד של Node.js ולצפות בפלט בכלי המעקב. לדוגמה, בהצהרה הבאה מוצג הערך של המשתנה config.user:

console.log('Logging in as %s', config.username);

כדי להציג את הפלט של הודעות console.log בכלי המעקב, צריך לקרוא ל-API בכלי המעקב וללחוץ על פלט מכל הטרנזקציות כדי לפתוח את חלונית הפלט:

בהנחה שביצעת את הקוד הבא...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

... הצהרות המסוף יופיעו בחלונית:

קביעת הגדרות הזמן הקצוב לתפוגה של יעד Nginx

אם משתמשים ב-Nginx כשרת proxy ומופיעים שגיאות מסוג "Bad Gateway", נסו להגדיל את הגדרת הזמן הקצוב לתפוגה של שרת ה-proxy של Nginx, כפי שמוסבר כאן:

לדוגמה:

proxy_connect_timeout       60;
proxy_read_timeout          120;

בהתאם לזמן שנדרש לשרת להגיב, ניתן לקבוע את ההגדרות האידאליות לזמן הקצוב לתפוגה. לדוגמה, זמן קצוב לקריאה הוא 45-60 שניות כדי לספק מרווח זמן סביר.

קביעת הגדרות הזמן הקצוב לתפוגה של יעד ב-Apigee

אפשר גם להגדיר את ערכי הזמן הקצוב לתפוגה שמוגדרים כברירת מחדל ב-Apigee ברכיב HttpTargetConnection ב-TargetEndpoint. ערכי ברירת המחדל הם:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

כדאי לעיין גם בחומר עזר בנושא מאפייני נקודת קצה (endpoint).

אפשר לקבל מידע נוסף

מידע נוסף על ניפוי באגים זמין במאמרים הבאים:

השלבים הבאים

מידע נוסף על תמיכה במודול Node.js ב-Apigee Edge, כולל מידע על תמיכה ב-HTTP/HTTPS, TLS, ונושאים מתקדמים אחרים, זמין במאמר הסבר על התמיכה של Edge למודולים של Node.js.