אפשר להוסיף אינסטרומנטציה לאפליקציית C++ באמצעות OpenTelemetry ולהגדיר את כלי הייצוא שלGoogle Cloud C++ OpenTelemetry לשליחת טווחים של מעקב ל-Cloud Trace בפרויקט Google Cloud . אפשר להשתמש בהגדרה בסיסית של מעקב, להגדיר את קצב הדגימה של המעקב או להשתמש באובייקט TracerProvider מותאם אישית. מידע כללי על מכשור של אפליקציות זמין במאמר מכשור ויכולת צפייה.
לפני שמתחילים
מפעילים את Cloud Trace API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
התקנת חבילות OpenTelemetry
- הגדרת סביבת פיתוח בשפת C++
- מתקינים את ספריית כלי הייצוא של OpenTelemetry ב-C++. Google Cloud מידע על התקנה זמין במדריך למתחילים של OpenTelemetry.
הגדרת ייצוא של טווחים ל-Cloud Trace
כדי להגדיר את הייצוא של נתוני מעקב, קוראים לפונקציה google::cloud::otel::ConfigureBasicTracing(...) בפונקציה main():
השדה project_id הוא Google Cloud הפרויקט שבו רוצים לאחסן את העקבות.
הפונקציה ConfigureBasicTracing(...) יוצרת מופע של אובייקט TracerProvider שמטמיע יצואן של Cloud Trace. אם האובייקט שמוחזר על ידי הקריאה ל-ConfigureBasicTracing(...) יוצא מההקשר, האובייקט הקודם TracerProvider מוחזר, אם הוא קיים.
הגדרת תדירות הדגימה
יכול להיות שאפליקציות ייצרו נפח גדול של נתוני מעקב. בדוגמה הבאה אפשר לראות איך מגדירים את קצב הדגימה:
ייצוא ל-Cloud Trace עם TracerProvider מותאם אישית
יכול להיות שיהיו לכם תרחישי שימוש שידרשו אובייקט TracerProvider מותאם אישית. לדוגמה, אם רוצים להשתמש בכמה כלי ייצוא בו-זמנית, צריך ליצור אובייקט TracerProvider בהתאמה אישית. במקרים כאלה, אפשר להשתמש ישירות בכלי לייצוא של Cloud Trace:
לבצע אינסטרומנטציה באפליקציה שלכם
במאמר OpenTelemetry Tracing מוסבר איך להגדיר את האפליקציה כך שתתעד טווחים של מעקבים. בדף הזה נסביר איך לבצע את הפעולות הבאות:
- יצירת טווח
- יצירת טווחים מוטמעים
- הגדרת מאפיינים של span
- יצירת טווחי זמן עם אירועים
- יצירת טווחים עם קישורים
אפליקציה לדוגמה
אפליקציה לדוגמה מופיעה במדריך למתחילים.
הגדרת הפלטפורמה
אפשר להשתמש ב-Cloud Trace ב- Google Cloud ובפלטפורמות אחרות.
הפעילות מתבצעת ב- Google Cloud
כשהאפליקציה שלכם פועלת ב- Google Cloud, אתם לא צריכים לספק לספריית הלקוח פרטי כניסה לאימות בצורה של חשבון שירות. עם זאת, צריך לוודא ש Google Cloud בפלטפורמה שלכם מופעל היקף הגישה של Cloud Trace API.
רשימת הסביבות הנתמכות Google Cloud זמינה במאמר תמיכה בסביבה.
בהגדרות הבאות, הגדרות ברירת המחדל של היקף הגישה מאפשרות את Cloud Trace API:
- סביבה גמישה ב-App Engine
סביבת ברירת המחדל ב-App Engine
Google Kubernetes Engine (GKE)
Compute Engine
Cloud Run
אם אתם משתמשים בהיקפי גישה בהתאמה אישית, אתם צריכים לוודא שהיקף הגישה של Cloud Trace API מופעל:
במאמר הגדרת Google Cloud פרויקט מוסבר איך מגדירים את היקפי הגישה לסביבה באמצעות מסוף Google Cloud .
משתמשי
gcloudצריכים לציין את היקפי הגישה באמצעות הדגל--scopesולכלול את היקף הגישה של Cloud Trace APItrace.append. לדוגמה, כדי ליצור אשכול GKE שמופעל בו רק Cloud Trace API, מבצעים את הפעולות הבאות:gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append
הפעלה מקומית ובמקומות אחרים
אם האפליקציה שלכם פועלת מחוץ ל- Google Cloud, אתם צריכים לספק לספריית הלקוח פרטי כניסה לאימות בצורה של חשבון שירות. חשבון השירות צריך לכלול את התפקיד של סוכן Cloud Trace. הוראות מפורטות מופיעות במאמר יצירת חשבון שירות.
Google Cloud ספריות הלקוח משתמשות ב-Application Default Credentials (ADC) כדי למצוא את פרטי הכניסה של האפליקציה.
יש שלוש דרכים לספק את פרטי הכניסה האלה:
מריצים את
gcloud auth application-default loginממקמים את חשבון השירות בנתיב ברירת המחדל של מערכת ההפעלה. ברשימה הבאה מפורטות נתיבי ברירת המחדל ל-Windows ול-Linux:
ב-Windows:
%APPDATA%/gcloud/application_default_credentials.jsonLinux:
$HOME/.config/gcloud/application_default_credentials.json
מגדירים את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSלנתיב של חשבון השירות:
Linux/macOS
export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key
PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"
הצגת עקבות
נכנסים לדף Trace explorer במסוף Google Cloud
:
אפשר גם להשתמש בסרגל החיפוש כדי למצוא את הדף הזה.
פתרון בעיות
מידע על פתרון בעיות ב-Cloud Trace זמין בדף פתרון הבעיות.
כדי לנפות באגים בייצוא C++ Cloud Trace, אפשר לעיין בקטע פתרון בעיות במשאבי העזרה.
משאבים
פרטים עדכניים על OpenTelemetry ל-C++, תיעוד נוסף ודוגמאות זמינים בכתובת OpenTelemetry.
מידע על הגרסה זמין במאמרים הבאים:
לעיון בתוכן עזר בנושא OpenTelemetry:
לגבי מאגרי GitHub, אפשר לעיין במידע הבא: