אתם יכולים לשלב את נתוני החיוב ב-Cloud שמיוצאים ל-BigQuery עם Looker Studio כדי לראות מידע עדכני לגבי העלויות שלכם ב- Google Cloud .
במאמר הזה מוסבר איך מגדירים את מרכז הבקרה לנתוני חיוב ותובנות לגבי עלויות לנתוני החיוב שלכם ב-Cloud. בעזרת מרכז הבקרה אפשר לענות על שאלות לגבי ההוצאות שלכם ב- Google Cloud . למשל, מה גובה ההוצאות שלי על משאבים של Compute Engine? או אילו סביבות עולות לי הכי הרבה?

כדי להגדיר את מרכז הבקרה צריך לפעול לפי ההנחיות במדריך הזה, או לצפות בסרטון הבא:
יצירת עותק של מרכז הבקרה
Terraform
כדי ליצור לעצמכם עותק של מרכז הבקרה באמצעות Terraform, קודם כל צריך לשכפל את מאגר GitHub שבו המערכת מבצעת אוטומציה של התהליך. בשלב הזה משתמשים ב-Cloud Shell – סביבת מעטפת אינטראקטיבית של Google Cloud שאפשר להשתמש בה מהדפדפן. סביבת Cloud Shell כוללת מראש התקנה מאומתת של Terraform.
ככלל, ההגדרה של Terraform במאגר מובילה לביצוע הפעולות הבאות:
- יצירת תצוגה חדשה ב-BigQuery שמאחזרת את הנתונים מייצוא נתוני העלות הסטנדרטיים שלכם.
- העתקת התבנית של מרכז הבקרה וקישור של העותק לתצוגת הנתונים שלכם ב-BigQuery.
- יצירת קישור של Looker Studio לעותק של מרכז הבקרה. אפשר לשמור את הקישור במרכזי הבקרה ב-Looker Studio.
- הקצאת מזהה של חשבון שירות ב- Google Cloud , שמשמש כשיטת האימות של מרכז הבקרה.
כדי ליצור מרכז בקרה:
פותחים את מאגר הנתונים של GitHub ב-Cloud Shell:
יוצרים קובץ של הגדרות משתנים ב-Terraform שכולל מידע על הפרויקט ועל מערך הנתונים ב-BigQuery. כדי ליצור את הקובץ, משתמשים בפקודה הבאה שנקראת
variables.tfvars:cat << EOF > variables.tfvars project-id = "PROJECT_ID" bq-dashboard-dataset-name = "DATASET_NAME" bq-billing-export-table-id = "PROJECT_ID.DATASET_NAME.TABLE_ID" looker-studio-service-agent-name = "LOOKER_STUDIO_AGENT_NAME" EOFאלה המשתנים:
- PROJECT_ID: מזהה הפרויקט שמארח את מערך הנתונים בחיוב ב-Cloud.
- DATASET_NAME: מערך הנתונים ב-BigQuery שמכיל את הייצוא של נתוני העלות הסטנדרטיים.
- TABLE_ID: שם הטבלה ב-BigQuery שמכילה את הייצוא של נתוני החיוב הסטנדרטיים.
- LOOKER_STUDIO_AGENT_NAME: כתובת האימייל של סוכן השירות של Looker Studio, כמו שמופיעה בדף העזרה של סוכן השירות של Looker Studio
כדי להפעיל את מאגר הנתונים של GitHub בתור ספריית העבודה ב-Terraform, מריצים את הפקודה הבאה:
terraform initכדי לראות תצוגה מקדימה של השינויים בעקבות הגדרת Terraform, מריצים את פקודת
terraform planהבאה:terraform plan -var-file=variables.tfvarsיכול להיות שתתבקשו לאשר ל-Cloud Shell לבצע בשמכם קריאות ל-API.
בודקים את השינויים ב-Terraform. אם צריך, תוכלו לערוך את
variables.tfvarsכדי לשנות ערכים של משתנים. כשהכול יהיה מוכן ליצירת המשאבים, מריצים את פקודתterraform applyהבאה:terraform apply -var-file=variables.tfvarsאחרי הרצת הפקודה תקבלו את חשבון השירות שנוצר לצורך אימות, ואת הקישור למרכז הבקרה ב-Looker Studio.
מעתיקים את השם של חשבון השירות. תצטרכו את המידע הזה כשתגדירו את האימות של מקור הנתונים ב-Looker Studio.
לוחצים על הקישור ל-Looker Studio כדי לפתוח את מרכז הבקרה.
ב-Looker Studio, לוחצים על Edit and share כדי לשמור את מרכז הבקרה. כשמוצגת הבקשה לבדוק את הגדרות הגישה לנתונים, לוחצים על Acknowledge and save.
אם מוצגת בקשה להוסיף נתונים לדוח, לוחצים על Add to report.
עכשיו אתם יכולים לגשת למרכז הבקרה דרך דף הבית של Looker Studio.
Python
כדי ליצור לעצמכם עותק של מרכז הבקרה באמצעות Python, קודם כל צריך לשכפל את מאגר GitHub שבו המערכת מבצעת אוטומציה של התהליך. בשלב הזה משתמשים ב-Cloud Shell – סביבת מעטפת אינטראקטיבית של Google Cloud שאפשר להשתמש בה מהדפדפן.
ככלל, סקריפט ההגדרה של המאגר:
- יוצר תצוגה חדשה במערך הנתונים ב-BigQuery שבו מתבצע ייצוא נתוני העלות הסטנדרטיים שלכם.
- מעתיק את התבנית של מרכז הבקרה ומקשר את העותק לתצוגת הנתונים שלכם ב-BigQuery.
- יוצר קישור של Looker Studio לעותק של מרכז הבקרה. אפשר לשמור את הקישור במרכזי הבקרה ב-Looker Studio.
כדי ליצור מרכז בקרה:
פותחים את מאגר הנתונים של GitHub ב-Cloud Shell:
מנווטים לספרייה
billboard:cd examples/billboardמריצים את הפקודות הבאות כדי להגדיר את סביבת Python לסקריפט:
rm -rf bill-env python3 -m venv bill-env source bill-env/bin/activate pip install -r requirements.txtמריצים את הסקריפט שיוצר את מרכז הבקרה. יכול להיות שתצטרכו לאשר ל-Cloud Shell לבצע בשמכם קריאות ל-API:
python billboard.py \ -pr 'PROJECT_ID' \ -se 'STANDARD_BILLING_EXPORT_DATASET' \ -bb 'BILLBOARD_DATASET'אלה המשתנים:
- PROJECT_ID: מזהה הפרויקט שמארח את מערכי הנתונים של החיוב ב-Cloud.
- STANDARD_BILLING_EXPORT_DATASET: מערך הנתונים ב-BigQuery שמכיל את הייצוא של נתוני עלות השימוש הסטנדרטיים.
- BILLBOARD_DATASET: השם של מערך הנתונים ב-BigQuery שבו נוצרת התצוגה ב-BigQuery של מרכז הבקרה, למשל
example_dashboard_view. אם עדיין אין לכם מערך נתונים לתצוגות, הסקריפט יוצר מערך נתונים חדש בשם הזה.
כשהרצת הסקריפט תסתיים, תקבלו קישור של Looker Studio למרכז הבקרה.
לוחצים על הקישור ל-Looker Studio כדי לפתוח את מרכז הבקרה.
ב-Looker Studio, לוחצים על Edit and share כדי לשמור את מרכז הבקרה. כשמוצגת בקשה להוסיף מקורות נתונים לדוח, לוחצים על Add to report.
עכשיו אתם יכולים לגשת למרכז הבקרה דרך דף הבית של Looker Studio.
(אופציונלי) הגדרת פרטי הכניסה של מקור הנתונים
כברירת מחדל, מרכז הבקרה של נתוני השימוש בחיוב משתמש בפרטי הכניסה שלכם כדי לגשת למקור הנתונים ב-BigQuery. אם אתם רוצים לשתף את מרכז הבקרה עם משתמשים אחרים, מומלץ להשתמש בחשבון שירות ב- Google Cloud שישמש לאימות מערך הנתונים ב-BigQuery, כך שמקור הנתונים לא יהיה תלוי בפרטי הכניסה שלכם.
אם השתמשתם ב-Terraform כדי להעתיק את מרכז הבקרה, מזהה חשבון השירות יתקבל כשמריצים את הפקודה terraform apply. אם השתמשתם בסקריפט Python, mrhl ליצור את חשבון השירות באופן ידני לפי השלבים הבאים:
מאתרים את כתובת האימייל של סוכן השירות של Looker Studio בדף העזרה של סוכן השירות של Looker Studio.
מעניקים לחשבון השירות את ההרשאות הבאות בפרויקט שבו נמצאת התצוגה ב-BigQuery של מרכז הבקרה:
bigquery.dataViewerbigquery.jobUseriam.serviceAccountTokenCreator
אחרי שמקבלים את מזהה חשבון השירות, פועלים לפי השלבים הבאים כדי להשתמש בו לביצוע אימות:
פותחים את מרכז הבקרה דרך דף הבית של Looker Studio.
לוחצים על Edit כדי לערוך את מרכז הבקרה.
בתפריט Resource, בוחרים באפשרות Manage added data sources. השם של מקור הנתונים במרכז הבקרה מתחיל ב-
billing-export-view.בעמודה Actions של מקור הנתונים, לוחצים על Edit.
לוחצים על Data credentials.
בדף Update data credentials בוחרים באפשרות Service account credentials ומזינים את המזהה של חשבון השירות.
לוחצים על Update כדי להשתמש בפרטי הכניסה לחשבון השירות.
לוחצים על Done כדי לשמור את השינויים במקור הנתונים.
כדי להציג את מרכז הבקרה לוחצים על View.
עדכון מרכז הבקרה לשימוש בתוויות של הארגון
במרכז הבקרה יש כמה תרשימים, כמו אלה שבדף Cost Reporting: Labels, שמבוססים על התוויות של המשאבים. כדי לראות פירוט מדויק של העלויות לפי תוויות ספציפיות, צריך לשנות את מסנני ברירת המחדל כך שישתמשו בתוויות שלכם.
פותחים את מרכז הבקרה דרך דף הבית של Looker Studio.
לוחצים על Edit כדי לערוך את מרכז הבקרה.
בתפריט Resource בוחרים באפשרות Manage filters.
בודקים את המסננים שמבוססים על
labels.keyו-project.labels.key, ובמקרים הרלוונטיים לוחצים על Edit כדי לשנות את מפתחות התוויות למפתחות שבהם הארגון משתמש.לדוגמה, אם משתמשים במפתח התווית
departmentכדי לארגן משאבים לפי יחידה עסקית, עורכים את המסנןbusiness_unitומשנים את המסנןproject.labels.keyל-department.לוחצים על Close כדי לסיים את עריכת המסנן.
ניתוח הנתונים במרכז הבקרה
נתוני העלות מפורטים בדפים של מרכז הבקרה ב-Looker Studio, כך שתוכלו לראות תקצירים של העלויות והמגמות ולקבל מידע מפורט על ההוצאות.
ברוב הדפים אפשר לסנן את הנתונים לפי פרויקט, ולהשתמש בלוח השנה כדי לנתח את העלויות לפי תקופה.
הצגת סקירה כללית של העלויות
בדף Overview תוכלו לראות סקירה כללית לגבי העלויות נטו בחודש החשבונית הנוכחי ובחודשים קודמים, העלויות של השירותים המובילים והעלויות היומיות במהלך 30 הימים האחרונים.
בדף Trends אפשר להשוות בין העלויות בתקופות שונות, למשל בין החודש הנוכחי לחודש שעבר, או בין הרבעון הנוכחי לרבעון הקודם.
בדף Analysis תוכלו לנתח את העלויות לאורך זמן ולזהות אנומליות, כמו הוצאות גבוהות או נמוכות במיוחד.
בחינת הגורמים לשינוי בעלויות
בדפים הבאים תוכלו לגלות איפה אתם מוציאים הכי הרבה כסף:
- עלות לפי שירות, לפי חודש
- עלות לפי פרויקט, לפי חודש
- עלות לפי פרויקט, שירות ומק"ט
- עלות לפי אזור
כדי לקבל מידע מפורט על העלויות של כל שירות, אפשר להיעזר בדפים שספציפיים לשירות. לדוגמה, בדף GKE Clusters מופיע פירוט העלויות לפי אשכולות GKE ומרחבי שמות.
בחינת הזדמנויות לחיסכון באמצעות הנחות תמורת התחייבות לשימוש (CUD)
בהנחות תמורת התחייבות לשימוש (CUD) מוצעים מחירים מוזלים בתמורה להתחייבות להשתמש בכמות מינימלית של משאבים בפרק זמן מסוים.
בדפי ה-CUD במרכז הבקרה מופיע השימוש שלכם ב-Compute Engine, ב-Cloud SQL וב-Memorystore שעשוי לעמוד בקריטריונים לקבלת הנחות תמורת התחייבות לשימוש. אם כבר יש לכם הנחות תמורת התחייבות לשימוש, בדפים האלה יוצגו רק נתוני שימוש שלא נכללים בהנחות הקיימות.
הצגת העלויות של תוכנות ורישיונות נוספים ב-Cloud Marketplace
בדף Marketplace אתם יכולים לראות את העלויות של התוכנות שרכשתם מ-Cloud Marketplace, כמו Google Cloud NetApp Volumes.
בדף Licenses אתם יכולים לראות כמה אתם מוציאים על רישיונות נוספים, כמו רישיונות ל-Windows Server ב-Compute Engine ורישיונות של צד שלישי שרכשתם מ-Cloud Marketplace.
הצגת העלויות לפי תוויות
אפשר להתאים אישית את המסננים של מרכז הבקרה כדי להשתמש בתוויות של הארגון. אחרי עדכון המסננים תוכלו להשתמש בדפים הבאים כדי להציג את העלויות בפרויקטים ובתיקיות:
בדף By application מוצגות העלויות של כל המשאבים שמשויכים למפתח התווית
application. לדוגמה, אם יש לכם אפליקציה לאינטרנט ואפליקציה לנייד, ולמשאבים שלהן יש את התוויותapplication:webו-application:mobileבהתאמה, תוכלו לראות את העלויות של כל אפליקציה בנפרד.בדף Labels מוצגות העלויות של תוויות ספציפיות, כמו מרכז עלויות וקוד עסק. אם התאמתם אישית את המסננים במרכז הבקרה, תוכלו לשנות את הכותרות של התרשימים בהתאם למסננים.
(מתקדם) שינוי הנתונים למספר חשבונות לחיוב ב-Cloud
אם אתם רוצים שמרכז הבקרה יכלול נתונים ממספר חשבונות לחיוב ב-Cloud, אתם יכולים לשנות את התצוגות של BigQuery כך שיכללו את הייצוא של נתוני החיוב של כל החשבונות לחיוב ב-Cloud.
לפני שמתחילים
כדי לכלול את החשבונות לחיוב ב-Cloud, צריך לבצע את כל השלבים בקטע הדרישות המוקדמות במדריך הזה.
עדכון התצוגות ב-BigQuery כך שיכללו נתוני ייצוא נוספים של החיוב ב-Cloud
נכנסים לדף BigQuery במסוף Google Cloud .
בוחרים את הפרויקט שמכיל את מערך הנתונים שיצרתם עבור מרכז הבקרה.
בחלונית Explorer מרחיבים את הפרויקט ואז מרחיבים את מערך הנתונים.
לוחצים על התצוגה billboard כדי לראות את הפרטים שלה. בתצוגה מוצגת שאילתה על ייצוא נתוני העלות ונתוני השימוש הסטנדרטיים.
לוחצים על הכרטיסייה Details ואז על Edit Query. השאילתה על התצוגה דומה לשאילתה הבאה:
SELECT *, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost, PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month, date(usage_end_time) AS date from `PROJECT_ID.BILLING_ACCOUNT_EXPORT` s WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)כש-PROJECT_ID הוא שם הפרויקט ב-BigQuery שמכיל את ייצוא נתוני העלות הסטנדרטיים של החיוב ב-Cloud, ו-BILLING_ACCOUNT_EXPORT הוא השם של הטבלה ב-BigQuery שמכילה את נתוני העלות הסטנדרטיים שלכם.
משכפלים את השאילתה הקיימת, ובקטע
FROMמחליפים את מזהה הפרויקט ואת הטבלה ב-BigQuery במידע של החשבון הנוסף לחיוב ב-Cloud.מוסיפים את האופרטור
UNION ALLבין שתי השאילתות כדי לשלב בין הנתונים. השאילתה הסופית תיראה בערך כמו בדוגמה הבאה, שמשלבת את ייצוא הנתונים של החשבונות לחיוב BILLING_ACCOUNT_1 ו-BILLING_ACCOUNT_2, שנמצאים בפרויקטים PROJECT_ID_1 ו-PROJECT_ID_2 בהתאמה.SELECT *, --query for BILLING_ACCOUNT_1 COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost, EXTRACT(DATE FROM _PARTITIONTIME) AS date FROM `PROJECT_ID_1.BILLING_ACCOUNT_1_EXPORT` s WHERE _PARTITIONTIME >"2021-01-01" UNION ALL SELECT *, --query for BILLING_ACCOUNT_2 COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) AS credits_sum_amount, COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0) + cost as net_cost, PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month, date(usage_end_time) AS date from `PROJECT_ID_2.BILLING_ACCOUNT_2_EXPORT` s WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)חוזרים על השלבים האלה לתצוגה billboard_detail, שבה המערכת מבצעת שאילתה על נתוני העלות ונתוני השימוש המפורטים.
אם אחד מהחשבונות מוגדר למטבע שאינו דולר ארה"ב, חוזרים על השלבים האלה ומשתמשים בעמודה
currency_conversion_rateכדי להמיר לדולר ארה"ב, כמו בדוגמה הבאה:select *, (COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0))/currency_conversion_rate AS credits_sum_amount, (COALESCE((SELECT SUM(x.amount) FROM UNNEST(s.credits) x),0))/currency_conversion_rate + cost/currency_conversion_rate as net_cost, 'USD' as net_cost_currency, PARSE_DATE("%Y%m", invoice.month) AS Invoice_Month, date(usage_end_time) AS date from `PROJECT_ID.BILLING_ACCOUNT_DATASET` s WHERE date(usage_end_time) > DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)