רישום ביומן הוא כלי חשוב לניפוי באגים ולמעקב אחרי קוד.
ב-Cloud Functions יש לכם אפשרות להשתמש ב-SDK של ה-logger, ב-Cloud Logging בהתאמה אישית של Google או בתקן האובייקט console
לפיתוח לאינטרנט.
כתיבה ביומן
מומלץ להשתמש ב-SDK של יומן של Cloud Functions ברוב המקרים, אבל יכול להיות שתבחרו באחת מהאפשרויות האחרות מהסיבות הבאות:
- יש לכם קוד בסיס קיים ואתם מעדיפים לא לבצע רפרסוקטור מ-
console.log
. - אתם מכירים את Cloud Logging (לשעבר הרישום ביומן של StackDriver) ומעדיפים להשתמש בו לצורך רישום ביומן בהתאמה אישית.
שימוש ב-SDK של ה-logger של Cloud Functions
ה-SDK של ה-logger של Cloud Functions מספק ממשק רגיל עם API דומה ל-statements של console.log
ותומך ברמות אחרות של יומנים.
אפשר להשתמש ב-SDK הזה כדי לתעד אירועים עם נתונים מובְנים, וכך לבצע ניתוח ומעקב בקלות רבה יותר.
ה-SDK של ה-logger תומך ברשומות ביומן כחלק מייבוא של תו כללי לחיפוש. לדוגמה:
const functions = require("firebase-functions/v1");
functions.logger.log("Hello from info. Here's an object:", someObj);
לחלופין, אפשר להשתמש בייצוא ספציפי. בדוגמה הזו מוצגים נתונים מובְנים שמצורפים ליומן כארגומנטים האחרונים:
const { warn } = require("firebase-functions/logger");
// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
key1: 'val1',
key2: 'val2'
});
- לפקודות
logger.log()
יש את רמת היומן INFO. - לפקודות
logger.info()
יש את רמת היומן INFO. - לפקודות
logger.warn()
יש את רמת היומן WARNING. - לפקודות
logger.error()
יש את רמת היומן ERROR. - להודעות מערכת פנימיות יש את רמת היומן DEBUG.
בעזרת logger.write()
אפשר לכתוב רשומות ביומן ברמות חומרה נוספות של CRITICAL
, ALERT
ו-EMERGENCY
. מידע נוסף זמין במאמר LogSeverity.
יומני Cloud Logging בהתאמה אישית
יומני Cloud Functions עם ה-SDK של ה-logger מגובים על ידי Cloud Logging. אפשר להשתמש בספריית Cloud Logging ל-Node.js כדי לתעד אירועים עם נתונים מובְנים, וכך לאפשר ניתוח ומעקב קלים יותר.
const { Logging } = require('@google-cloud/logging');
// ...
// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');
// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
resource: {
type: 'cloud_function',
labels: {
function_name: 'CustomMetrics',
region: 'us-central1'
}
}
};
// ...
// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
event: 'my-event',
value: 'foo-bar-baz',
// Optional 'message' property will show up in the Firebase
// console and other human-readable logging surfaces
message: 'my-event: foo-bar-baz'
};
// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);
שימוש ב-console.log
הפתרון המומלץ לרישום ביומן מפונקציה הוא להשתמש ב-SDK של ה-logger לפלטפורמה שלכם. ב-Node.js, אפשר להשתמש במקום זאת בקריאות רגילות של רישום ביומן ב-JavaScript, כמו console.log
ו-console.error
, אבל קודם צריך לדרוש מודול מיוחד כדי לתקן את השיטות הרגילות כדי שהן יפעלו כמו שצריך:
require("firebase-functions/logger/compat");
אחרי שמגדירים את מודול התאימות של היומן, אפשר להשתמש בשיטות של console.log()
בקוד כרגיל:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- לפקודות
console.log()
יש את רמת היומן INFO. - לפקודות
console.info()
יש את רמת היומן INFO. - לפקודות
console.warn()
יש את רמת היומן ERROR. - לפקודות
console.error()
יש את רמת היומן ERROR. - להודעות מערכת פנימיות יש את רמת היומן DEBUG.
צפייה ביומנים
אפשר לראות את היומנים של Cloud Functions במסוף Google Cloud, בממשק המשתמש של Cloud Logging או באמצעות הכלי בשורת הפקודה firebase
.
שימוש ב-Firebase CLI
כדי להציג יומנים באמצעות הכלי firebase
, משתמשים בפקודה functions:log
:
firebase functions:log
כדי להציג יומנים של פונקציה ספציפית, מציינים את שם הפונקציה כארגומנט:
firebase functions:log --only <FUNCTION_NAME>
כדי לראות את כל האפשרויות להצגת יומנים, אפשר לעיין במאמרי העזרה של functions:log
:
firebase help functions:log
שימוש במסוף Google Cloud
אפשר להציג יומנים של פונקציות במסוף Google Cloud.
שימוש בממשק המשתמש של Cloud Logging
אפשר להציג יומנים של Cloud Functions בממשק המשתמש של Cloud Logging.
ניתוח יומנים
ב-Cloud Logging יש חבילה חזקה של כלים לניתוח יומנים, שבעזרתם אפשר לעקוב אחרי Cloud Functions.
תרשימים והתראות
אחרי שיוצרים מדדים שמבוססים על יומנים כדי לעקוב אחרי הפונקציות, אפשר ליצור תרשימים והתראות על סמך המדדים האלה. לדוגמה, אפשר ליצור תרשים כדי להציג זמן אחזור חזותי לאורך זמן, או ליצור התראה שתודיע לכם אם מתרחשת שגיאה מסוימת לעיתים קרובות מדי.
במאמר יצירת תרשימים והתראות מוסבר בפירוט איך להשתמש במדדים שמבוססים על יומנים בתרשימים ובמדיניות ההתראות.