הסבר על תובנות מתקדמות לגבי שאילתות

בחירת גרסה של מאמר העזרה:

במסמך הזה מתוארים פרמטרי ההגדרה, המימדים של הטלמטריה, התצוגות והפונקציות של יכולת הצפייה בתובנות מתקדמות לגבי שאילתות ב-AlloyDB Omni.

מידע נוסף על הפעלה של תובנות מתקדמות לגבי שאילתות ועל שליחת שאילתות לגביהן זמין במאמר מעקב אחרי ביצועי שאילתות באמצעות תובנות מתקדמות לגבי שאילתות.

פרמטרים להגדרה

כדי להחיל שינויים בפרמטרים שלא דורשים הפעלה מחדש של מסד הנתונים, מריצים את ALTER SYSTEM SET ואז את SELECT pg_reload_conf(). בטבלה הבאה מתוארים הפרמטרים להגדרת תובנות מתקדמות לגבי שאילתות:

פרמטר סוג ערך ברירת המחדל נדרשת הפעלה מחדש תיאור
google_insights_v2.enabled boolean off כן, להפעלה ראשונית עם shared_preload_libraries. לא, לטעינה מחדש עם pg_reload_conf(). הפעלה או השבתה של איסוף נתוני טלמטריה מתקדמים של תובנות לגבי שאילתות בכל המכונה.
google_insights_v2.qi_max_query_string_length integer 10240 לא (טעינה מחדש עם pg_reload_conf()) מגדיר את האורך המקסימלי בבייטים (1024 עד 102400) שנרשם לתבניות SQL מנורמלות, שבהן ערכים ליטרליים מוסווים כפרמטרים מיקומיים כמו $1 ו-$2.
google_insights_v2.qi_preserve_comments boolean off לא (טעינה מחדש עם pg_reload_conf()) ההגדרה קובעת אם הערות SQL נשמרות בתוך מחרוזות של שאילתות מנורמלות.
google_insights_v2.qi_track_wait_event_types boolean on לא (טעינה מחדש עם pg_reload_conf()) מתעד קטגוריות של צווארי בקבוק ברמה גבוהה של wait_class, כמו CPU,‏ IO,‏ Lock,‏ Timeout ו-IPC.
google_insights_v2.qi_track_wait_events boolean on לא (טעינה מחדש עם pg_reload_conf()) מתעד שמות פרטניים של wait_event ב-PostgreSQL, כמו DataFileExtend,‏ transactionid ו-WALWrite.
google_insights_v2.qi_track_client_address boolean off לא (טעינה מחדש עם pg_reload_conf()) רשומות שמקשרות בין כתובות ה-IP של הלקוחות בתצוגות הסטטיסטיקה של השאילתות וכתובות הלקוחות.
google_insights_v2.qi_track_tag boolean off לא (טעינה מחדש עם pg_reload_conf()) מאפשר מעקב אחרי תגים, כמו תגים של SQLCommenter, בהערות SQL.
google_insights_v2.qi_track_active_queries boolean off לא (טעינה מחדש עם pg_reload_conf()) מאפשר מעקב בזמן אמת אחרי שאילתות פעילות ועסקאות פתוחות.

תצוגות ומדדים של ניראות לפי מאפיין

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

שאילתות

המאפיין queries עוקב אחרי הנתונים הסטטיסטיים של הביצוע וטקסט SQL מנורמל של שאילתות במכונה. כדי לשמור הערות SQL בטקסט שאילתה שעבר נרמול, מגדירים את google_insights_v2.qi_preserve_comments ל-on.

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • observability_service_query_view
    • observability_service_query_coarse_1_view
    • observability_service_query_coarse_2_view
  • עמודות קשורות:
    • ‫query_id: מזהה הגיבוב (hash) של שאילתת ה-SQL המנורמלת.
    • ‫query: טקסט מנורמל של שאילתת SQL.
    • ‫database: מסד הנתונים הלוגי שבו השאילתה הופעלה.
    • ‫username: תפקיד במסד הנתונים שהריץ את השאילתה.
    • ‫total_execution_time: זמן ביצוע מצטבר במיקרו-שניות.
    • ‫total_wait_time: זמן ההמתנה המצטבר במיקרו-שניות.
    • ‫total_read_time: זמן הקריאה המצטבר מהדיסק במיקרו-שניות.
    • ‫total_write_time: זמן הכתיבה המצטבר בדיסק במיקרו-שניות.
    • ‫total_rows: מספר השורות הכולל שהוחזרו או הושפעו מהשאילתה.
    • ‫total_shared_blocks_hit: המספר הכולל של היטים במאגר הנתונים הזמני המשותף.
    • ‫total_shared_blocks_read: המספר הכולל של בלוקים משותפים שנקראו מהדיסק.
    • ‫count: מספר הפעמים הכולל שהשאילתה בוצעה.
    • ‫recorded_on: חותמת הזמן שבה נרשם מרווח הטלמטריה.

סוגי אירועים של המתנה

במאפיין 'סוגי אירועי המתנה' מתועדות קטגוריות של צווארי בקבוק ברמה גבוהה, כשמגדירים את google_insights_v2.qi_track_wait_event_types לערך on (מופעל כברירת מחדל).wait_class

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • עמודות קשורות:
    • ‫wait_class: קטגוריית אירוע ההמתנה, כמו IO,‏ Lock,‏ LWLock,‏ CPU או Internal wait event.
    • ‫wait_event: שם אירוע ההמתנה המפורט של PostgreSQL בתוך מחלקת ההמתנה.
    • ‫time_spent: זמן ההמתנה המצטבר לסוג אירוע ההמתנה, במיקרו-שניות.
    • ‫count: מספר הפעמים הכולל שסוג אירוע ההמתנה התרחש.
    • ‫database: מסד נתונים לוגי שבו התרחש אירוע ההמתנה.
    • ‫username: תפקיד מסד הנתונים שמשויך לאירוע ההמתנה.
    • ‫tag_id: מזהה מספרי של קבוצת התגים המשויכת של SQLCommenter.
    • ‫tag_string: מחרוזת של הערת SQL גולמית שמכילה את תגי האפליקציה.
    • ‫recorded_on: חותמת הזמן שבה נרשם מרווח הטלמטריה.
    • ‫query_id: מזהה ה-hash של השאילתה (ב-observability_service_wait_event_stats_by_query_view).

אירועי המתנה

במאפיין 'אירועי המתנה' מתועדים שמות מפורטים של PostgreSQL wait_event כשgoogle_insights_v2.qi_track_wait_events מוגדר לערך on (מופעל כברירת מחדל).

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • עמודות קשורות:
    • ‫wait_event: שם ספציפי של אירוע המתנה ב-PostgreSQL, כמו DataFileExtend,‏ DataFileRead,‏ WALWrite או Internal wait event.
    • ‫wait_class: קטגוריית אירועי ההמתנה שאליה שייך אירוע ההמתנה.
    • ‫time_spent: זמן ההמתנה המצטבר לאירוע ההמתנה במיקרו-שניות.
    • ‫count: מספר הפעמים הכולל שאירוע ההמתנה התרחש.
    • ‫database: מסד נתונים לוגי שבו התרחש אירוע ההמתנה.
    • ‫username: תפקיד מסד הנתונים שמשויך לאירוע ההמתנה.
    • ‫tag_id: מזהה מספרי של קבוצת התגים המשויכת של SQLCommenter.
    • ‫tag_string: מחרוזת של הערת SQL גולמית שמכילה את תגי האפליקציה.
    • ‫recorded_on: חותמת הזמן שבה נרשם מרווח הטלמטריה.
    • ‫query_id: מזהה הגיבוב של השאילתה (ב-observability_service_wait_event_stats_by_query_view).

מסדי נתונים

המאפיין Databases עוקב אחרי צריכת המשאבים ונפח השאילתות לכל מסד נתונים לוגי, כשהערך של google_insights_v2.enabled הוא on.

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • observability_service_db_load_conn_view
    • observability_service_query_view
    • observability_service_wait_event_no_query_view
  • עמודות קשורות:
    • ‫database: שם מסד הנתונים הלוגי.
    • ‫username: תפקיד במסד הנתונים שהריץ שאילתות במסד הנתונים.
    • total_execution_time: זמן הביצוע המצטבר של השאילתה במסד הנתונים, במיקרו-שניות.
    • ‫total_wait_time: זמן ההמתנה המצטבר במסד הנתונים במיקרו-שניות.
    • ‫count: המספר הכולל של הפעלות השאילתות במסד הנתונים.
    • ‫recorded_on: חותמת הזמן שבה נרשם מרווח הזמן של הטלמטריה.

משתמשים וכתובות ה-IP של הלקוח

כברירת מחדל, המאפיין "משתמשים וכתובות ה-IP של הלקוחות" עוקב אחרי העומס לפי תפקיד במסד הנתונים (username). כדי לאסוף גם את כתובות ה-IP של הלקוחות המתחברים (client_address), צריך להגדיר את google_insights_v2.qi_track_client_address לערך on (off כברירת מחדל).

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • observability_service_query_view
    • observability_service_client_address_stats_by_query_view
  • עמודות קשורות:
    • ‫client_address: כתובת ה-IP של הלקוח המתחבר (כאשר google_insights_v2.qi_track_client_address היא on).
    • ‫username: שם התפקיד במסד הנתונים.
    • ‫database: שם מסד הנתונים הלוגי.
    • ‫query_id: מזהה הגיבוב של שאילתת ה-SQL הנורמלית.
    • ‫time_spent: זמן הביצוע המצטבר של השאילתה לכתובת הלקוח, במיקרו-שניות.
    • ‫count: המספר הכולל של הרצות השאילתות של המשתמש או של כתובת ה-IP של הלקוח.
    • ‫recorded_on: חותמת הזמן שבה נרשם מרווח הזמן של הטלמטריה.

תגים

המאפיין tags עוקב אחרי הנתונים הסטטיסטיים של הרצת השאילתות לפי המטא-נתונים של תגי האפליקציה. כדי לאסוף מדדי תגים, צריך להגדיר את google_insights_v2.qi_track_tag לערך on (off כברירת מחדל). אם ההגדרה היא off, התצוגות האלה לא מחזירות שורות.

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • observability_service_db_load_tag_view
    • observability_service_tag_view
  • עמודות קשורות:
    • ‫tag_id: מזהה מספרי של שילוב תגי האפליקציה.
    • tag_string: מחרוזת הערה גולמית ב-SQL שמכילה את תגי האפליקציה.
    • ‫application: שם האפליקציה שחולץ מתגי SQLCommenter.
    • ‫db_driver: מנהל ההתקן של מסד הנתונים שחולץ מתגי SQLCommenter.
    • ‫framework_name: השם של מסגרת האפליקציה שחולץ מתגי SQLCommenter.
    • ‫framework_controller: בקר המסגרת שחולץ מתגי SQLCommenter.
    • framework_action: פעולת framework שחולצה מתגי SQLCommenter.
    • ‫framework_route: נתיב framework שחולץ מתגי SQLCommenter.
    • traceparent: הקשר של מעקב W3C שחולץ מתגי SQLCommenter.
    • ‫database: השם הלוגי של מסד הנתונים שבו הופעלה השאילתה המתויגת.
    • ‫username: תפקיד במסד הנתונים שהפעיל את השאילתה המתויגת.
    • total_execution_time: זמן הביצוע המצטבר של השאילתה לשילוב התגים, במיקרו-שניות.
    • count: המספר הכולל של ביצועי השאילתות לשילוב התגים.
    • ‫recorded_on: חותמת הזמן שבה נרשם מרווח הזמן של הטלמטריה.

שאילתות פעילות

המאפיין "שאילתות פעילות" עוקב בזמן אמת אחרי שאילתות שפועלות וטרנזקציות פתוחות. כדי לשלוח שאילתות לגבי סשנים פעילים, צריך להגדיר את google_insights_v2.qi_track_active_queries לערך on. כשהערך הוא off, שאילתות לתצוגות האלה מחזירות שגיאה.

התצוגות והעמודות הבאות זמינות למאפיין הזה:

  • תצוגות של ניראות:
    • stat_activity
    • stat_activity_v3
  • עמודות קשורות:
    • ‫pid: מזהה התהליך בקצה העורפי. כדי לסיים סשן, מעבירים את מזהה התהליך לפונקציית המערכת pg_terminate_backend(pid) של PostgreSQL.
    • ‫normalized_query_hash: מזהה הגיבוב (hash) של שאילתת ה-SQL המנורמלת.
    • ‫normalized_query: טקסט SQL מנורמל של השאילתה הפעילה.
    • ‫state: המצב הנוכחי של ה-Backend, כמו active או idle in transaction.
    • ‫backend_start: חותמת הזמן שבה התחיל הסשן הנוכחי. כדי לחשב את משך הסשן בשניות, מחשבים את EXTRACT(EPOCH FROM (clock_timestamp() - backend_start)).
    • ‫xact_start: חותמת הזמן שבה התחילה הטרנזקציה הנוכחית. כדי לחשב את משך העסקה בשניות, מחשבים את EXTRACT(EPOCH FROM (clock_timestamp() - xact_start)).
    • ‫query_start: חותמת הזמן שבה התחילה השאילתה הנוכחית. כדי לחשב את משך השאילתה בשניות, מחשבים את EXTRACT(EPOCH FROM (clock_timestamp() - query_start)).
    • ‫wait_event_type: קטגוריית אירוע ההמתנה אם ה-backend נמצא בהמתנה.
    • ‫wait_event: שם אירוע ההמתנה אם הקצה העורפי ממתין.
    • ‫database: שם מסד הנתונים הלוגי של הסשן הפעיל.
    • ‫username: שם תפקיד במסד הנתונים עבור הסשן הפעיל.
    • application_name: שם האפליקציה המתחברת.
    • ‫client_addr: כתובת ה-IP של הלקוח שמתחבר.