בדף הזה מוסבר על היומנים שזמינים כשמשתמשים ב-Cloud Run, ואיך צופים ביומנים וכותבים אותם.
ב-Cloud Run יש כמה סוגים של יומנים, והם נשלחים אוטומטית אל Cloud Logging:
- יומני בקשות (שירותים בלבד): יומנים של בקשות שנשלחו לשירותי Cloud Run. היומנים האלה נוצרים באופן אוטומטי.
- יומני קונטיינרים (שירותים, משימות ומאגרי עובדים): יומנים שנוצרים מהמופעים, בדרך כלל מהקוד שלכם, ונכתבים במיקומים נתמכים כפי שמתואר במאמר כתיבת יומני קונטיינרים.
- יומני מערכת (שירותים, משימות ומאגרי עובדים): יומנים שנוצרו על ידי הפלטפורמה ומכילים מידע על עומסי העבודה שלכם. היומנים האלה נכתבים ב-
varlog/system.
צפייה ביומנים
יש כמה דרכים להצגת היומנים של השירות, העבודה או מאגר העובדים:
- בדף Cloud Run במסוף Google Cloud
- שימוש ב-Google Cloud CLI כדי להציג יומנים באמצעות gcloud (שירותים בלבד)
שתי השיטות לצפייה ביומנים במסוף בודקות את אותם יומנים שמאוחסנים ב-Cloud Logging, אבל הכלי Logs Explorer של Cloud Logging מספק יותר פרטים ויכולות סינון.
צפייה ביומנים ב-Cloud Run
אפשר לצפות ביומנים בדף Cloud Run עבור המשאבים הבאים:
צפייה ביומנים של שירות
כדי לראות את יומני השירות בדף Cloud Run:
לוחצים על השירות ברשימה שמוצגת.
לוחצים על הכרטיסייה LOGS (יומנים) כדי לקבל את יומני הבקשות והמאגרים של כל הגרסאות של השירות הזה. אפשר לסנן לפי רמת החומרה של היומן.
צפייה ביומנים של משימה
כדי לראות את יומני העבודות בדף Cloud Run:
מאתרים את המשרה ברשימת המשרות ולוחצים עליה.
לוחצים על הכרטיסייה LOGS (יומנים) כדי לראות את יומני הקונטיינר של כל ההרצות של העבודה הזו. אפשר לסנן לפי רמת החומרה של היומן.
לחלופין, אם רוצים לראות את היומנים אחרי סינון מוקדם של ביצוע של משימה ספציפית, לוחצים על ביצוע המשימה ואז על הכרטיסייה LOGS.
צפייה ביומנים של מאגר עובדים
כדי לראות את היומנים של מאגר העובדים בדף Cloud Run:
לוחצים על מאגר העובדים ברשימה שמוצגת.
לוחצים על הכרטיסייה LOGS כדי לקבל את יומני הבקשות והקונטיינרים של כל הגרסאות של מאגר העובדים הזה. אפשר לסנן לפי רמת החומרה של היומן.
צפייה ביומני שירות באמצעות Google Cloud CLI
אתם יכולים להשתמש ב-Google Cloud CLI כדי להציג יומנים בזמן אמת או לקרוא יומנים קיימים של שירות Cloud Run בשורת הפקודה. כברירת מחדל, היומנים מעוצבים בפורמט של שורה אחת שעבר אופטימיזציה לשימוש במסוף.
כדי להציג את סוף הקובץ של יומנים, צריך להתקין את הרכיב log-streaming ב-Google Cloud CLI. אם הרכיב לא מותקן, תתבקשו להתקין אותו כשיהיה צורך בכך.
צפייה ביומנים בשורת הפקודה
בשביל שירות ב-Cloud Run, אפשר לעקוב אחרי יומנים בזמן אמת משירות Cloud Run ישירות בשורת הפקודה:
gcloud beta run services logs tail SERVICE --project PROJECT-ID
מחליפים את:
- SERVICE מחליפים בשם של שירות Cloud Run.
- PROJECT-ID במזהה הפרויקט. Google Cloud כדי לראות את מזהה הפרויקט, מריצים את הפקודה
gcloud config get-value project.
קריאת יומנים בשורת הפקודה
בשביל שירות של Cloud Run, אפשר לקרוא יומנים קיימים באחת משתי דרכים:
- בפורמט שעבר אופטימיזציה לקונסולה:
gcloud run services logs read SERVICE --limit=10 --project PROJECT-ID
- ישירות מ-Cloud Logging:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=SERVICE" --project PROJECT-ID --limit 10
מחליפים את:
- SERVICE מחליפים בשם של שירות Cloud Run.
- PROJECT-ID במזהה הפרויקט. Google Cloud כדי לראות את מזהה הפרויקט, מריצים את הפקודה
gcloud config get-value project.
צפייה ביומנים ב-Cloud Logging
כדי לראות את היומנים של Cloud Run ב-Logs Explorer של Cloud Logging:
נכנסים לדף Logs Explorer במסוףGoogle Cloud :
בוחרים פרויקט קיים Google Cloud בחלק העליון של הדף או יוצרים פרויקט חדש.
בתפריטים הנפתחים, בוחרים את המשאב:
- גרסת Cloud Run של שירות
- משימה ב-Cloud Run למשימה
- מאגר עובדים של Cloud Run בשביל מאגר עובדים
מידע נוסף זמין במאמר שימוש ב-Logs Explorer.
הצגת יומני שירות ב-Cloud Code
כדי לראות את היומנים ב-Cloud Code, אפשר לקרוא את המדריכים ל-IntelliJ ול-Visual Studio Code.
קריאת יומנים באופן פרוגרמטי
אם רוצים לקרוא את הרישומים באופן פרוגרמטי, אפשר להשתמש באחת מהשיטות הבאות:
- משתמשים בsink ביומן ל-Pub/Sub ובסקריפט לשליפה מ-Pub/Sub.
- מפעילים את Logging API באמצעות ספריות הלקוח של שפת התכנות שלכם.
- קריאה ישירה לנקודות הקצה של Logging API REST.
פורמט ותוכן של יומני שינוי גודל המופע
כשמופעלים מופעים חדשים בשירות Cloud Run, Cloud Logging כולל רשומות ביומן בשם היומן varlog/system שמסבירות למה כל מופע נוצר. הרשומה ביומן מופיעה בפורמט הבא:
Starting new instance. Reason: REASON - DESCRIPTION
בטבלה הבאה מפורטים תיאורי המופעים:
| סיבה | תיאור |
|---|---|
MANUAL_OR_CUSTOMER_MIN_INSTANCE |
המופע הופעל בגלל מופעים מינימליים שהוגדרו על ידי הלקוח או בגלל שינוי גודל ידני. |
AUTOSCALING |
המופע הופעל בגלל גורמי קנה מידה שהוגדרו (כמו ניצול CPU, נפח בקשות וכו') או בגלל שלא היה מספיק קיבולת קיימת לתעבורה הנוכחית. |
DEPLOYMENT_ROLLOUT |
המופע הופעל בגלל העברת תנועה בין עדכונים בעקבות פריסה, התאמה של פיצול התנועה או בדיקת תקינות של הפריסה. |
כתיבת יומני קונטיינרים
כשכותבים יומנים מהשירות, מהעבודה או ממאגר העובדים, הם נאספים אוטומטית על ידי Cloud Logging, כל עוד היומנים נכתבים באחד מהמיקומים הבאים:
- זרמי פלט רגיל (
stdout) או שגיאה רגילה (stderr) - כל הקבצים בספרייה
/var/log - syslog (
/dev/log) - יומנים שנכתבו באמצעות ספריות הלקוח של Cloud Logging, שזמינות בשפות פופולריות רבות
רוב המפתחים צפויים לכתוב יומנים באמצעות פלט רגיל ושגיאה רגילה.
היומנים של הקונטיינרים שנכתבים במיקומים הנתמכים האלה משויכים אוטומטית לשירות, לגרסה ולמיקום של Cloud Run, למאגר העובדים, לגרסה ולמיקום של Cloud Run, או לעבודת Cloud Run. חריגים שמופיעים ביומנים האלה נרשמים ומדווחים בError Reporting.
הרישום המשולב מאזן בין מהימנות לבין שימוש במשאבים, והוא אמור לפעול ברוב האפליקציות. כתיבת רשומות ביומן באמצעות רישום משולב לא צורכת מכסה של מספר הבקשות entries.write לדקה של Cloud Logging API.
אם יש לאפליקציה שלכם דרישות לגבי נפח או אמינות גבוהים יותר, מומלץ להשתמש ישירות ב-Cloud Logging API, או כספרייה בתוך האפליקציה או כקובץ sidecar נפרד.
שימוש בטקסט פשוט לעומת JSON מובנה ביומנים
כשכותבים יומנים, אפשר לשלוח מחרוזת טקסט פשוטה או שורה אחת של JSON שעבר סריאליזציה, שנקרא גם נתונים 'מובנים'. הנתונים האלה נאספים ומנותחים על ידי Cloud Logging, ומוצבים ב-jsonPayload. לעומת זאת, הודעת הטקסט הפשוטה ממוקמת ב-textPayload.
כתיבה של יומנים מובְנים
בקטע הקוד הבא אפשר לראות איך כותבים רשומות מובְנות ביומן. בנוסף, מוסבר איך לבצע קורלציה בין הודעות ביומן לבין יומן הבקשות המתאים.
Node.js
Python
Go
המבנה של כל רשומה ביומן מסופק על ידי סוג Entry:
כשמבצעים רישום ביומן של מבנה Entry, מתבצעת קריאה לשיטה String כדי להמיר אותו לפורמט JSON שצפוי ב-Cloud Logging:
Java
כדי להפעיל רישום בפורמט JSON באמצעות Logback ו-SLF4J, צריך להפעיל את Logstash JSON Encoder בהגדרות של logback.xml.
אפשר להתאים אישית את השמות של השדות הרגילים כדי להחריג תוכן לא רצוי מהטעינה של מטען הנתונים ביומנים. רשימה של שמות השדות ופורמטי הנתונים הצפויים זמינה במאמר שימוש בסוכן הרישום ביומן.
שדות JSON מיוחדים בהודעות
כשמספקים יומן מובנה כמילון JSON, חלק מהשדות המיוחדים מוסרים מהשדה jsonPayload ונכתבים בשדה המתאים ב-LogEntry שנוצר, כפי שמתואר במסמכי התיעוד בנושא שדות מיוחדים.
לדוגמה, אם קובץ ה-JSON כולל מאפיין severity, הוא יוסר מjsonPayload ויופיע במקום זאת כseverity של רשומת היומן.
המאפיין message משמש כטקסט התצוגה הראשי של רשומת היומן, אם הוא קיים.
מידע נוסף על מאפיינים מיוחדים זמין בקטע משאב רישום ביומן שבהמשך.
התאמה בין יומני הקונטיינר לבין יומן בקשות (שירותים בלבד)
בכלי Logs Explorer, יומנים שמשויכים לאותו trace מוצגים בפורמט 'הורה-צאצא': כשלוחצים על סמל המשולש מימין לרשומה ביומן הבקשות, יומני המאגר שקשורים לבקשה הזו מוצגים כרשומות משנה ביומן הבקשות.
יומני קונטיינרים לא משויכים אוטומטית ליומני בקשות, אלא אם משתמשים בספריית לקוח של Cloud Logging.
כדי לבצע קורלציה בין יומני קונטיינרים לבין יומני בקשות בלי להשתמש בספריית לקוח, אפשר להשתמש בשורת יומן JSON מובנית שמכילה שדה logging.googleapis.com/trace עם מזהה המעקב שחולץ מהכותרת X-Cloud-Trace-Context, כמו בדוגמה שלמעלה לרישום מובנה ביומן.
שליטה בשימוש במשאבים ביומן הבקשות (שירותים בלבד)
יומני בקשות נוצרים באופן אוטומטי. למרות שאי אפשר לשלוט בכמות יומני הבקשות ישירות מ-Cloud Run, אפשר להשתמש בתכונה החרגת יומנים מ-Cloud Logging.
הערה לגבי רישום נציגים ביומן
אם השתמשתם ב-Cloud Logging עם מוצרים מסוימים, כמו Compute Engine, יכול להיות שהשתמשתם בסוכני רישום ב-Cloud Logging. Google Cloud ב-Cloud Run לא משתמשים בסוכני רישום ביומן כי יש תמיכה מובנית באיסוף יומנים.
שמות המשאבים של Logging
שמות המשאבים של Cloud Run ב-Cloud Logging הם:
- Cloud Run Revision (
cloud_run_revision). - Cloud Run Job (
cloud_run_job).
- Cloud Run Worker Pool (
cloud_run_workerpool).
משאבי רישום ביומן
כשלוחצים על רשומה ביומן ב-Logs Explorer, נפתחת רשומה ביומן בפורמט JSON, כך שאפשר להגיע לפרטים הרצויים.
כל השדות ברשומה ביומן, כמו חותמות זמן, חומרה וhttpRequest, הם סטנדרטיים ומתוארים במסמכים של רשומה ביומן.
Cloud Run מוסיף מטא-נתונים נוספים, כך שאפשר לזהות את המקור של יומן. זה כולל את (התוויות שהגדרתם בשירות Cloud Run) ואת תוויות המשאבים שספציפיות ל-Cloud Run.
שדות של רשומות ביומן עבור שירות
הרשימה הבאה כוללת שדות שאפשר למצוא ברשומת היומן של שירות Cloud Run:
| שדה | ערכים והערות |
|---|---|
LogEntry.labels.instanceId |
המופע שטיפל בבקשה. |
LogEntry.labels.run.googleapis.com/base_image_versions |
גרסת תמונת הבסיס שבה השירות משתמש. האפשרות הזו מופיעה רק בשירותים שנפרסו ממקור, ורק אם האפשרות עדכוני אבטחה אוטומטיים מופעלת. |
LogEntry.labels.run.googleapis.com/cloud_event_id |
המזהה של CloudEvent. האפשרות הזו מופיעה רק בשירותים שמקבלים אירועים מ-Eventarc. |
LogEntry.labels.run.googleapis.com/cloud_event_source |
המקור של CloudEvent. האפשרות הזו מופיעה רק בשירותים שמקבלים אירועים מ-Eventarc. |
LogEntry.labels.mylabel,LogEntry.labels.mysecondlabel |
התוויות שהגדרתם בשירות. |
LogEntry.logName |
מזהה את היומן, לדוגמה, יומן בקשות, שגיאה רגילה, פלט רגיל וכו'. |
LogEntry.resource.labels.location |
מזהה את המיקום של השירות ב-Google Cloud. |
LogEntry.resource.labels.project_id |
הפרויקט שבו השירות נפרס. |
LogEntry.resource.labels.revision_name |
הגרסה ששימשה להצגת הבקשה. |
LogEntry.resource.labels.service_name |
השירות שטיפל בבקשה. |
LogEntry.resource.type |
cloud_run_revision. סוג המשאב Cloud Run. |
דוגמה לרשומה ביומן הבקשות של שירות Cloud Run:
{
httpRequest: {…}
insertId: "5c82b3d1000ece0000000000"
labels: {
instanceId: "00bf4bf00000fb59c906a00000c9e29c2c4e06dce91500000000056008d2b6460f163c0057b97b2345f2725fb2423ee5f0bafd36df887fdb1122371563cf1ff453717282afe000001"
mylabel: "mylabelvalue"
mysecondlabel: "mysecondlabelvalue"
}
logName: "projects/my-project/logs/run.googleapis.com%2Frequests"
receiveTimestamp: "2019-03-08T18:26:25.981686167Z"
resource: {
labels: {
configuration_name: "myservice"
location: "europe-west1"
project_id: "my-project"
revision_name: "myservice-00002"
service_name: "myservice"
}
type: "cloud_run_revision"
}
severity: "INFO"
timestamp: "2019-03-08T18:26:25.970397Z"
}
שדות של רשומות ביומן למשרות
זו רשימה של השדות שמופיעים ברשומה ביומן של משימת Cloud Run:
| שדה | ערכים והערות |
| LogEntry.labels.instanceId | המופע. |
| LogEntry.labels.mylabel,
LogEntry.labels.mysecondlabel |
התוויות שהגדרתם למשרה. |
| LogEntry.logName | מזהה את היומן, למשל, שגיאה רגילה, פלט רגיל וכו'. |
| LogEntry.resource.labels.location | מזהה את Google Cloud מיקום העבודה. |
| LogEntry.resource.labels.project_id | הפרויקט שבו העבודה נפרסת. |
| LogEntry.resource.labels.job_name | שם המשרה. |
| LogEntry.labels.execution_name | השם של הרצת העבודה. |
| LogEntry.labels.task_index | האינדקס של המשימה. |
| LogEntry.labels.task_attempt | כמה פעמים נעשה ניסיון לבצע את המשימה הזו. |
| LogEntry.resource.type | cloud_run_job. סוג המשאב Cloud Run.
|
שדות של רשומות ביומן למאגרי עובדים
זו רשימה של שדות שאפשר למצוא ברשומה ביומן של מאגר עובדים ב-Cloud Run:
| שדה | ערכים והערות |
| LogEntry.labels.instanceId | המופע. |
| LogEntry.labels.mylabel,
LogEntry.labels.mysecondlabel |
התוויות שהגדרתם במאגר העובדים. |
| LogEntry.logName | מזהה את היומן, למשל, שגיאה רגילה, פלט רגיל וכו'. |
| LogEntry.resource.labels.location | Google Cloud המיקום של מאגר העובדים. |
| LogEntry.resource.labels.project_id | הפרויקט שבו נפרס מאגר העובדים. |
| LogEntry.resource.labels.workerpool_name | השם של מאגר העובדים. |
| LogEntry.resource.type | cloud_run_workerpool. סוג המשאב Cloud Run.
|
המאמרים הבאים
- אתם יכולים להשתמש ב-Gemini Cloud Assist Investigations כדי לאבחן בעיות, לקבל תובנות פרקטיות ולפתור בעיות. מידע נוסף על דרכים שונות להתחלת חקירה באמצעות Logs Explorer מופיע במאמר פתרון בעיות באמצעות Gemini Cloud Assist Investigations במסמכי Gemini.