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

אתם יכולים לבחור את גישת המדידה הכי יעילה לאפליקציה שלכם, בהתאם ל 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 . קוד האפליקציה שלכם נשאר ניטרלי לחלוטין מבחינת הספק.

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

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

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

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

GKE

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

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

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

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

עקבות

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

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

    האוסף מקבל נתוני מעקב מהמייצא של 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 בשפות שונות.

חומר עיוני כללי:

‎.NET

המשך

Java

JavaScript

Python