אתם יכולים לבחור את הגישה הכי יעילה להוספת מכשור לאפליקציה שלכם בהתאם לפלטפורמת המחשוב Google Cloud ולדרישות הטלמטריה שלכם. במדריך הזה מפורטות המלצות ל-Google Kubernetes Engine (GKE), ל-Compute Engine ול-Cloud Run, שיעזרו לכם להחליט בין OpenTelemetry Collector מבית Google, סוכן תפעול וייצוא ישיר של OpenTelemetry בתהליך.
במסמך הזה מפורטות המלצות כלליות וגם הנחיות לפלטפורמות הבאות:
דוגמאות לאפליקציות זמינות במאמר דוגמאות ומדריכים להטמעה.
ההמלצות בדף הזה הן לא הפתרונות היחידים, ויש גישות אחרות שיכולות לעבוד. לקבלת הנחיות נוספות, אפשר לפנות אל Cloud Customer Care.
המלצות כלליות
בקטע הזה מפורטות המלצות כלליות לגבי הטמעה של כלי מדידה באפליקציה. הנחיות ספציפיות לפלטפורמה זמינות במאמר המלצות לפלטפורמות.
נתוני יומן: מומלץ להשתמש במסגרת שאפשר להגדיר אותה כך שתפיק יומנים מובְנים בפורמט JSON עבור Cloud Logging. לכתיבת נתוני יומן, מומלץ:
נתוני מדדים: מומלץ להשתמש ב-OpenTelemetry או בספריות לקוח של Prometheus:
- OpenTelemetry מספקת מסגרת קוד פתוח וספריות לקוח ניטרליות לספקים, כדי להוסיף אינסטרומנטציה לאפליקציות לצורך מדדים.
- ספריות לקוח של Prometheus (Go, Java, Python וכו') יוצרות מדדים שאפשר לחשוף בנקודת קצה של HTTP ולגרד אותם באמצעות סוכן.
נתוני מעקב: מומלץ להשתמש ב-OpenTelemetry כדי ליצור נתוני מעקב מבוזרים מקוד האפליקציה.
ארכיטקטורות של אוספי OpenTelemetry
כשמשתמשים בספריות OpenTelemetry כדי להוסיף לאפליקציה יכולות מעקב, אפשר להפנות את נתוני הטלמטריה דרך OpenTelemetry Collector או לייצא אותם ישירות מתהליך האפליקציה. קובץ ההגדרות של OpenTelemetry Collector קובע איך ה-Collector מקבל, מעבד ומייצא טלמטריה. באופן כללי, מומלץ להגדיר את האוספים כך שיקבלו ויייצאו טלמטריה באמצעות פרוטוקול OpenTelemetry (OTLP). פרוטוקול זה מיושם על ידי Telemetry (OTLP) API.
יש שתי גישות בסיסיות לשליחת טלמטריה לפרויקט Google Cloud :
ייצוא מבוסס-אוסף (ניטרלי לספק): מטמיעים את ערכת ה-SDK של OpenTelemetry בקוד האפליקציה ומשתמשים בכלי לייצוא OTLP בתוך התהליך כדי לשלוח נתונים לאוסף OpenTelemetry, כמו Google-Built OpenTelemetry Collector או Ops Agent receiver. המאסף מקבל את נתוני הטלמטריה ומעביר אותם לפרויקט Google Cloud שלכם. קוד האפליקציה שלכם נשאר ניטרלי לחלוטין מבחינת הספק.
ייצוא ישיר (ספציפי לספק): מטמיעים את OpenTelemetry SDK בקוד האפליקציה ומגדירים את OpenTelemetry לשליחת טלמטריה לפרויקט באמצעות Telemetry API. לא צריך לפרוס כלי לאיסוף נתונים, אבל קוד האפליקציה כולל תלויות ספציפיות לספק.
מומלץ להשתמש ב-OpenTelemetry collector אם סביבת המחשוב תומכת בו. בסביבות שבהן לא ניתן להריץ תהליך איסוף נפרד, אפשר להשתמש בייצוא ישיר בתוך התהליך.
המלצות לפלטפורמות
מכיוון Google Cloud שלסביבות מחשוב יש מחזור חיים שונה ויכולות שונות של קובצי sidecar, דפוס האיסוף האופטימלי משתנה בהתאם לפלטפורמה. בקטעים הבאים מפורטות המלצות ספציפיות לסביבת הפריסה שלכם.
GKE
מידע כללי על GKE זמין במאמר סקירה כללית על GKE.
| סוג | המלצה |
|---|---|
| מדדים | מומלץ להשתמש בשירות המנוהל של Google Cloud ל-Prometheus. כדי להוסיף מכשור, מבצעים אחת מהפעולות הבאות:
|
| רכיבים מוליכים | צריך לבצע את הפעולות הבאות:
|
| יומנים | מגדירים את האפליקציה כך שתפיק יומנים מובְנים ב-JSON ותשלח אותם אל מערכת GKE אוספת באופן אוטומטי יומנים שנכתבו אל
|
Compute Engine
מידע כללי על Compute Engine זמין במאמר בנושא מכונות וירטואליות.
| סוג | המלצה |
|---|---|
| מדדים ורכיבים מוליכים | צריך לבצע את הפעולות הבאות:
לחלופין, אם רוצים להגדיר איסוף רק של מדדים בפורמט Prometheus, אפשר להשתמש במקלט Prometheus של סוכן תפעול כדי לאסוף מדדים שנוצרו באמצעות ספריות לקוח של Prometheus או OpenTelemetry SDK. |
| יומנים | צריך לבצע את הפעולות הבאות:
|
Cloud Run
למידע כללי על Cloud Run, ראו מה זה Cloud Run.
| סוג | המלצה |
|---|---|
| מדדים ורכיבים מוליכים | צריך לבצע את הפעולות הבאות:
לחלופין, אם רוצים להגדיר איסוף רק של מדדים בפורמט Prometheus, אפשר להשתמש ב-Prometheus sidecar for Cloud Run כדי לאסוף מדדים שנוצרו באמצעות ספריות לקוח של Prometheus או OpenTelemetry SDK. |
| יומנים | מגדירים את האפליקציה כך שתפיק יומנים מובְנים ב-JSON ותשלח אותם אל Cloud Run אוסף באופן אוטומטי יומנים שנכתבים ב- |
פונקציות Cloud Run
למידע כללי על פונקציות Cloud Run, ראו סקירה כללית על פונקציות Cloud Run.
| סוג | המלצה |
|---|---|
| מדדים | אי אפשר לכתוב נתונים של מדדים ישירות בפונקציות של Cloud Run. אפשר ליצור מדדים מבוססי-יומן. |
| רכיבים מוליכים | משתמשים ב-OpenTelemetry SDK ובכלי לייצוא Cloud Trace בשפה שלכם. |
| יומנים | מגדירים את האפליקציה כך שתפיק יומנים מובְנים ב-JSON ותשלח אותם אל פונקציות Cloud Run אוספות באופן אוטומטי יומנים שנכתבים ב- |
App Engine
מידע כללי על App Engine זמין במאמר סקירה כללית על App Engine.
| סוג | המלצה |
|---|---|
| מדדים | משתמשים ב-OpenTelemetry SDK ובכלי לייצוא של Cloud Monitoring לשפה שלכם. |
| רכיבים מוליכים | משתמשים ב-OpenTelemetry SDK ובכלי לייצוא Cloud Trace בשפה שלכם. |
| יומנים | מגדירים את האפליקציה כך שתפיק יומנים מובְנים ב-JSON ותשלח אותם אל App Engine אוסף באופן אוטומטי יומנים שנכתבו אל
|
דוגמאות ומדריכי הטמעה
בסקירה הכללית של הדוגמה מתואר הארכיטקטורה והתפקידים הנדרשים בניהול הזהויות והרשאות הגישה (IAM) בדוגמאות הקוד הבאות שמבוססות על איסוף:
במאמר העברה מ-Trace exporter לנקודת הקצה OTLP מוסבר איך לעדכן אפליקציה שמשתמשת בייצוא ישיר כדי לשלוח נתוני מעקב בפורמט OTLP.
במאמר אינסטרומנטציה של אפליקציות של AI גנרטיבי מוסבר איך לבצע אינסטרומנטציה או להפעיל סוכני AI גנרטיבי שנוצרו באמצעות LangGraph או באמצעות מסגרת הערכה לפיתוח סוכנים (ADK).
תיעוד של OpenTelemetry
בקטע הזה יש קישורים ל-OpenTelemetry SDK ולכלי הייצוא של OTLP, Cloud Trace ו-Cloud Monitoring.
מקורות מידע כלליים:
המשך
Java
JavaScript
- JavaScript SDK
- JavaScript OTLP exporter
- JavaScript Cloud Trace exporter
- JavaScript Cloud Monitoring exporter