סקירה כללית של דוגמאות למכשירי מדידה שמבוססים על איסוף נתונים

במסמך הזה מתוארת המבנה של דוגמאות האינסטרומנטציה שזמינות לשפות Go,‏ Java,‏ Node.js ו-Python. בדוגמאות האלה מוסבר איך להגדיר אפליקציה לשימוש ב-OpenTelemetry SDK וב-OpenTelemetry Collector.

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

אולי יעניינו אותך דוגמאות אחרות שממחישות הגדרות שונות:

  • במאמר העברה מ-Trace exporter לנקודת הקצה OTLP מוסבר איך להשתמש באינסטרומנטציה בתוך התהליך כדי לשלוח נתוני מעקב ישירות ל Google Cloud פרויקט.

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

  • במאמר הצגת קורלציה בין מדדים לבין עקבות באמצעות נתונים מייצגים מוסבר איך להגדיר אפליקציית Go כדי ליצור נתונים מייצגים. דוגמה היא נקודה על הגרף שמצורפת לנקודה על הגרף של מדד. אפשר להשתמש בנתוני exemplars כדי ליצור קורלציה בין נתוני העקבות והמדדים.

  • במאמר שימוש בסוכן תפעול ובפרוטוקול OpenTelemetry ‏ (OTLP) מוסבר איך להגדיר את סוכן התפעול ואת מקלט OTLP כדי לאסוף מדדים ועקבות מאפליקציה.

איך הדוגמאות פועלות

הדוגמאות ל-Go,‏ Java,‏ Node.js ו-Python משתמשות בפרוטוקול OpenTelemetry כדי לאסוף נתוני מעקב ומדדים. בדוגמאות מוגדרת מסגרת רישום ביומן לכתיבת יומנים מובנים, והאוסף OpenTelemetry מוגדר לקריאה מהזרם stdout של האפליקציה. המלצות לגבי מסגרות מפורטות במאמר בחירת גישה להטמעה.

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

אפשר להריץ את הדוגמאות ב-Cloud Shell, במשאבים של Google Cloudאו בסביבת פיתוח מקומית.

מידע מעמיק

בדוגמאות נעשה שימוש ב-OpenTelemetry Collector כ-sidecar כדי לקבל את נתוני הטלמטריה של האפליקציה ולהעשיר אותם, ואז לשלוח אותם לפרויקטGoogle Cloud באמצעות Google Cloud exporter. הכלי לייצוא ממיר את נתוני הטלמטריה לפורמט שתואם ל-Cloud Trace API, ל-Cloud Monitoring API או ל-Cloud Logging API. לאחר מכן הם שולחים את הנתונים שעברו טרנספורמציה אל פרויקטGoogle Cloud באמצעות פקודת API.

בדוגמאות אפשר לראות איך:

  1. מגדירים את OpenTelemetry לאיסוף מדדים ועקבות באמצעות OpenTelemetry Collector.

    אם תבדקו את הדוגמאות, תראו שהמורכבות של השלב הזה תלויה בשפה. לדוגמה, בשפת Go, בשלב הזה מוגדרת הפונקציה main לקריאה של פונקציה שמגדירה את איסוף המדדים והמעקבים. ב-Go, גם שרת ה-HTTP והלקוח מעודכנים.

  2. מגדירים מסגרת רישום ביומן כדי לכתוב יומנים מובנים.

    מומלץ שהאפליקציות שלכם יכתבו יומנים מובְנים, וכתוצאה מכך מטען הייעודי (payload) של היומן יעוצב כאובייקט JSON. ביומנים האלה, אתם יכולים ליצור שאילתות שמחפשות נתיבי JSON ספציפיים, וגם ליצור אינדקס לשדות ספציפיים במטען הייעודי (payload) של היומן.

    בחלק מהשירותים, כמו Google Kubernetes Engine, יש סוכנים מובנים שמגרדים יומנים מובנים ושולחים אותם לפרויקט Google Cloud . בשירותים אחרים, כמו Compute Engine, צריך להתקין סוכן שמגרד ושולח את היומנים. אם אתם רוצים לקבל מידע על סוכנים שאתם מתקינים, תוכלו לעיין במאמר סקירה כללית על סוכן תפעול.

    לא צריך להתקין סוכנים כדי להשתמש בדוגמאות האלה.

  3. מגדירים קובצי Docker. כל הדוגמאות מכילות את קובצי ה-YAML הבאים:

    • docker-compose.yaml: מגדיר את השירותים לאפליקציה, ל-OpenTelemetry collector ולמחולל עומסים. לדוגמה, השירות של OpenTelemetry Collector‏, otelcol, מציין תמונה, נפח ומשתני סביבה. נקודת הקצה של OpenTelemetry Collector מוגדרת על ידי משתנה הסביבה OTEL_EXPORTER_OTLP_ENDPOINT, שמוגדר בשירות app.

    • otel-collector-config.yaml: הגדרת OpenTelemetry Collector. הקולקטור הזה מציין מקלטים, רכיבי ייצוא, מעבדים וצינורות.

      שירות telemetry מגדיר צינורות עיבוד נתונים לנתוני מעקב, מדדים ויומנים. כל רשומה בצינור הנתונים מציינת מקלט, מעבד ויצואן. אותו מקלט, otlp, משמש למדדים ולעקבות.

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

    • docker-compose.creds.yaml: הקובץ הזה יכול לטעון קובץ של פרטי כניסה בתוך קונטיינר otelcol.Google Cloud הקובץ הזה נדרש כשמריצים דוגמה במחשב מקומי שבו Application Default Credentials (ADC) זמינים רק כקובץ.

ההרשאות הנדרשות

  • כדי לקבל את ההרשאות שדרושות לאפליקציות לדוגמה כדי לכתוב נתוני יומן, מדדים ומעקב, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

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

ממשקי API נדרשים

Enable the Cloud Logging, Cloud Monitoring, Cloud Trace, and Telemetry APIs:

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

gcloud services enable logging.googleapis.com monitoring.googleapis.com cloudtrace.googleapis.com telemetry.googleapis.com

המאמרים הבאים

מידע נוסף על קולקטורים זמין במאמר בנושא Google-Built OpenTelemetry Collector.

אפשר לעיין בדוגמאות שבהן נעשה שימוש בייצוא מבוסס-איסוף.