מיפוי מאפייני OTLP לסוג המשאב

במאמר הזה מוסבר על הכללים שבהם משתמשת Google Cloud Observability כדי לקבוע את סוג המשאב המפוקח של Logging עבור נתוני יומנים שמוזנים על ידי Telemetry API. המשאב במעקב מתאר את המקור של נתוני היומן, וב-LogEntry הוא מיוצג באמצעות תוויות. ‫Google Cloud Observability קובע את הערכים של התוויות האלה באמצעות מאפייני המשאב של OTLP.

המבנה הכללי של נתוני יומן בפורמט OTLP

כשנתוני יומן נשלחים אל Google Cloud באמצעות Telemetry API, הנתונים האלה צריכים להיות בפורמט שתואם ל-OTLP. המבנה הכללי של הנתונים האלה מוצג כאן:

"resourceLogs": [
    {
      "resource": {
        "attributes": [...]
      },
      "scopeLogs": [
        {
          "logRecords": [...]
        }
      ]
    }
]

שימו לב ש-OpenTelemetry מאגדת קבוצות של יומנים נפרדים, שכל אחד מהם מיוצג על ידי מבנה logRecord, עם מידע על המקור של היומנים האלה, שמיוצג על ידי מבנה resource.

כש-Google Cloud Observability מקבל אובייקט resourceLogs, הוא יוצר LogEntry אחד לכל logRecord. בניגוד ל-OTLP שבו מידע המקור נאסף באצווה עם אוסף של יומנים נפרדים, כל מבנה LogEntry מכיל מידע על המקור של היומן ועל היומן עצמו.

מידע נוסף על המבנה של נתוני יומן בפורמט OTLP זמין בlogs.proto של OpenTelemetry.

הגדרת מאפייני משאבים של OTLP באמצעות Google Cloud resource detector

כדי להגדיר מאפייני משאבים של OTLP בנתוני היומן של OTLP, צריך להשתמש בGoogle Cloud גלאי משאבים. הגלאים האלה מצרפים לטלמטריה את מאפייני המשאב של OTLP שמתארים את המקור של הטלמטריה:

  • כדי לייצא נתונים באמצעות כלי איסוף, צריך להגדיר את זיהוי המשאבים כחלק מהמעבדים של כלי האיסוף. לדוגמה, יכול להיות שרכיב האיסוף יציין שני גלאי משאבים:

    resourcedetection:
        detectors: ["env", "gcp"]
    

    בדוגמאות הבאות מופיעים אוספי נתונים שמייצאים מדדים או נתוני מעקב:

  • אם אתם משתמשים ביצוא ישיר, אתם צריכים להשתמש בכלי המתאים Google Cloud לזיהוי משאבים בשפה שלכם:

איך מגדירים תוויות של משאבים

כל רשומה ביומן מכילה קבוצה של תוויות שמזהות את המקור של הרשומה ביומן, שנקרא גם משאב למעקב ב-Logging. האיור הבא מציג את התוויות של Google Kubernetes Engine.

resource: {
    labels: {
        cluster_name: "my-cluster"
        container_name: "server"
        location: "us-central1"
        namespace_name: "default"
        pod_name: "my-pod"
        project_id: "my-project"
    }
    type: "k8s_container"
}

כפי שמוצג, למשאב שבמעקב יש שדה type וערך אחד או יותר של labels. לכל הפחות, התוויות של משאב בפיקוח כוללות את project_id או את resource_container.

בטבלה הבאה מפורטים הכללים שבהם משתמשת Google Cloud Observability כדי למפות מאפייני משאב של OTLP למשאב שבמעקב. הטבלה מסודרת. כלומר, אם מאפייני המשאב כוללים את cloud.platform והערך הוא gcp_compute_engine, אז סוג המשאב שבמעקב מוגדר כ-gce_instance. כדי לקבוע את הערך של תווית של משאב במעקב, Google Cloud Observability משתמש ברשימה מתועדפת של מאפייני משאב. הערך של תווית הוא מחרוזת ריקה אם אף אחד ממאפייני המשאב לא זמין.

מאפיין OTLP
וערך
שמצורפים לרשומת יומן
סוג המשאב במעקב ב-Cloud Logging
ערכי תוויות של משאבים במעקב
כפי שנקבעו ממאפייני משאבים של OTLP, לפי סדר עדיפות
cloud.platform
has value
gcp_compute_engine
gce_instance

project_id: ראו הסקת מזהה הפרויקט.

instance_id: instance_id, host.id

zone: אזור, cloud.availability_zone

cloud.platform
has value
gcp_app_engine
gae_app

project_id: ראו הסקת מזהה הפרויקט.

module_id: gae_module_id, faas.name

version_id: gae_version_id, faas.version

zone: אזור, cloud.availability_zone

cloud.platform
has value
aws_ec2
aws_ec2_instance

project_id: ראו הסקת מזהה הפרויקט.

instance_id: instance_id, host.id

aws_account: aws_account, cloud.account.id

region: region, cloud.availability_zone, cloud.region

cloud.platform
has value
gcp_bare_metal_solution
baremetal instance

resource_container: ראו הסקת מזהה resource_container.

region: region, cloud.availability_zone, cloud.region

instance_id: instance_id, host.id

השדות service.name ו-
service.instance.id
לא ריקים
generic_task

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

namespace: namespace, service.namespace

job_name: job, service.name, faas.name

task_id: task_id, service.instance.id, faas.instance

השדות faas.name ו-
faas.instance
לא ריקים
generic_task

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

namespace: namespace, service.namespace

job_name: job, service.name, faas.name

task_id: task_id, service.instance.id, faas.instance

השדות k8s.cluster.name ו-
k8s.container.name
לא ריקים
k8s_container

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

cluster_name: cluster_name, k8s.cluster.name

namespace_name: namespace_name, k8s.namespace_name

pod_name: pod_name, k8s.pod.name

container_name: container_name, k8s.container.name

השדות k8s.cluster.name ו-
k8s.pod.name
לא ריקים
k8s_pod

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

cluster_name: cluster_name, k8s.cluster.name

namespace_name: namespace_name, k8s.namespace_name

pod_name: pod_name, k8s.pod.name

השדות k8s.cluster.name ו-
k8s.node.name
לא ריקים
k8s_node

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

cluster_name: cluster_name, k8s.cluster.name

node_name: node_name, k8s.node.name

k8s.cluster.name
לא ריק
k8s_cluster

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

cluster_name: cluster_name, k8s.cluster.name

אין תוויות אחרות שתואמות generic_node

project_id: ראו הסקת מזהה הפרויקט.

location: מיקום, אזור זמינות בענן, אזור בענן

namespace: namespace, service.namespace

node_id: node_id, host.id, host_name

הסקת ערך התווית של מזהה מאגר משאבים או פרויקט

לכל סוגי המשאבים במעקב ב-Logging יש תווית project_id או תווית resource_container. המערכת מחפשת את הערכים של התוויות האלה במאפיינים הבאים, לפי הסדר:

  • project_id
  • gcp.project.id
  • gcp.project_id
  • gcp.dest_project_id
  • gcp.resource.container
  • resource_container
  • cloud.account.id
  • cloud.account_id