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

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

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

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

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

צפייה ביומני Node.js

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

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

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

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

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

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

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

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

כדי להציג את הפלט של הודעות console.log בכלי המעקב, מפעילים את ה-API בכלי המעקב ולוחצים על Output from all Transactions (פלט מכל העסקאות) כדי פתיחת חלונית הפלט:

בהנחה שהרצתם את הקוד הבא...

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 ומופיעה ההודעה 'שער שגוי' שגיאות, נסה להגדיל את שרת ה-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.