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

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

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

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

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

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

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

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

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

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

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

    • otel-collector-config.yaml: הגדרת OpenTelemetry:

      • בדוגמאות נעשה שימוש ב-otlp receiver לנתוני מדדים ומעקב, וב-filelog receiver לנתוני יומן.

      • בדוגמאות נעשה שימוש ב-otlphttp exporter לנתוני מדדים ונתוני מעקב, וב- Google Cloud exporter לנתוני יומנים.

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

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

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

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

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

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

מפעילים את ממשקי ה-API של Cloud Logging,‏ Cloud Monitoring,‏ Cloud Trace וטלמטריה:

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של שימוש בשירות' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

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

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

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

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