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

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

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

רכיבים מוליכים

צריך לבצע את הפעולות הבאות:

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

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

  2. משתמשים ב-OpenTelemetry SDK וב-OTLP exporter בשפה שלכם.
יומנים

מגדירים את האפליקציה כך שתפיק יומנים מובְנים ב-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. משתמשים ב-OpenTelemetry SDK וב-OTLP exporter בשפה שלכם.

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

יומנים

צריך לבצע את הפעולות הבאות:

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

Cloud Run

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

סוג המלצה
מדדים ורכיבים מוליכים

צריך לבצע את הפעולות הבאות:

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

    דוגמאות אפשר למצוא במסמכים הבאים:

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

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

יומנים

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

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

פונקציות Cloud Run

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

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

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

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

App Engine

מידע כללי על App Engine זמין במאמר סקירה כללית על App Engine.

סוג המלצה
מדדים משתמשים ב-OpenTelemetry SDK ובכלי לייצוא של Cloud Monitoring לשפה שלכם.
רכיבים מוליכים משתמשים ב-OpenTelemetry SDK ובכלי לייצוא Cloud Trace בשפה שלכם.
יומנים

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

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

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

תיעוד של OpenTelemetry

בקטע הזה יש קישורים ל-OpenTelemetry SDK ולכלי הייצוא של OTLP,‏ Cloud Trace ו-Cloud Monitoring.

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

המשך

Java

JavaScript

Python