תצוגות Analytics ב-Observability Analytics מאפשרות להגדיר שאילתת SQL עם סכימה מותאמת אישית של נתוני יכולת התצפית, כדי לפשט טרנספורמציות מורכבות ולעשות בהן שימוש חוזר. אפשר להריץ מחדש רק שאילתה שנשמרה, אבל אפשר להפנות לתצוגת ניתוח כאל מקור נתונים בסעיף FROM של שאילתות SQL אחרות.
סקירה כללית
תצוגת ניתוח נתונים היא משאב שאפשר להריץ עליו שאילתות. כלומר, אחרי שמגדירים תצוגת ניתוח נתונים, אפשר לכתוב שאילתות שבהן מציינים את תצוגת ניתוח הנתונים בסעיף FROM.
היתרון העיקרי בשימוש בתצוגות ניתוח נתונים הוא שאתם לא מוגבלים לשאילתות של הנתונים בפורמט שמוגדר על ידי API או מערכת. תצוגת ניתוח נתונים מאפשרת להגדיר סכימה, וכך לפשט את השאילתות או לקצר את הזמן שמוקדש לכתיבת שאילתות. השאילתה בתצוגת ניתוח הנתונים יכולה לבצע פעולות כמו שמירה רק של שדות ספציפיים, שינוי שם של שדות, העברה של שדות מוטבעים לעמודה ברמה העליונה וביצוע קיבוץ וצבירה.
תצוגות מפורטות ב-Analytics הן לא תצוגות מהותיות. תצוגת ניתוח נתונים היא לא תצוגה שחושבה מראש ושומרת במטמון את תוצאות השאילתות באופן תקופתי. לכן, שליחת שאילתה לתצוגת ניתוח נתונים שקולה לשליחת שאילתה לתצוגות שמופיעות בשאילתה של תצוגת ניתוח הנתונים.
תצוגות מפורטות ב-Analytics הן כלי יעיל יותר משאילתות שמורות, שהן שאילתות שמריצים בדף Observability Analytics ואז שומרים. אפשר להריץ מחדש שאילתה שמורה, אבל אי אפשר להריץ שאילתה על התוצאות של שאילתה שמורה.
סוגים של תצוגות מפורטות ב-Analytics
יש שני סוגים של תצוגות ניתוח נתונים: תצוגות שהוגדרו על ידי המשתמש ותצוגות שהוגדרו על ידי המערכת:
תצוגות ניתוח נתונים שמוגדרות על ידי המשתמש הן תצוגות ניתוח נתונים שאתם יוצרים. אתם יכולים לשלוח שאילתות, לערוך ולמחוק תצוגות ניתוח נתונים שהוגדרו על ידי המשתמש.
תצוגות מפורטות ב-Analytics שמוגדרות על ידי המערכת הן תצוגות מפורטות ב-Analytics שנוצרות על ידי Google Cloud שירותים. אפשר להריץ שאילתות בתצוגות ניתוח נתונים שהוגדרו על ידי המערכת. עם זאת, אי אפשר לערוך או למחוק אותם.
מידע על הצגת התצוגות המפורטות של Analytics ב Google Cloud פרויקט זמין במאמר הצגת התצוגות המפורטות של Analytics.
מיקום התצוגות המפורטות ב-Analytics
המיקום של תצוגת ניתוח נתונים נקבע לפי המיקום של המשאבים שהיא שולחת להם שאילתות. לדוגמה, אם תצוגת ניתוח נתונים שולחת שאילתה לתצוגת יומן או לתצוגת יכולת צפייה שנמצאת במיקום global, גם המיקום של תצוגת ניתוח הנתונים צריך להיות global. כשמשתמשים ב Google Cloud מסוף
כדי ליצור תצוגת ניתוח, המיקום מוגדר באופן אוטומטי.
תרחישים לדוגמה
בדוגמאות הבאות אפשר לראות איך אפשר להשתמש בתצוגות ניתוח נתונים כדי לפשט שאילתות ולעשות בהן שימוש חוזר.
שאילתה לפרטי הרשת
רוצים לנתח את ביצועי הרשת באמצעות VPC Flow Logs. צריך לנתח את הביצועים הכוללים של הרשת ולזהות רשתות ספציפיות, כתובות IP ומארחים. המידע הזה מאוחסן בשדות מקוננים בשדה json_payload של רשומה ביומן.
כדי לפשט את שאילתות הניתוח, יוצרים את תצוגת הניתוח הבאה
ומקצים לה את השם network_details:
SELECT
-- Create a column for each network field.
JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
JSON_VALUE(json_payload.connection.src_ip) as src_ip,
JSON_VALUE(json_payload.connection.src_port) as src_port,
JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
JSON_VALUE(json_payload.connection.dest_port) as dest_port,
CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
-- Only query the VPC Flow Logs log.
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
לפני שמשתמשים בשאילתה, צריך להגדיר את הערכים של המשתנים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- LOCATION: המיקום של תצוגת היומן.
- BUCKET_ID: השם או המזהה של קטגוריה ביומן.
- LOG_VIEW_ID: המזהה של תצוגת היומן, שמוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.
כשרוצים לנתח את ביצועי הרשת, שולחים שאילתה לתצוגת ניתוח נתונים. לדוגמה, אם אתם מעוניינים רק בשם המופע ובכמות הנתונים שנשלחו, תוכלו לכתוב את השאילתה הבאה:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
שאילתת בסיס לניתוח זמן האחזור של API
כמה צוותים צריכים נתוני ביצועים שבועיים כדי להשלים את הניתוח שלהם. במקום שכל צוות ייצור את הנתונים השבועיים, אתם יוצרים תצוגת ניתוח נתונים ששולפת את הנתונים השבועיים. צוותים אחרים יכולים לשלוח שאילתות לתצוגת ניתוח הנתונים ואז לבצע את הניתוח שלהם.
השאילתה הבאה ממחישה איך להשתמש ב-SQL כדי לחשב את זמן האחזור המינימלי, המקסימלי והממוצע של הבקשות:
SELECT week, MIN(took_ms) as min, MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE json_payload IS NOT NULL
AND SEARCH(labels,"frontend")
AND JSON_VALUE(json_payload.message) = "request complete"
ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week
חילוץ שם שירות של מעקב
נניח שאתם רוצים לכתוב שאילתות שמנתחות את נתוני העקבות, ואתם רוצים להציג או לקבץ לפי שם שירות מסונתז. השאילתה של תצוגת ניתוח הנתונים שלכם קובעת את שם השירות של יחידה לוגית למעקב באמצעות הפונקציה COALESCE, שמעריכה רשימה של ביטויים לפי הסדר ומחזירה את הערך של הביטוי הראשון שלא מוערך כ-NULL:
SELECT
start_time,
-- Set the value of service name based on the first non-null value in the list.
COALESCE(
JSON_VALUE(resource.attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
name AS span_name,
duration_nano,
status.code AS status,
trace_id,
span_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans`
LIMIT 10
לפני שמשתמשים בשאילתה, מחליפים את PROJECT_ID במזהה של פרויקטGoogle Cloud .
איחוד נתונים של מעקב ויומנים באמצעות מזהה המעקב
כשמנתחים אפליקציה, לפעמים רוצים ליצור קורלציה בין נתוני היומן לבין נתוני המעקב. אפשרות אחת היא ליצור תצוגת ניתוח נתונים שמבצעת את הפעולה join ומדווחת על שדות נבחרים.
השאילתה הבאה מצטרפת לנתוני היומן ולנתוני המעקב באמצעות מזהי הטווח והמעקב:
SELECT
T.trace_id,
T.span_id,
T.name,
T.start_time,
T.duration_nano,
L.log_name,
L.severity,
L.json_payload,
L.text_payload,
L.proto_payload,
L.insert_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans` AS T
JOIN
`PROJECT_ID.us.BUCKET_ID.LOG_VIEW_ID` AS L
ON
-- Join log and trace data by both the span ID and trace ID.
-- Don't join only on span ID because this field isn't globally unique.
T.span_id = L.span_id
-- A regular expression is required because the storage format of the trace ID
-- differs between a log view and a trace view.
AND T.trace_id = REGEXP_EXTRACT(L.trace, r'/([^/]+)$')
לפני שמשתמשים בשאילתה, צריך להגדיר את הערכים של המשתנים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- BUCKET_ID: השם או המזהה של קטגוריה ביומן.
- LOG_VIEW_ID: המזהה של תצוגת היומן, שמוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.
בדוגמה, אפשר לראות שגם תצוגת היומן וגם תצוגת הניטור נמצאות באותו המיקום, us. תצוגת ניתוח נתונים יכולה לשלוח שאילתות לכמה תצוגות, אבל התצוגות האלה צריכות להיות באותו מיקום.
מגבלות
המגבלות הבאות רלוונטיות לתצוגות מפורטות של נתונים ב-Analytics:
- תצוגת ניתוח נתונים יכולה לשלוח שאילתות רק לתצוגות של יומנים ולתצוגות של יכולת צפייה.
- משאב ההורה של תצוגת ניתוח נתונים חייב להיות Google Cloud פרויקט.
- אפשר להריץ שאילתות בתצוגת ניתוח נתונים רק בדף Observability Analytics, ורק כשמשתמשים במנוע השאילתות Observability Analytics (ברירת מחדל).
- כל התצוגות המפורטות שתצוגת ניתוח נתונים שולחת אליהן שאילתה צריכות להיות באותו מיקום.
- כדי ליצור תצוגות מפורטות של נתוני Analytics או לנהל אותן, צריך להשתמש במסוף Google Cloud .
- בכל פרויקט Google Cloud אפשר ליצור עד 100 תצוגות ניתוח.
- אפשר ליצור לכל היותר 50 תצוגות ניתוח נתונים לכל אזור.
- בכל Google Cloud פרויקט, תצוגת ניתוח נתונים יכולה להיות ב-10 אזורים לכל היותר.
המאמרים הבאים
- יצירה, שאילתה וניהול של תצוגות ניתוח.
- שליחת שאילתות וניתוח טלמטריה באמצעות Observability Analytics.
- יצירת תרשים של תוצאות שאילתת SQL.
- שמירה ושיתוף של שאילתות
- דוגמאות לשאילתות SQL.