מסננים ב-Cloud Monitoring API מאפשרים לבחור סדרות זמן ספציפיות, סוגי מדדים, משאבים במעקב וקבוצות משאבים בבקשות API, בתרשימים ובמדיניות התראות. כדי לספור תהליכים שפועלים במכונות הווירטואליות במדיניות התראה או בתרשים, צריך להשתמש במסנני תקינות תהליכים.
לפני שמתחילים
אם אתם לא מכירים את המושגים מדדים, סדרות זמנים ומשאבים במעקב, קראו את המאמר מדדים, סדרות זמנים ומשאבים.
אם אתם לא מכירים את נושא התוויות, תוכלו לקרוא את המבוא במאמר תוויות.
שימוש במסננים
אתם יכולים להשתמש במסננים ב-Monitoring API כדי:
- בוחרים את נתוני סדרת הזמנים הספציפיים שמוחזרים מבקשת API של
list. המסנן יכול לבחור סדרות זמנים על סמך הפרויקט, הקבוצה, מאפייני המשאב במעקב ומאפייני המדד של הנתונים. למידע נוסף ולדוגמאות, ראו אחזור נתונים של סדרת זמנים.
להקצות משאבים ל
Groupעל סמך המאפיינים של המשאבים והפרויקט שאליו הם שייכים. מידע נוסף ודוגמאות זמינים במאמר הגדרת חברות בקבוצה.בוחרים משאבים בתוך קבוצה על סמך המאפיינים של המשאבים. מידע נוסף ודוגמאות זמינים במאמר הצגת רשימה של חברי קבוצה.
להציג רשימה של סוגי מדדים מסוימים. מידע נוסף ודוגמאות מופיעים במאמר הצגת רשימה של תיאורי מדדים.
להציג רשימה של סוגי משאבים במעקב ספציפיים. למידע נוסף ולדוגמאות, ראו הצגת תיאורים של משאבים במעקב.
בוררי סינון
מסנן מורכב מבורר אחד לפחות, שהוא מילת מפתח לסינון. הדוגמאות הבאות ממחישות את הסלקטורים השונים:
-
project: התאמה כשמדדי הפרויקטים שצוינו גלויים לפרויקט ההיקף של היקף המדדים שצוין בפרמטרname.משתמשים בבורר
projectכשבפרויקט ב- Google Cloud אפשר לראות את המדדים של כמה פרויקטים ב- Google Cloud או חשבונות AWS, ורוצים לראות רק מדדים של קבוצת משנה של הפרויקטים האלה. לדוגמה, אם היקף המדדים בפרויקט שלProject-Aכולל אתProject-B, תהיה התאמה כש-nameיהיה בערךProject-Aותשתמשו במסנן הבא:project = "Project-B"
המסנן הבא תואם לכל מזהה פרויקט שמתחיל ב-
Project-:project = monitoring.regex.full_match("Project-.*") -
group: התאמה למשאבים ששייכים ל-Groupאחד.המסנן הבא תואם לקבוצה עם המזהה
group-id:group.id = "group-id" -
resource: התאמה ל משאבים במעקב מסוג מסוים או עם ערכי תוויות מסוימים.-
המסנן הבא תואם לכל המשאבים במעקב שהם מכונות וירטואליות (VM) של Compute Engine:
resource.type = "gce_instance"
-
המסנן הבא תואם לכל המשאבים שהאזור שלהם מתחיל ב-
europe-:resource.labels.zone = starts_with("europe-")
-
-
metric: התאמה ל סוג מדד או לסדרת זמן מסוימים עם תווית מסוימת שתואמת לערך ספציפי.-
המסנן הבא תואם לסוג מדד ספציפי:
metric.type = "compute.googleapis.com/instance/cpu/usage_time"
-
המסנן הבא תואם לסדרות זמנים עם תווית בשם
instance_name, שהערך שלה מתחיל ב-gke-hipsterאו ב-gke-nginx:metric.labels.instance_name = monitoring.regex.full_match("gke-(hipster|nginx).*")
-
בטבלה הבאה מוצגים הסלקטורים שמותרים במסננים, על סמך הקריאה ל-Monitoring API:
| מטרת הסינון | דף project של הבורר |
דף group של הבורר |
דף resource של הבורר |
דף metric של הבורר |
|---|---|---|---|---|
| הגדרת קבוצות | כן | כן* | ||
| הצגת רשימה של חברי הקבוצה | כן | כן | ||
| הצגת רשימה של סדרות זמנים | כן | כן | כן | כן † |
| הצגת רשימה של תיאורי מדדים | כן | כן | ||
| הצגת רשימה של מתארי משאבים במעקב | כן |
† כשמציגים סדרות זמנים, צריך לציין בדיוק סוג אחד של מדד.
בקטעים הבאים מוצגות דוגמאות לשימושים אופייניים במסנני מעקב. במאמר תחביר של מסננים מפורטים כל האובייקטים והאופרטורים של המסננים.
אחזור נתונים של פעולות על ציר הזמן
Method:
projects.timeSeries.list
Filter objects:
project, group.id, resource.type, resource.labels.[KEY], metric.type,
metric.labels.[KEY]
סדרת זמן היא רשימה של נקודות על הגרף עם חותמות זמן של סוג מדד ממשאב ספציפי במעקב. לפרטים נוספים, קראו את המאמר מודל המדדים. סוג המדד מצוין באמצעות תיאור מדד, והמשאב במעקב מצוין באמצעות תיאור משאב במעקב.
המסנן שצוין ב-method timeSeries.list חייב לכלול בורר metric, והבורר הזה חייב לציין בדיוק סוג אחד של מדד:
- כדי להחזיר את כל סדרות הזמנים לסוג מדד מסוים, משתמשים במסנן הבא:
metric.type = "compute.googleapis.com/instance/cpu/usage_time"
כדי להחזיר את כל הסדרות של נתונים לאורך זמן של קבוצה ספציפית, משתמשים במסנן הבא: הבורר
groupפועל רק עם נתונים מיושרים של סדרות זמנים. למידע נוסף, ראו בורר קבוצות:metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND group.id = "2468013579"
כדי להחזיר את כל סדרות הזמנים ממכונה ספציפית של Compute Engine, משתמשים במסנן הבא:
metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND metric.labels.instance_name = "my-instance-name"
כדי להחזיר את כל סדרות הזמנים ממכונות Compute Engine שהשמות שלהן מתחילים ב-
frontend-, משתמשים במסנן הבא:metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND metric.labels.instance_name = starts_with("frontend-")כדי להחזיר את כל סדרות הזמנים ממכונות Compute Engine שהשמות שלהן מתחילים ב-
gke-hipsterאו ב-gke-nginx, משתמשים במסנן הבא:metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND metric.labels.instance_name = monitoring.regex.full_match("^gke-(hipster|nginx).*")
הגדרת החברות בקבוצה
Method:
projects.groups.create
Filter objects: project, resource.type, resource.labels.key, metadata.system_labels.[KEY], metadata.user_labels.[KEY]
קבוצה יכולה להכיל כל מספר של משאבים, כפי שצוין במסנן. החברות בקבוצה היא דינמית, ויכול להיות שיותר או פחות משאבים יתאימו למסנן בכל פעם שהמסנן נבדק. הפרמטר name באובייקט Group מציין את הקבוצה ואת הפרויקט שמוגדר כהיקף המדדים.
אם משתמשים בבורר project במסנן, צריך לציין פרויקט שהמדדים שלו גלויים לפרויקט ההיקף.
לדוגמה, כדי ליצור קבוצה שכוללת רק מכונות וירטואליות (VM) של Compute Engine באירופה, משתמשים במסנן הבא:
resource.type = "gce_instance" AND resource.labels.zone = starts_with("europe-")
כדי לקבל מידע על שיטות API שבהן אפשר להשתמש כדי למחוק, לעדכן או להציג קבוצות, עיינו בדף העזרה של projects.groups API.
חברים בקבוצה של כרטיסי מוצר
Method:
projects.groups.members.list
אובייקטים של סינון: project, resource.type, resource.labels.[KEY]
הפרמטר name מציין פרויקט היקף של היקף המדדים בפרויקט וקבוצה שמוגדרת בפרויקט הזה. אם לא מציינים מסנן, הפונקציה projects.groups.members.list מחזירה רשימה של חברי הקבוצה.
אפשר להשתמש במסנן כדי להגביל את חברי הקבוצה שאתם מאחזרים. אם המסנן כולל בורר project, הערך של הבורר צריך לציין פרויקט שהמדדים שלו גלויים לפרויקט ההיקף. אם מציינים ערך לא חוקי, המערכת מתעלמת מהבורר project.
לדוגמה, נניח שאתם יוצרים קבוצה שכוללת את כל המשאבים שהשם שלהם מכיל את test. כדי להציג רק את חברי הקבוצה שהם נושאי Pub/Sub, משתמשים במסנן הבא:
resource.type = "pubsub_topic"
הצגת רשימה של תיאורי מדדים
Method:
projects.metricDescriptors.list
Filter objects: project, metric.type
אפשר להשתמש במסנן כדי להגביל את תיאורי המדדים שמאחזרים.
לדוגמה, כדי להחזיר רק את תיאורי המדדים של Compute Engine, משתמשים במסנן הבא:
metric.type = starts_with("compute.googleapis.com")
ברשימת המדדים מפורטים כל סוגי המדדים הזמינים. במאמר מוסכמות למתן שמות למדדים מוסבר איך נותנים שמות למדדים.
הצגת רשימה של מתארי משאבים במעקב
Method:
projects.monitoredResourceDescriptors.list
סינון אובייקטים: resource.type
אפשר להשתמש במסנן כדי להגביל את התיאורים של המשאבים במעקב שאתם מאחזרים.
לדוגמה, כדי לאחזר רק את התיאורים של המשאבים במעקב של Pub/Sub, משתמשים במסנן הבא:
resource.type = starts_with("pubsub")
ברשימת המשאבים במעקב מופיעה רשימה מלאה של סוגי המשאבים במעקב שמוגדרים על ידי Monitoring.
דוגמאות
בדוגמאות לסינון אנחנו משתמשים בתיאור המדד, בתיאור המשאב במעקב ובמכונה הווירטואלית הבאים, שפושטו לצורך המחשה:
# Metric descriptor:
{ "name": "projects/my-project-id/metricDescriptors/compute.googleapis.com%2Finstance%2Fdisk%2Fread_bytes_count",
"type": "compute.googleapis.com/instance/disk/read_bytes_count",
"labels": [ { "key": "device_name",
"description": "The name of the disk device." } ] }
# Monitored resource descriptor:
{ "name": "monitoredResourceDescriptors/gce_instance",
"type": "gce_instance",
"labels": [
{ "key": "instance_id",
"description": "The instance ID provided by Google Compute Engine." },
{ "key": "zone",
"description": "The Google Cloud Platform zone hosting the instance."
} ] }
# Resource descriptor for a virtual machine instance.
{ "type": "gce_instance",
"instance_id": "1472038649266883453",
"zone": "us-east-1b",
"disks": [ "log_partition" ],
"machine_type": "n1-standard-2",
"tags": { "environment": "bleeding-edge",
"role": "frobulator" },
"project_id": "my-project-id" }
דוגמאות לאחזור מדדים
כדי לבקש את השימוש ברוחב הפס לקריאה מהדיסק בכל המכונות ובכל המכשירים, מגדירים מסנן באופן הבא. המסנן הזה מחזיר לכל מכונה סדרת זמנים נפרדת שמדווחת על רוחב הפס לקריאה בכל מכשיר:
metric.type = "compute.googleapis.com/instance/disk/read_bytes_count"
כדי לצמצם את הבקשה לשאילתה על רוחב הפס לקריאה רק של מכשיר הדיסק שנקרא log_partition בכל מכונה, מגדירים את המסנן באופן הבא. המסנן הזה מחזיר לכל מכונה לכל היותר סדרת נתונים אחת, בהתאם לשאלה אם קיים מכשיר עם השם הזה במכונה:
metric.type = "compute.googleapis.com/instance/disk/read_bytes_count" AND metric.labels.device_name = "log_partition"
כדי להגביל את הבקשה למכונה אחת, מציינים את המכונה הזו:
resource.type = "gce_instance" AND resource.labels.instance_id = "1472038649266883453" AND metric.type = "compute.googleapis.com/instance/disk/read_bytes_count" AND metric.labels.device_name = "log_partition"
סינון לפי קבוצות
בדוגמאות הבאות מוסבר איך להשתמש בבורר הקבוצות במסננים כדי להגביל את המשאבים במעקב לאלה שבקבוצה ספציפית. בקטע בורר המשאבים להגדרות של קבוצות מוסבר על הבוררים שמשמשים להגדרת החברות בקבוצה.
{ "name": "projects/my-test-project/groups/024681012",
"display_name": "My Redis Cluster",
"filter": "metadata.user_labels.role=redis" }
בקריאה ל-method projects.timeSeries.list, המסנן הבא מבקש את השימוש ברוחב הפס לקריאה מהדיסק בכל המכונות של Compute Engine בקבוצה מסוימת. הקבוצה צריכה להיות מוגדרת בפרויקט ההיקף של היקף המדדים שצוין בפרמטר name של השיטה:
resource.type = "gce_instance" AND group.id = "024681012" AND metric.type = "compute.googleapis.com/instance/disk/read_bytes_count"
חומר עזר: תחביר של מסננים
במאמר שימוש במסננים תוכלו לקרוא סקירה כללית על מסננים, כולל דוגמאות.
מסנן מעקב הוא מחרוזת שמורכבת מעד ארבעה סוגים של בוררים:
<monitoring_filter> ::= <project_selector> AND
<group_selector> AND
<resource_selector> AND
<metric_selector>
המסנן תואם לפריט אם כל הבוררים הכלולים תואמים לפריט.
כמו שמתואר בקטעים הבאים, בבוררים מסוימים יכולות להיות כמה השוואות שמחוברות באמצעות AND או OR. אין חשיבות לסדר של הבוררים במסנן, אבל אסור לערבב בין השוואות של בוררים שונים.
בהתאם למטרת המסנן, יכול להיות שבוררים מסוימים יהיו חובה, אופציונליים או אסורים. לדוגמה, המסנן שמשמש להצגת רשימה של סדרות זמן חייב להכיל בורר מדדים. עם זאת, המסנן שמגדיר את המשאבים בקבוצה לא יכול להכיל בורר מדדים, כי קבוצות לא מכילות סוגי מדדים או סדרות זמנים.
השוואות
מסננים והבוררים שלהם בנויים מהשוואות. כל השוואה היא בפורמט הבא:
-
[OBJECT]: בוחר ערך לבדיקה. אחת מהאפשרויות הבאות:
project group.id metric.type metric.labels.[KEY] resource.type resource.labels.[KEY] metadata.system_labels.[KEY] metadata.user_labels.[KEYSTRING][KEY] הוא שם, כמו
zoneאוinstance_id.[KEYSTRING] יכול להיות שם, אבל אם הוא מכיל תווים מיוחדים, צריך להקיף אותו במירכאות (
"). -
[OPERATOR]: אופרטור השוואה, אחד מהבאים:
= # equality (case-sensitive) > < >= <= # numeric ordering != # not equal : # "has" substring match and test for key (case-sensitive) -
[VALUE]: ליטרל או בקשה להפעלת פונקציה מובנית; אחת מהאפשרויות הבאות:
<string> # "a Unicode string". Don't use apostrophes (`'`) to quote strings. <bool> # true or false <number> # 0, -2, 123456, 3.14156 <function> # operators on the right side of '=' or '!=': # starts_with(<string>) # ends_with(<string>) # has_substring(<string> [, ignore_case=false]) # one_of(<string>,...,<string>) for up to 100 strings # monitoring.regex.full_match(<RE2-string>)חוץ מהשימוש בשיטה
timeSeries.list, המסנןhas_substringמקבל ארגומנט שני אופציונלי, שמציין אם ההתאמה מתעלמת מאותיות רישיות או לא. ערך ברירת המחדל הואfalse, כך שההתאמה שמוגדרת כברירת מחדל תלוית אותיות רישיות:- תלוי אותיות רישיות:
display_name=has_substring("Demo") - תלוי אותיות רישיות:
display_name=has_substring("Demo", false) - לא תלוי-רישיות:
display_name=has_substring("Demo", true)
כשמשתמשים בשיטה
timeSeries.list, רק הפורמטhas_substring(<string>)נתמך.המסנן
monitoring.regex.full_matchמקבל מחרוזת של ביטוי רגולרי בתחביר RE2. - תלוי אותיות רישיות:
אתם יכולים להשתמש באופרטורים הבאים כדי לקבץ או לשנות השוואות. ל-OR יש קדימות גבוהה יותר מאשר ל-AND. צריך לכתוב את האופרטורים באותיות רישיות:
(...) # grouping comparisons AND # conjunction (optional but recommended) OR # disjunction
אפשר להשמיט את האופרטור AND בין אופרטורים, אבל עדיף לכלול אותו כדי שהשאילתה תהיה ברורה יותר ופחות מועדת לשגיאות.
ההשוואה x = one_of("a", "b", "c") שוות ערך לביטוי הבא:
(x = "a" OR x = "b" OR x = "c")
NOT, לפני השוואה, אבל לא עם אופרטור הקיים (:) או לפני ביטוי בסוגריים:
NOT # negates the following comparison
בוררי סינון
אפשר להשתמש בבוררים כדי להגביל את אפשרויות הסינון לפריטים מסוימים.
בקטעים הבאים, סוגריים מסולסלים משמשים לציון חזרה. לדוגמה, הסימון <x> {OR <y>} אומר שאפשר לכתוב כל אחת מהאפשרויות הבאות:
<x> <x> OR <y> <x> OR <y> OR <y> <x> OR <y> OR <y> OR <y> ...
בורר הפרויקטים
בורר הפרויקטים מגביל את בחירת המסנן לפריטים ששייכים לפרויקט אחד או לאחד מתוך קבוצת פרויקטים. אפשר לציין כל פרויקט באמצעות המזהה שלו, המספר שלו או באמצעות ביטוי רגולרי:
<project_selector> ::= project '=' (<number> | <string> | monitoring.regex.full_match '(' <RE2-string> ')') {OR project '=' (<number> | <string> | monitoring.regex.full_match '(' <RE2-string> ')')}
אם בורר הפרויקטים כולל יותר מהשוואה אחת, צריך להקיף את כל הבורר בסוגריים כדי לשפר את הקריאוּת. לדוגמה:
(project=12345 OR project="my-project-id" OR monitoring.regex.full_match("^6789.*") OR monitoring.regex.full_match("some-project-id.*" )) AND resource.type="gce_instance"
בורר הקבוצות
בורר קבוצות מגביל את בחירת המסנן לפריטים ששייכים לקבוצה אחת:
<group_selector> ::= group.id '=' <string>
לדוגמה, אפשר להשתמש במסנן הבא כדי לאחזר סדרת זמן מכל אחת מהמכונות הווירטואליות בקבוצה:
group.id = 12345 AND resource.type = "gce_instance" AND metric.type = "compute.googleapis.com/instance/disk/read_bytes_count"
אפשר להשתמש בבורר הקבוצות רק במסננים שמועברים ל-method projects.timeSeries.list. בנוסף, כדי לבחור קבוצה צריך נתונים מיושרים. כלומר, הקריאה ל-projects.timeSeries.list חייבת לכלול ערכים בשדות perSeriesAligner ו-alignmentPeriod. הסיבה לכך היא שהחברות בקבוצה היא בעצמה סוג של סדרת זמנים שצריך לצרף לנתוני המדדים, והוספת פרמטרים של התאמה מאפשרת לכם לשלוט באופן שבו הצירוף הזה מתבצע.
מידע נוסף על פרמטרים של התאמה זמין במאמר צבירת נתונים.
בורר המשאבים
בורר המשאבים מגביל את בחירת המסנן למשאבים – או לפריטים שמשויכים למשאבים – שיש להם סוג משאב או ערכי תוויות ספציפיים:
<resource_selector> ::= <resource_type_expression>
| <resource_label_expression>
| <resource_type_expression> AND <resource_label_expression>
<resource_type_expression> ::= resource.type '=' <string>
| resource.type ':' <string>
| resource.type '=' starts_with '(' <string> ')'
| resource.type '=' ends_with '(' <string> ')'
<r_label_comparison> ::= resource.labels.[KEY] '=' (<string> | <bool>)
| resource.labels.[KEY] ':' <string>
| resource.labels.[KEY] '=' (starts_with | ends_with) '(' <string> ')'
| resource.labels.[KEY] ('=' | '>' | '<' | '>=' | '<=') <number>
<resource_label_expression> ::= <r_label_comparison> {AND <r_label_comparison>}
| <r_label_comparison> {OR <r_label_comparison>}
אם משתמשים ביותר מ-<r_label_comparison> אחד בבורר, צריך להקיף את כולם בסוגריים כדי לשפר את הקריאוּת.
לדוגמה, אפשר להשתמש במסנן הבא כדי להגדיר קבוצה שכוללת את כל המכונות הווירטואליות של Compute Engine בארה"ב ובאירופה:
resource.type = "gce_instance" AND
(resource.labels.zone = starts_with("us-") OR resource.labels.zone = starts_with("europe-"))
בורר משאבים להגדרות של קבוצות
בוררי המשאבים שמשמשים להגדרת החברות בקבוצה משתמשים בהרחבות לתחביר של <resource_selector>:
אפשר לכלול מסננים על סמך הערך של תוויות המערכת של המטא-נתונים,
metadata.system_labels.[KEY], ותוויות המשתמש של המטא-נתונים,metadata.user_labels.[KEYSTRING]. מומלץ להוסיף מירכאות למפתחות שלmetadata.user_labelsכי הם יכולים להכיל תווים מיוחדים כמו מקפים.כשבורר מכיל מסנן מטא-נתונים ומסנן משאבים, צריך לשלב אותם עם
AND. אי אפשר להשתמש ב-OR. לדוגמה, בתרשים עם הבורר הבא מוצג השימוש ב-CPU בכל המכונות הווירטואליות עם סוג המכונהe2-mediumאוe2-micro:metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" AND (metadata.system_labels."machine_type"="e2-medium" OR metadata.system_labels."machine_type"="e2-micro")
אפשר להשתמש באופרטור "לא שווה" (
!=) כדי להשוות בין סוגי משאבים, תוויות של משאבים ומטא-נתונים. אפשר להשתמש באופרטור כשמשווים בין מחרוזות, מספרים, ערכים בוליאניים או פונקציות של מחרוזות משנה. לדוגמה, הביטויresource.type!=starts_with("gce")הוא True אם סוג המשאב לא מתחיל ב-"gce".אפשר להשתמש באופרטור
NOTאחד לפני השוואת משאבים. לדוגמה, הביטויNOT resource.labels.zone="europe"הוא True אם האזור של המשאב לא כולל את"europe". אי אפשר להשתמש ב-NOTלפני אופרטור exists (:) או ביטוי בסוגריים.אתם יכולים להשתמש באופרטור "exists" (
:) כדי לבדוק אם קיימים מפתחות. לדוגמה, ההשוואהresource.labels:zoneנכונה אם מפתח התוויתzoneקיים במשאב.
לדוגמה, אחד ממפתחות המטא-נתונים של משאבי הפלטפורמה למכונות וירטואליות הוא spot_instance. בורר הסינון הבא בוחר מכונות שהן מכונות Spot:
resource.type = "gce_instance" AND metadata.system_labels.spot_instance = true
בורר המדדים
בורר מדדים מציין מדדים מסוימים או תיאורי מדדים, על ידי הגבלת סוג המדד ותוויות המדד. כשמשתמשים בבורר המדדים עם השיטה projects.timeSeries.list, צריך לציין בו סוג מדד אחד:
<metric_selector> ::= <metric_name_expression> [AND <metric_label_expression>]
<metric_name_expression> ::= metric.type '=' <string>
| metric.type ':' <string>
| metric.type '=' starts_with '(' <string> ')'
| metric.type '=' ends_with '(' <string> ')'
<metric_label_comparison> ::= metric.labels.[KEY] '=' <string> | <bool>
| metric.labels.[KEY] ':' <string>
| metric.labels.[KEY] '=' starts_with '(' <string> ')'
| metric.labels.[KEY] '=' ends_with '(' <string> ')'
| metric.labels.[KEY] ('=' | '>' | '<' | '>=' | '<=') <number>
<metric_label_expression> ::= <metric_label_comparison> {[AND] <metric_label_comparison>}
| <metric_label_comparison> {OR <metric_label_comparison>}
לדוגמה, אפשר להשתמש במסנן הבא כדי לאחזר סדרת זמן של מכונה ספציפית של מסד נתונים:
metric.type = "cloudsql.googleapis.com/database/state" AND (metric.labels.resource_type = "instance" AND metric.labels.resource_id = "abc-123456")