בדף הזה מוסבר איך לייצא עקבות באמצעות Cloud Trace API ו-Google Cloud CLI. צריך להשתמש בגרסה 274.0.0 ואילך של Google Cloud CLI.
מידע על עדכון Google Cloud CLI זמין במאמר gcloud components update .
חלק מהדוגמאות בדף הזה נוצרו באמצעות curl. מידע על הגדרת הכלי הזה זמין במאמר שימוש ב-curl.
דוגמה לשימוש בפקודות Google Cloud CLI כדי להציג, ליצור, לתאר, לעדכן ולמחוק יעד מופיעה במאמר דוגמה מקצה לקצה.
הסברים על המונחים
כדי לפשט את הדוגמאות בדף הזה, נעשה שימוש במשתני סביבה.
בדוגמאות של Google Cloud CLI נעשה שימוש במשתני הסביבה הבאים:
-
SINK_ID: השם או המזהה של יעד הנתונים. לדוגמה,my-sink. אין צורך לספק את הפקודה המלאה ל-Google Cloud CLI, כי הוא יכול לקבוע את הפרויקט שלכם. Google Cloud
DESTINATION: מאחסן את השם המוגדר במלואו של היעד. זה חייב להיות מערך נתונים ב-BigQuery. לדוגמה, יעד תקין הוא:bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
הפקודה לא תיכשל אבל לא יתבצע ייצוא של העקבות.DESTINATION_PROJECT_NUMBERהואGoogle Cloud מספר הפרויקט של היעד, ו-DATASET_IDהוא מזהה מערך הנתונים ב-BigQuery.
בדוגמאות של curl נעשה שימוש במשתני הסביבה הבאים:
-
ACCESS_TOKEN: מאחסן את אסימון ההרשאה. מידע נוסף זמין במאמר שימוש ב-curl. -
PROJECT_ID: מאחסן את Google Cloud מזהה הפרויקט או את מספר הפרויקט. -
PROJECT_NUMBER: מאחסן את מספר הפרויקט ב- Google Cloud . -
SINK_ID: השם או המזהה של יעד הנתונים. לדוגמה,my-sink. -
SINK_BODY: מאחסן את התיאור של משאבTraceSink. המשאב TraceSink כולל שם ויעד של מאגר. בשם צריך לציין את Google Cloud מספר הפרויקט. -
DESTINATION: מאחסן את השם המוגדר במלואו של היעד. זה חייב להיות מערך נתונים ב-BigQuery.
הגדרת היעד
כדי לייצא עקבות ל-BigQuery:
יוצרים את מערך הנתונים של היעד.
יוצרים את יעד ההעברה באמצעות Cloud Trace API או Google Cloud CLI. פרטים נוספים זמינים במאמר יצירת יעד.
נותנים ליעד את התפקיד
dataEditorבמערך הנתונים של BigQuery:מקבלים את זהות הכותב ממקור הנתונים. מידע על זהות הכותב זמין במאמר מאפיינים וטרמינולוגיה של יעד.
זהות בעל הרשאת הכתיבה של sink כלולה בנתוני התגובה לפקודת היצירה. הוא נכלל גם בנתוני התגובה של הפקודה list.
מוסיפים את זהות הכתיבה של יעד הנתונים כחשבון שירות למערך הנתונים ב-BigQuery ומעניקים לה את התפקיד BigQuery data editor (עורך נתונים ב-BigQuery).
במאמר שליטה בגישה למערך נתונים מוסבר איך מוסיפים הרשאות באמצעות Google Cloud מסוף.
כדי להוסיף את ההרשאות באמצעות Google Cloud CLI, משתמשים בפקודה
add-iam-policy-bindingומספקים את מזהה הפרויקט ואת זהות הכותב של יעד הייצוא: Google Cloudgcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \ --member serviceAccount:${WRITER_IDENTITY} \ --role roles/bigquery.dataEditorבפקודה הקודמת,
WRITER_IDENTITYהוא משתנה סביבה שמאחסן את זהות הכתיבה של יעד הנתונים, ו-DESTINATION_PROJECT_IDהוא מזהה הפרויקט ב- Google Cloud של מערך הנתונים ב-BigQuery.
הצגת רשימה של פריטי Sink
כדי להציג רשימה של כל היעדים בפרויקט Google Cloud , כולל זהויות הכתיבה שלהם, מפעילים את השיטה traceSinks.list.
gcloud
כדי לרשום את היעדים שהוגדרו עם פרויקט ברירת המחדל באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud alpha trace sinks list
פרוטוקול
כדי להציג את רשימת היעדים באמצעות curl, שולחים בקשת GET אל:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
לדוגמה, הבקשה הבאה מאחזרת את כל מאגרי הנתונים:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
הצגת פרטים של יעד ספציפי
כדי להציג את הפרטים של יעד ספציפי שנמצא בפרויקט Google Cloud, מפעילים את השיטה traceSinks.get.
gcloud
כדי להציג את הפרטים של יעד הנתונים שמזההו מאוחסן ב-SINK_ID באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud alpha trace sinks describe ${SINK_ID}
פרוטוקול
כדי להציג את הפרטים של יעד הנתונים שהמזהה שלו מאוחסן ב-SINK_ID באמצעות curl, שולחים בקשת GET אל:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}
לדוגמה, הבקשה הבאה מאחזרת את הפרטים של יעד ספציפי:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
יצירת יעד
כדי ליצור יעד בפרויקט Google Cloud , מפעילים את ה-method traceSinks.create.
היעד של Sink חייב להיות מערך נתונים ב-BigQuery.
קבוצת הנתונים הזו צריכה להתקיים לפני שיוצרים את יעד הנתונים. הפקודה Trace לא מאמתת את קיום היעד. מידע על יצירת מערכי נתונים ב-BigQuery זמין במאמר בנושא יצירת מערכי נתונים.
gcloud
כדי ליצור יעד באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
פרוטוקול
כדי ליצור יעד באמצעות curl, שולחים בקשת POST אל:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
לדוגמה, כדי ליצור יעד בשם test_sink לייצוא של טווחי מעקב אל test_dataset בפרויקט עם ${PROJECT_NUMBER}, מגדירים את משתנה הסביבה SINK_BODY כמו שמוצג כאן:
SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'
כדי ליצור את יעד הייצוא, מריצים את הפקודה הבאה:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks
יכול להיות שיחלפו כמה דקות אחרי שתיצרו את יעד הייצוא עד שטווחים של נתוני מעקב ייוצאו ליעד.
מחיקת יעד
כדי למחוק יעד שנמצא בפרויקט Google Cloud , מפעילים את הפקודה traceSinks.delete.
gcloud
כדי למחוק את יעד הנתונים שמזהה שלו מאוחסן ב-SINK_ID באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud alpha trace sinks delete ${SINK_ID}
פרוטוקול
כדי למחוק את יעד הנתונים שהמזהה שלו מאוחסן ב-SINK_ID באמצעות curl, שולחים בקשת DELETE אל:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
לדוגמה, הבקשה הבאה מוחקת יעד:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
עדכון של יעד
כדי לעדכן יעד שנמצא בפרויקט Google Cloud , מפעילים את הפקודה traceSinks.patch.
קבוצת הנתונים הזו צריכה להתקיים לפני שיוצרים את יעד הנתונים. הפקודה Trace לא מאמתת את קיום היעד.
gcloud
כדי לעדכן את יעד ההעברה שמזהה שלו מאוחסן ב-SINK_ID באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
משתנה הסביבה DESTINATION מאחסן את היעד החדש של ה-sink.
פרוטוקול
כדי לעדכן את היעד של ה-sink שהמזהה שלו מאוחסן ב-SINK_ID באמצעות curl, שולחים בקשת PATCH אל:
https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}
לדוגמה, הבקשה הבאה מעדכנת את היעד של מאגר:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination
דוגמה ל-SINK_BODY מופיעה בדוגמה ליצירת יעד.
יכול להיות שיחלפו כמה דקות אחרי שתעדכנו את יעד הנתונים עד שטווחים של נתוני מעקב ייוצאו ליעד החדש.
דוגמה מקצה לקצה
בקטע הזה מוסבר איך להשתמש בפקודות Google Cloud CLI כדי להציג, ליצור, לתאר, לעדכן ולמחוק יעד. הפקודות בוצעו עבור פרויקט עם מזהה הפרויקט a-sample-project. הפרויקט הזה הוגדר מראש כך שיכיל 2 מערכי נתונים ב-BigQuery. לבסוף, בדוגמאות האלה, מאגר הנתונים וכתובת היעד נמצאים באותו פרויקט. זו לא דרישה. היעד והמקור יכולים להיות בפרויקטים שונים.Google Cloud
שלבי ההגדרה
בודקים את הגדרת ברירת המחדל של הפרויקט:
$ gcloud config listדוגמה לתשובה:
[compute] zone = us-east1-b [core] account = user@example.com disable_usage_reporting = True project = a-sample-project Your active configuration is: [default]
מוודאים שגרסת Google Cloud CLI היא לפחות 274.0.0:
$ gcloud --versionדוגמה לתשובה:
Google Cloud SDK 275.0.0 alpha 2020.01.03 beta 2020.01.03 bq 2.0.51 core 2020.01.03 gsutil 4.46 kubectl 2020.01.03
מציגים ברשימה את מערכי הנתונים שזמינים בפרויקט ברירת המחדל:
$ bq lsדוגמה לתשובה:
datasetId --------------- dataset_1 dataset_otherשימו לב: בפעם הראשונה שמשתמשים בפקודות
bq, יכול להיות שיהיה צורך לבחור את הפרויקט.
הגדרת משתני הסביבה
מגדירים את משתני הסביבה שמשמשים את הפקודה של Google Cloud CLI:
$ PROJECT_ID=a-sample-project $ PROJECT_NUMBER=123456789000 $ SINK_ID=a-sample-sink $ DATA_SET_NAME=dataset_1 $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}בדוגמה הזו, היעד וה-sink נמצאים באותו פרויקט. זו לא דרישה. היעד והמקור יכולים להיות בפרויקטים שונים.Google Cloud
בודקים את ההגדרות:
$ echo $SINK_ID a-sample-sink $ echo $DATA_SET_NAME dataset_1 $ echo $DESTINATION bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
הצגת רשימה של פריטי Sink
כדי להציג רשימה של כל היעדים, מריצים את הפקודה הבאה:
$ gcloud alpha trace sinks list
מכיוון שבפרויקט הזה אין יעד, התשובה היא:
Listed 0 items.
יצירת יעד
כדי ליצור יעד, מריצים את הפקודה הבאה:
$ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}דוגמה לתשובה:
You can give permission to the service account by running the following command. gcloud projects add-iam-policy-binding bigquery-project \ --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \ --role roles/bigquery.dataEditor
שימו לב שהשם של חשבון השירות כולל את הערך
export-0000001cbe991a08-3434. המספר 0000001cbe991a08 הוא הייצוג ההקסדצימלי שלPROJECT_NUMBER. הערך3434הוא ערך אקראי.לפני שמריצים את Google Cloud CLI בתגובה הקודמת, חובה להחליף את
bigquery-projectבמזהה הפרויקט.בודקים שהיעד נוצר:
$ gcloud alpha trace sinks listדוגמה לתשובה:
NAME DESTINATION WRITER_IDENTITY a-sample-sink bigquery.googleapis.com/projects/123456789000/datasets/dataset_1 export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
תארו את הכיור בפירוט:
$ gcloud alpha trace sinks describe ${SINK_ID}דוגמה לתשובה:
destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1 name: a-sample-sink writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
צריך להעניק את ההרשאה
bigquery.dataEditorלזהות הכתיבה של יעד הנתונים. הפקודה sink create מחזירה פקודה של Google Cloud CLI שאפשר להשתמש בה כדי לעדכן את ההרשאה.כדי שהפקודה הזו תצליח, צריך לבצע את הפעולות הבאות:
- מוודאים שיש לכם הרשאה לשנות את הרשאות היעד.
- מחליפים את
bigquery-projectבמזהה הפרויקט:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditorשימו לב שהרשומה הראשונה בתשובה לדוגמה הזו היא זהות בעל הרשאת הכתיבה של sink הנתונים:
Updated IAM policy for project [a-sample-project].
bindings:
- members:
- serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
role: roles/bigquery.dataEditor
- members:
- user:user@example.com
role: roles/cloudtrace.admin
- members:
- serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com
role: roles/compute.serviceAgent
- members:
- serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com
role: roles/container.serviceAgent
- members:
- serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com
role: roles/containeranalysis.ServiceAgent
- members:
- serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com
role: roles/containerregistry.ServiceAgent
- members:
- serviceAccount:123456789000-compute@developer.gserviceaccount.com
- serviceAccount:123456789000@cloudservices.gserviceaccount.com
role: roles/editor
- members:
- user:user@example.com
role: roles/owner
etag: BwWbqGVnShQ=
version: 1
שינוי יעד ה-sink
בדוגמה הזו, היעד השתנה מ-dataset_1 ל-dataset_other:
מעדכנים את משתני הסביבה
DATA_SET_NAMEו-DESTINATION:$ DATA_SET_NAME=dataset_other $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME} $ echo ${DESTINATION} bigquery.googleapis.com/projects/123456789000/datasets/dataset_otherחשוב לרענן את הערך של
DESTINATIONאחרי שמשנים אתDATA_SET_NAMEאוPROJECT_NUMBER.משנים את יעד ה-sink:
$ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}פלט לדוגמה:
Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink]. destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other name: a-sample-sink writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
מריצים את הפקודה describe כדי לראות את הפרטים של יעד הנתונים:
$ gcloud alpha trace sinks describe ${SINK_ID} destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other name: a-sample-sink writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.comכשמעדכנים את היעד של sink, לא משנים את זהות בעל הרשאת הכתיבה של ה-sink, ולכן לא צריך לעדכן את ההרשאות של ה-sink.
מחיקת יעד
כדי למחוק יעד, מריצים את הפקודה הבאה:
$ gcloud alpha trace sinks delete ${SINK_ID}
פלט לדוגמה:
Really delete sink [a-sample-sink]? Do you want to continue (y/N)? y Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
כדי לאמת את התוצאה, מריצים את הפקודה list:
$ gcloud alpha trace sinks list Listed 0 items.
אימות
אפשר להשתמש במדד exported_span_count של Cloud Monitoring כבסיס לתרשים שמציג את השגיאות כשמייצאים נתונים של Trace ל-BigQuery. אפשר גם ליצור מדיניות התראות כדי לקבל התראה אם מתרחשות שגיאות בייצוא.
יצירת תרשים
כדי לראות את המדדים של משאבים שבמעקב באמצעות Metrics Explorer:
-
נכנסים לדף leaderboard Metrics explorer במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח של מרכז האפליקציות או את פרויקט הניהול של התיקייה לניהול אפליקציות.
- ברכיב Metric, מרחיבים את התפריט Select a metric, כותבים
Spans Exported to BigQueryבשורת הסינון ומשתמשים בתפריטי המשנה כדי לבחור סוג ספציפי של משאב ומדד:- בתפריט Active resources בוחרים באפשרות Cloud Trace.
- בתפריט Active metric categories בוחרים באפשרות Bigquery_explort.
- בתפריט Active metrics בוחרים באפשרות Spans Exported to BigQuery.
- לוחצים על אישור.
כדי להוסיף מסננים שמסירים סדרות זמן מתוצאות השאילתה, משתמשים ברכיב Filter.
- מגדירים את אופן התצוגה של הנתונים.
- משאירים את הרכיב Filter ריק. אם בוחרים באפשרות הזו, בתרשים מוצגים כל נתוני הסטטוס.
ברכיב Aggregation, מגדירים את התפריט הראשון לערך Mean ואת התפריט השני לערך status.
הבחירות האלה יוצרות סדרת זמן אחת לכל ערך סטטוס ייחודי. בטבלה הבאה מוצגים ערכי הסטטוס האפשריים:
ערך הסטטוס משמעות ופעולה לתיקון okהעברת הנתונים הושלמה. bigquery_permission_deniedייצוא הנתונים ליעד נכשל. הייצוא עלול להיכשל בגלל אחת מהסיבות הבאות:
- לחשבון השירות במאגר של נתוני המעקב אין הרשאה לכתוב למערך הנתונים של היעד. ההרשאה נדחתה.
- היעד של מערך הנתונים במאגר לא קיים. מידע נוסף זמין במאמר בנושא יעד לא תקין.
- שגיאות פנימיות ב-BigQuery. זו שגיאה לא צפויה וזמנית.
bigquery_quota_exceededהפרויקט ב-BigQuery חרג מהמכסה של BigQuery Streaming. ניצלת את כל המכסה invalid_span
internal_errors
invalid_destinationשגיאה לא ידועה שמונעת את ייצוא הנתונים ל-BigQuery. כדי לפתור את הבעיה הזו, אפשר לפנות לתמיכה הטכנית או לשאול שאלה ב-Stack Overflow. מידע נוסף זמין במאמר קבלת תמיכה.
מידע נוסף על הגדרת תרשים זמין במאמר איך בוחרים מדדים כשמשתמשים ב-Metrics Explorer.
אם נתוני היעד של Trace מיוצאים בהצלחה, בתרשים שנוצר עם ההגדרות הקודמות מוצגת סדרת זמן אחת עם ערך הסטטוס ok. אם מתרחשות שגיאות במהלך הייצוא,
אז סדרות זמן נוספות מופיעות בתרשים.
יצירת מדיניות התראות
כדי ליצור מדיניות התראות שתופעל אם יהיו שגיאות בייצוא נתונים של Cloud Trace ל-BigQuery, צריך להשתמש בהגדרות הבאות.
| תנאי חדש שדה |
ערך |
|---|---|
| משאב ומדד | בתפריט Resources בוחרים באפשרות Cloud Trace. בתפריט Metric categories בוחרים באפשרות Bigquery_export. בתפריט Metrics, בוחרים באפשרות Spans Exported to BigQuert. |
| מסנן | status != ok |
| בסדרות עיתיות קיבוץ לפי סדרות עיתיות |
status |
| בסדרות עיתיות צבירה של סדרות עיתיות |
sum |
| חלון נע | 1 m |
| פונקציה אנליטית (window function) | rate |
| הגדרת טריגר להתראה שדה |
ערך |
|---|---|
| סוג התנאי | Threshold |
| טריגר להתראה | Any time series violates |
| מיקום הסף | Above threshold |
| ערך הסף | 0 |
| חלון הבדיקה מחדש | 1 minute |
שימוש ב-curl
בקטע הזה מתוארים המוסכמות וההגדרות שמשמשות להפעלת Cloud Trace API באמצעות הכלי curl:
אימות
יוצרים משתנה סביבה שיכיל את מזהה הפרויקט Google Cloud :
PROJECT_ID=my-project
יוצרים משתנה סביבה שיכיל את מספר הפרויקט: Google Cloud
PROJECT_NUMBER=12345
מאמתים את Google Cloud CLI:
gcloud auth login
מגדירים את מזהה הפרויקט Google Cloud שמוגדר כברירת מחדל:
gcloud config set project ${PROJECT_ID}יוצרים אסימון הרשאה ושומרים אותו במשתנה סביבה:
ACCESS_TOKEN=`gcloud auth print-access-token`
מאמתים את אסימון הגישה:
echo ${ACCESS_TOKEN}התשובה לפקודה צריכה להיות מחרוזת ארוכה של תווים. לדוגמה, במערכת אחת, התגובה מתחילה כך:
y29.GluiBjo....
הפעלת curl
כל פקודת curl כוללת קבוצה של ארגומנטים, ואחריה כתובת ה-URL של משאב Cloud Trace API. הארגומנטים הנפוצים כוללים ערכים שצוינו על ידי משתני הסביבה PROJECT_ID ו-ACCESS_TOKEN.
כל הפעלה של curl היא מהצורה הכללית הבאה:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS]
https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]
where:
[OTHER_ARGS](אופציונלי): אפשר להשמיט את השדה הזה אם שולחים בקשתGET. בסוגים אחרים של בקשות HTTP, מחליפים את placeholder הזה בסוג הבקשה ובכל נתון נוסף שנדרש כדי למלא את הבקשה.-
[API_VERSION]: מציינים את גרסת ה-API. -
[RESOURCE]: מציינים את שם המשאב של Cloud Trace API.
לדוגמה, כדי להציג את 1,000 העקבות האחרונים בפרויקט, מריצים את הפקודה הבאה:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces
פתרון בעיות
בקטע הזה מופיע מידע על פתרון בעיות שיכול לעזור לכם לפתור כשלים בהגדרת ייצוא.
שגיאה של ארגומנט לא תקין לגבי קבוצת נתונים
הודעת השגיאה הבאה מציינת ששם קבוצת הנתונים לא תקין:
ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument.
- '@type': type.googleapis.com/google.rpc.DebugInfo
detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed:
bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.
השגיאה נגרמת כי היעד כולל את מזהה הפרויקט, a-sample-project, כמאפיין של שם מערך הנתונים. Google Cloud
כדי לפתור את השגיאה, מחליפים את a-sample-project:dataset_1 ב-dataset_1 ואז מריצים את פקודת היצירה.
הערה: אפשר להציג את מערכי הנתונים באמצעות הפקודה bq ls.
לא מתקבלים נתוני מעקב
יכולות להיות כמה סיבות לכך שלא תקבלו נתוני מעקב ב-BigQuery.
יעד לא תקין
מוודאים ששם מערך הנתונים ומספר הפרויקט נכונים.
כדי לוודא ששם מערך הנתונים נכון. כדי להציג ברשימה את מערכי הנתונים בפרויקט הנוכחי, מריצים את הפקודה
bq ls.אם בחרתם להשתמש במשתני סביבה, תוכלו להריץ פקודת echo כדי לוודא שהערך של כל משתנה נכון. לדוגמה, מוודאים שהיעד נכון:
$ echo ${DESTINATION} bigquery.googleapis.com/projects/123456789000/datasets/dataset_otherהמשתנה
DESTINATIONתלוי בערך שלPROJECT_NUMBERושלDATA_SET_NAME, ולכן צריך להגדיר קודם את שני המשתנים האלה. בנוסף, אם משנים את אחד משני המשתנים האלה, צריך לרענן את הערך שמאוחסן ב-DESTINATION.כדי לראות את מספר הפרויקטים הנוכחי, מריצים את הפקודה הבאה:
gcloud projects list --filter="${PROJECT_ID}"אפשר להגדיר את
PROJECT_NUMBERבאופן פרוגרמטי באמצעות הפקודה הבאה:$ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
הרשאות לא תקפות
מוודאים שלחשבון השירות הוקצה התפקיד DataEditor ב-BigQuery. כדי לאמת את ההרשאות, מריצים את הפקודה הבאה:
$ gcloud projects get-iam-policy ${PROJECT_ID}
התשובה של הפקודה הזו מתארת את כל הקישורים של IAM.
במקרה הזה, התוצאה היא כמו שמוצג. שימו לב שלזהות של הכותב ב-sink יש את התפקיד dataEditor:
bindings: - members: - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com role: roles/bigquery.dataEditor - members: [Note, content truncated]
ניצלת את כל המכסה
אם קיבלתם נתונים והם הפסיקו להגיע פתאום או שהנתונים חלקיים, יכול להיות שמיציתם את מכסת הנתונים שמוזרמים ל-BigQuery. כדי לראות את המכסה, עוברים לדף IAM & admin (ניהול הרשאות גישה וניהול) ולוחצים על Quotas (מכסות). מחפשים את BigQuery API. יש שני ערכים רלוונטיים: Streaming rows per minute per resource, Streaming bytes per minute per resource.
המאמרים הבאים
מידע על הסכימה של BigQuery זמין במאמר ייצוא ל-BigQuery.