הגדרת ייצוא

בדף הזה מוסבר איך לייצא עקבות באמצעות 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:

  1. יוצרים את מערך הנתונים של היעד.

  2. יוצרים את יעד ההעברה באמצעות Cloud Trace API או Google Cloud CLI. פרטים נוספים זמינים במאמר יצירת יעד.

  3. נותנים ליעד את התפקיד dataEditor במערך הנתונים של BigQuery:

    1. מקבלים את זהות הכותב ממקור הנתונים. מידע על זהות הכותב זמין במאמר מאפיינים וטרמינולוגיה של יעד.

      זהות בעל הרשאת הכתיבה של sink כלולה בנתוני התגובה לפקודת היצירה. הוא נכלל גם בנתוני התגובה של הפקודה list.

    2. מוסיפים את זהות הכתיבה של יעד הנתונים כחשבון שירות למערך הנתונים ב-BigQuery ומעניקים לה את התפקיד BigQuery data editor (עורך נתונים ב-BigQuery).

      • במאמר שליטה בגישה למערך נתונים מוסבר איך מוסיפים הרשאות באמצעות Google Cloud מסוף.

      • כדי להוסיף את ההרשאות באמצעות Google Cloud CLI, משתמשים בפקודה add-iam-policy-binding ומספקים את מזהה הפרויקט ואת זהות הכותב של יעד הייצוא: Google Cloud

        gcloud 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

שלבי ההגדרה

  1. בודקים את הגדרת ברירת המחדל של הפרויקט:

    $ 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]
    
  2. מוודאים שגרסת 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
    
  3. מציגים ברשימה את מערכי הנתונים שזמינים בפרויקט ברירת המחדל:

    $ bq ls
    

    דוגמה לתשובה:

        datasetId
     ---------------
      dataset_1
      dataset_other
    

    שימו לב: בפעם הראשונה שמשתמשים בפקודות bq, יכול להיות שיהיה צורך לבחור את הפרויקט.

הגדרת משתני הסביבה

  1. מגדירים את משתני הסביבה שמשמשים את הפקודה של 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

  2. בודקים את ההגדרות:

    $ 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.

יצירת יעד

  1. כדי ליצור יעד, מריצים את הפקודה הבאה:

    $ 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 במזהה הפרויקט.

  2. בודקים שהיעד נוצר:

    $ 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
    
  3. תארו את הכיור בפירוט:

    $ 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
    
  4. צריך להעניק את ההרשאה 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:

  1. מעדכנים את משתני הסביבה 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.

  2. משנים את יעד ה-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:

  1. נכנסים לדף  Metrics explorer במסוף Google Cloud :

    כניסה אל Metrics Explorer

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח של מרכז האפליקציות או את פרויקט הניהול של התיקייה לניהול אפליקציות.
  3. ברכיב Metric, מרחיבים את התפריט Select a metric, כותבים Spans Exported to BigQuery בשורת הסינון ומשתמשים בתפריטי המשנה כדי לבחור סוג ספציפי של משאב ומדד:
    1. בתפריט Active resources בוחרים באפשרות Cloud Trace.
    2. בתפריט Active metric categories בוחרים באפשרות Bigquery_explort.
    3. בתפריט Active metrics בוחרים באפשרות Spans Exported to BigQuery.
    4. לוחצים על אישור.
  4. כדי להוסיף מסננים שמסירים סדרות זמן מתוצאות השאילתה, משתמשים ברכיב Filter.

  5. מגדירים את אופן התצוגה של הנתונים.
    1. משאירים את הרכיב Filter ריק. אם בוחרים באפשרות הזו, בתרשים מוצגים כל נתוני הסטטוס.
    2. ברכיב 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:

אימות

  1. יוצרים משתנה סביבה שיכיל את מזהה הפרויקט Google Cloud :

    PROJECT_ID=my-project
    
  2. יוצרים משתנה סביבה שיכיל את מספר הפרויקט: Google Cloud

    PROJECT_NUMBER=12345
    
  3. מאמתים את Google Cloud CLI:

    gcloud auth login
    
  4. מגדירים את מזהה הפרויקט Google Cloud שמוגדר כברירת מחדל:

    gcloud config set project ${PROJECT_ID}
    
  5. יוצרים אסימון הרשאה ושומרים אותו במשתנה סביבה:

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. מאמתים את אסימון הגישה:

    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.

לפתיחת הדף Quotas

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

מידע על הסכימה של BigQuery זמין במאמר ייצוא ל-BigQuery.