בחירת גישה לאינסטרומנטציה

אתם יכולים לבחור את גישת המדידה הכי יעילה לאפליקציה שלכם, בהתאם ל Google Cloud פלטפורמת המחשוב ולדרישות הטלמטריה. במדריך הזה מפורטות המלצות ל-Google Kubernetes Engine ‏ (GKE), ל-Compute Engine ול-Cloud Run, שיעזרו לכם להחליט אם להשתמש ב-Google-Built OpenTelemetry Collector, בסוכן תפעול או בייצוא ישיר של OpenTelemetry בתהליך.

במאמר הזה מפורטות המלצות כלליות והנחיות לפלטפורמות הבאות:

דוגמאות לאפליקציות ומדריכי הטמעה

ההמלצות בדף הזה הן לא הפתרונות היחידים, ויש גישות אחרות שיכולות לעבוד. לקבלת הנחיות נוספות, פנו אל Cloud Customer Care.

המלצות כלליות

בקטע הזה מפורטות המלצות כלליות להוספת אינסטרומנטציה לאפליקציה. במאמר המלצות לפלטפורמה מפורטות הנחיות ספציפיות לפלטפורמה.

  • נתוני יומנים: מומלץ להשתמש במסגרת שאפשר להגדיר כך שתפיק יומנים בפורמט JSON בשביל Cloud Logging. לכתיבת נתוני יומן, מומלץ:

  • נתוני מדדים: מומלץ להשתמש ב-OpenTelemetry או בספריות הלקוח של Prometheus:

    • ‫OpenTelemetry מספקת מסגרת וספריות לקוח בקוד פתוח, שלא תלויות בספק, כדי להוסיף אינסטרומנטציה לאפליקציות לצורך איסוף מדדים.
    • ספריות לקוח של Prometheus (Go,‏ Java,‏ Python וכו') יוצרות מדדים שאפשר לחשוף בנקודת קצה (endpoint) של HTTP ולגרד באמצעות סוכן.
  • נתוני מעקב: מומלץ להשתמש ב-OpenTelemetry כדי ליצור נתוני מעקב מבוזרים מקוד האפליקציה.

ארכיטקטורות של איסוף נתונים ב-OpenTelemetry

כשמגדירים אפליקציה עם ספריות OpenTelemetry, אפשר לנתב את נתוני הטלמטריה דרך OpenTelemetry Collector העצמאי או לייצא ישירות מתהליך האפליקציה. קובץ התצורה של OpenTelemetry Collector קובע איך ה-Collector מקבל, מעבד ומייצא נתוני טלמטריה. באופן כללי, מומלץ שהאוספים יקבלו וישלחו נתוני טלמטריה באמצעות פרוטוקול OpenTelemetry‏ (OTLP). ‫Telemetry (OTLP) API מטמיע את הפרוטוקול הזה.

יש שתי גישות בסיסיות לשליחת נתוני טלמטריה לפרויקט ב- Google Cloud :

  • ייצוא מבוסס-אוסף (לא תלוי בספק): אתם מבצעים אינסטרומנטציה של קוד האפליקציה באמצעות OpenTelemetry SDK ומשתמשים בייצוא OTLP בתהליך כדי לשלוח נתונים לאוסף OpenTelemetry, כמו Google-Built OpenTelemetry Collector או מקלט של סוכן תפעול. הנתונים נשלחים מהאוסף לפרויקט ב- Google Cloud . קוד האפליקציה שלכם נשאר ניטרלי לחלוטין מבחינת הספק.

  • ייצוא ישיר (ספציפי לספק): אתם יכולים להוסיף לקוד האפליקציה את OpenTelemetry SDK ולהגדיר את OpenTelemetry כך שישלח נתוני טלמטריה לפרויקט באמצעות Telemetry API. לא צריך לפרוס אוסף, אבל קוד האפליקציה כולל יחסי תלות ספציפיים לספק.

מומלץ להשתמש באספן OpenTelemetry אם סביבת המחשוב שלכם תומכת בו. בסביבות שבהן לא ניתן להריץ תהליך איסוף נפרד, צריך להשתמש בייצוא ישיר בתוך התהליך.

המלצות לפלטפורמות

בגלל שלסביבות המחשוב של Google Cloud יש יכולות שונות של מחזור חיים ו-sidecar, דפוס האיסוף האופטימלי משתנה בהתאם לפלטפורמה. בקטעים הבאים מפורטות המלצות ספציפיות לסביבת הפריסה שלכם.

GKE

למידע כללי על GKE, קראו את הסקירה הכללית על GKE.

סוג המלצה
מדדים

מומלץ להשתמש בשירות המנוהל של Google Cloud ל-Prometheus.

כדי להוסיף את הכלים, מבצעים אחת מהפעולות הבאות:

מעקבים

מבצעים את הפעולות הבאות:

  1. פריסת Google-Built OpenTelemetry Collector ב-Google Kubernetes Engine

    ה-collector מקבל נתוני מעקב מהמייצא של OTLP בתהליך של ה-SDK, מעבד את הנתונים ושולח אותם לפרויקט ב- Google Cloud באמצעות Telemetry (OTLP) API.

  2. משתמשים בערכת ה-SDK של OpenTelemetry ובמייצא ה-OTLP לשפה שלכם.
יומנים

מגדירים את האפליקציה כך שתוציא יומנים בפורמט JSON ל-stdout ול-stderr. כאן תוכלו למצוא רשימה של מסגרות מומלצות לרישום ביומן.

‫GKE אוסף באופן אוטומטי יומנים שנכתבו ב-stdout וב-stderr. מידע נוסף זמין במאמר מידע על יומני GKE.

Compute Engine

למידע כללי על Compute Engine, קראו את המאמר מכונות וירטואליות.

סוג המלצה
מדדים ומעקבים

מבצעים את הפעולות הבאות:

  1. שימוש ב-סוכן תפעול כדי לאסוף מדדים ויומני מעקב.

    לדוגמה, ראו איסוף מדדים ועקבות של OpenTelemetry Protocol (OTLP). במדריך הזה מוסבר איך להגדיר את סוכן תפעול כדי לקבל נתוני מעקב ומדדים מהמייצאים של OTLP בתהליך של ה-SDK, לשנות את הנתונים האלה ואז לשלוח אותם לפרויקט ב- Google Cloud . נתוני המדדים נשלחים באמצעות Cloud Monitoring API ונתוני המעקב נשלחים באמצעות Cloud Trace API.

  2. משתמשים בערכת ה-SDK של OpenTelemetry ובמייצא ה-OTLP לשפה שלכם.

לחלופין, אם אתם רוצים להגדיר איסוף רק של מדדים בפורמט Prometheus, אתם יכולים להשתמש במקלט Prometheus של סוכן תפעול כדי לאסוף מדדים שנוצרו באמצעות ספריות הלקוח של Prometheus או OpenTelemetry SDK.

יומנים

מבצעים את הפעולות הבאות:

  1. מגדירים את האפליקציה כך שתוציא יומנים בפורמט JSON לקובץ. לרשימת מסגרות, ראו מסגרות מומלצות לרישום ביומן.
  2. מתקינים את סוכן התפעול ומגדירים מקלט. דוגמה לכך מופיעה במאמר מקלטי רישום ביומן.

Cloud Run

למידע כללי על Cloud Run, קראו את המאמר מה זה Cloud Run.

סוג המלצה
מדדים ומעקבים

מבצעים את הפעולות הבאות:

  1. משתמשים בערכת ה-SDK של OpenTelemetry ובמייצא ה-OTLP לשפה שלכם.
  2. פריסת קובץ צדדי של OpenTelemetry לאיסוף מדדים ומעקבים.

    דוגמאות מופיעות במסמכים הבאים:

  3. בשירות Cloud Run, משתמשים בחיוב מבוסס-מכונה. בחיוב לפי מכונה, המעבד (CPU) מוקצה לכל מחזור החיים של המכונה, וזה הכרחי כי כלי המדידה של OpenTelemetry מבצעים עיבוד ברקע. מידע נוסף מופיע במאמר הגדרות החיוב של שירותי Cloud Run.

לחלופין, אם אתם רוצים להגדיר איסוף רק של מדדים בפורמט Prometheus, אתם יכולים להשתמש ב-Prometheus sidecar ל-Cloud Run כדי לאסוף מדדים שנוצרו באמצעות ספריות הלקוח של Prometheus או OpenTelemetry SDK.

יומנים

מגדירים את האפליקציה כך שתוציא יומנים בפורמט JSON ל-stdout ול-stderr. כאן תוכלו למצוא רשימה של מסגרות מומלצות לרישום ביומן.

‫Cloud Run אוסף באופן אוטומטי יומנים שנכתבו ב-stdout וב-stderr. מידע נוסף זמין במאמר כתיבת יומני קונטיינרים.

פונקציות Cloud Run

למידע כללי על פונקציות Cloud Run, קראו את הסקירה הכללית על פונקציות Cloud Run.

סוג המלצה
מדדים בפונקציות Cloud Run אי אפשר לכתוב נתוני מדדים באופן ישיר. אפשר ליצור מדדים מבוססי-יומנים.
מעקבים משתמשים בערכת ה-SDK של OpenTelemetry ובמייצא ה-OTLP לשפה שלכם.
יומנים

מגדירים את האפליקציה כך שתוציא יומנים בפורמט JSON ל-stdout ול-stderr. כאן תוכלו למצוא רשימה של מסגרות מומלצות לרישום ביומן.

פונקציות Cloud Run אוספות באופן אוטומטי יומנים שנכתבו ב-stdout וב-stderr. מידע נוסף זמין במאמר פונקציות Cloud Run: סקירה כללית על מעקב ורישום ביומן.

App Engine

למידע כללי על App Engine, קראו את הסקירה הכללית על App Engine.

סוג המלצה
מדדים משתמשים בערכת ה-SDK של OpenTelemetry ובמייצא ה-OTLP לשפה שלכם.
מעקבים משתמשים בערכת ה-SDK של OpenTelemetry ובמייצא ה-OTLP לשפה שלכם.
יומנים

מגדירים את האפליקציה כך שתוציא יומנים בפורמט JSON ל-stdout ול-stderr. כאן תוכלו למצוא רשימה של מסגרות מומלצות לרישום ביומן.

‫App Engine אוסף באופן אוטומטי יומנים שנכתבו ב-stdout וב-stderr. מידע נוסף זמין במאמר כתיבה והצגה של יומנים.

דוגמאות ומדריכי הטמעה

המסמכים של OpenTelemetry

בקטע הזה יש קישורים ל-OpenTelemetry SDK ולכלי הייצוא של OTLP בשפות שונות.

מקורות מידע כלליים:

המשך

Java

JavaScript

Python