יומנים ומדדים

בדף הזה מוסבר איך Google Distributed Cloud מתעד סוגים שונים של מידע על הפעולה שלו, ואיך אפשר לראות את המידע הזה. איסוף של סוגים מסוימים של יומנים ומדדים כרוך בחיובים נוספים. מידע נוסף זמין במאמר חיוב על יומנים ומדדים.

הגדרת רישום ביומן ומעקב

לפני שמתחילים לאסוף יומנים ומדדים, צריך לבצע את הפעולות הבאות:

  1. מפעילים את ממשקי ה-API של רישום ביומן באמצעות הפקודות הבאות:

    gcloud services enable opsconfigmonitoring.googleapis.com --project PROJECT_ID
    gcloud services enable logging.googleapis.com --project PROJECT_ID
    gcloud services enable monitoring.googleapis.com --project PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה של פרויקט היעד. Google Cloud

  2. מקצים את התפקידים שנדרשים לכתיבת יומנים ומדדים:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role roles/opsconfigmonitoring.resourceMetadata.writer \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[kube-system/metadata-agent]"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role roles/logging.logWriter \
         --member "serviceAccount:PROJECT_ID.svc.id.goog[kube-system/stackdriver-log-forwarder]"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role roles/monitoring.metricWriter \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[kube-system/gke-metrics-agent]"
    

    מחליפים את PROJECT_ID במזהה של פרויקט היעד. Google Cloud

יומנים

בקטע הזה מפורטים סוגי המשאבים של Cloud Logging שנתמכים ב-Distributed Cloud. כדי לראות את היומנים של Distributed Cloud, משתמשים ב-Logs Explorer במסוף Google Cloud . הרישום ביומן של Distributed Cloud תמיד מופעל.

סוגי המשאבים שמתועדים ב-Distributed Cloud הם משאבי Kubernetes סטנדרטיים:

  • k8s_container
  • k8s_node

אפשר גם לתעד ולאחזר יומנים של Distributed Cloud באמצעות Cloud Logging API. מידע על הגדרת מנגנון הרישום ביומן הזה זמין במאמרי העזרה של ספריות הלקוח של Cloud Logging.

מדדים

בקטע הזה מפורטים המדדים של Cloud Monitoring שנתמכים ב-Distributed Cloud. כדי לראות את המדדים של Distributed Cloud, משתמשים בMetrics Explorer בGoogle Cloud מסוף.

מדדים של אשכול Distributed Cloud

במקרים של אשכולות של Distributed Cloud,‏ Distributed Cloud מספק את סוגי המדדים הבאים שנוצרים על ידי צמתי Distributed Cloud:

  • מדדי משאבים מספקים מידע על הביצועים של צומת ו-Pod ב-Distributed Cloud, כמו עומס המעבד והשימוש בזיכרון.
  • מדדים של אפליקציות במערכת מספקים מידע על עומסי עבודה במערכת Distributed Cloud, כמו coredns.

רשימה של המדדים האלה מופיעה במאמר מדדים של Google Distributed Cloud ו-Google Distributed Cloud.

‫Distributed Cloud לא מספק מדדים שנוצרו על ידי מישורי הבקרה של Kubernetes שמשויכים לאשכולות של Distributed Cloud.

מדדי חומרה של Distributed Cloud

‫Distributed Cloud מספק מדדים לחומרה של Distributed Cloud באמצעות סוגי המשאבים הבאים:

  • edgecontainer.googleapis.com/Machine
  • edgecontainer.googleapis.com/Rack

Machine מדדי משאבים

‫Distributed Cloud כותב את מדדי Cloud Monitoring API הבאים עבור המשאב edgecontainer.googleapis.com/Machine:

מדד תיאור
/machine/cpu/total_cores
  • סוג: GAUGE
  • סוג: INT
המספר הכולל של ליבות מעבד פיזיות שקיימות במכונה.
/machine/cpu/usage_time
  • סוג: CUMULATIVE
  • סוג: DOUBLE
  • יחידה: Seconds
זמן השימוש המצטבר במעבד לכל הליבות במכונה. הסוג יכול להיות workload (עומסי עבודה של לקוחות) או system (כל השאר).
/machine/cpu/utilization
  • סוג: GAUGE
  • סוג: DOUBLE
אחוז ניצול המעבד במחשב. הטווח הוא 0 עד 1. הסוג יכול להיות workload (עומסי עבודה של לקוחות) או system (כל השאר).
/machine/memory/total_bytes
  • סוג: GAUGE
  • סוג: INT64
מספר הבייטים של הזיכרון הכולל במכונה.
/machine/memory/used_bytes
  • סוג: GAUGE
  • סוג: INT64
מספר הבייטים של הזיכרון שנעשה בו שימוש במכונה. ‫memory_type הוא evictable (ניתן להחזרה על ידי הליבה) או non-evictable (לא ניתן להחזרה).
/machine/memory/utilization
  • סוג: GAUGE
  • סוג: DOUBLE
אחוז ניצול הזיכרון במכונה. הטווח הוא 0 עד 1. ‫memory_type הוא evictable (ניתן להחזרה לשימוש על ידי הליבה) או non-evictable (לא ניתן להחזרה לשימוש).
/machine/network/up
  • סוג: GAUGE
  • סוג: BOOL
מציין אם ממשק הרשת פועל. כולל כרטיסים ראשיים, כרטיסים משניים ויציאות.
/machine/network/link_speed
  • סוג: GAUGE
  • סוג: DOUBLE
  • יחידה: בייטים לשנייה
מהירות הקישור של כרטיס הרשת הראשי.
/machine/network/received_bytes_count
  • סוג: CUMULATIVE
  • סוג: DOUBLE
מספר הבייטים שהתקבלו בכרטיס הרשת הראשי.
/machine/network/sent_bytes_count
  • סוג: CUMULATIVE
  • סוג: DOUBLE
מספר הבייטים שנשלחו לכרטיס הרשת הראשי.
/machine/network/connectivity
  • סוג: GAUGE
  • סוג: BOOL
מציין אם לכרטיס הרשת הראשי יש קישוריות לאינטרנט.
/machine/disk/total_bytes
  • סוג: GAUGE
  • סוג: INT64
מספר הבייטים של נפח האחסון הכולל במחשב.
/machine/disk/used_bytes
  • סוג: GAUGE
  • סוג: INT64
מספר הבייטים של נפח האחסון בשימוש במחשב.
/machine/disk/utilization
  • סוג: GAUGE
  • סוג: DOUBLE
אחוז ניצול שטח האחסון במחשב. הטווח הוא 0 עד 1.
/machine/restart_count
  • סוג: CUMULATIVE
  • סוג: INT
מספר ההפעלות מחדש שהמחשב עבר.
/machine/uptime
  • סוג: GAUGE
  • סוג: INT
  • יחידה: Seconds
זמן הפעולה של המחשב מאז ההפעלה מחדש האחרונה.
/machine/connected
  • סוג: GAUGE
  • סוג: INT64
מציין אם המחשב מחובר ל- Google Cloud.

Rack מדדי משאבים

‫Distributed Cloud כותב את מדדי Cloud Monitoring API הבאים עבור המשאב edgecontainer.googleapis.com/Rack:

מדד תיאור
/router/bgp_up
  • סוג: GAUGE
  • סוג: BOOL
מציין אם סשן ה-BGP peering בנתב פעיל ותקין. ‫router_id הוא המזהה של הנתב הספציפי (עד 2 לכל מתלה).
/router/connected
  • סוג: GAUGE
  • סוג: BOOL
ההגדרה מציינת אם נתב ה-BGP מחובר אל Google Cloud. ‫router_id הוא המזהה של הנתב הספציפי (עד 2 לכל מתלה).

ייצוא של יומנים ומדדים של אפליקציות בהתאמה אישית

‫Distributed Cloud מייצא באופן אוטומטי יומנים של אפליקציות שפועלות בעומסי עבודה (workloads) של Distributed Cloud. כדי לייצא מדדים של אפליקציה שפועלת על עומסי עבודה ב-Distributed Cloud, צריך להוסיף לה הערות כמו שמתואר בקטע הבא.

הוספת הערות לעומס העבודה כדי לאפשר ייצוא של מדדים

כדי להפעיל את איסוף המדדים המותאמים אישית מאפליקציה, מוסיפים את ההערות הבאות למניפסט של השירות או הפריסה של האפליקציה:

  • prometheus.io/scrape: "true"
  • prometheus.io/path: "ENDPOINT_PATH". מחליפים את ENDPOINT_PATH בנתיב המלא לנקודת הקצה של המדדים באפליקציית היעד.
  • prometheus.io/port: "PORT_NUMBER": היציאה שבה נקודת הקצה של מדדי האפליקציה מאזינה לחיבורים.

הפעלת אפליקציה לדוגמה

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

  1. שומרים את המניפסטים הבאים של השירות והפריסה בקובץ בשם my-app.yaml. שימו לב שהשירות כולל את ההערה prometheus.io/scrape: "true":

    kind: Service
    apiVersion: v1
    metadata:
      name: "monitoring-example"
      namespace: "default"
      annotations:
        prometheus.io/scrape: "true"
    spec:
      selector:
        app: "monitoring-example"
      ports:
        - name: http
          port: 9090
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: "monitoring-example"
      namespace: "default"
      labels:
        app: "monitoring-example"
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: "monitoring-example"
      template:
        metadata:
          labels:
            app: "monitoring-example"
        spec:
          containers:
          - image: gcr.io/google-samples/prometheus-dummy-exporter:latest
            name: prometheus-example-exporter
            imagePullPolicy: Always
            command:
            - /bin/sh
            - -c
            - ./prometheus-dummy-exporter --metric-name=example_monitoring_up --metric-value=1 --port=9090
            resources:
              requests:
                cpu: 100m
    
  2. יוצרים את הפריסה ואת השירות:

    kubectl --kubeconfig apply -f my-app.yaml

צפייה ביומני האפליקציה

המסוף

  1. נכנסים לדף Logs Explorer במסוף Google Cloud .

    כניסה לדף Logs Explorer

  2. לוחצים על Resource.

  3. ברשימה All resource types, בוחרים באפשרות Kubernetes Container.

  4. בשדה שם האשכול, בוחרים את השם של אשכול המשתמשים.

  5. בשדה שם מרחב השמות, בוחרים באפשרות default.

  6. לוחצים על Add (הוספה) ואז על Run query (הפעלת שאילתה).

  7. בקטע Query results אפשר לראות רשומות ביומן מפריסת monitoring-example. לדוגמה:

    {
      "textPayload": "2020/11/14 01:24:24 Starting to listen on :9090\n",
      "insertId": "1oa4vhg3qfxidt",
      "resource": {
        "type": "k8s_container",
        "labels": {
          "pod_name": "monitoring-example-7685d96496-xqfsf",
          "cluster_name": ...,
          "namespace_name": "default",
          "project_id": ...,
          "location": "us-west1",
          "container_name": "prometheus-example-exporter"
        }
      },
      "timestamp": "2020-11-14T01:24:24.358600252Z",
      "labels": {
        "k8s-pod/pod-template-hash": "7685d96496",
        "k8s-pod/app": "monitoring-example"
      },
      "logName": "projects/.../logs/stdout",
      "receiveTimestamp": "2020-11-14T01:24:39.562864735Z"
    }
    

gcloud

  1. משתמשים בפקודה gcloud logging read:

    gcloud logging read 'resource.labels.project_id="PROJECT_ID" AND \
        resource.type="k8s_container" AND resource.labels.namespace_name="default"'

    מחליפים את PROJECT_ID במזהה הפרויקט.

  2. בפלט, אפשר לראות רשומות ביומן מ-monitoring-example Deployment. לדוגמה:

    insertId: 1oa4vhg3qfxidt
    labels:
      k8s-pod/app: monitoring-example
      k8s- pod/pod-template-hash: 7685d96496
    logName: projects/.../logs/stdout
    receiveTimestamp: '2020-11-14T01:24:39.562864735Z'
    resource:
      labels:
        cluster_name: ...
        container_name: prometheus-example-exporter
        location: us-west1
        namespace_name: default
        pod_name: monitoring-example-7685d96496-xqfsf
        project_id: ...
      type: k8s_container
    textPayload: |
      2020/11/14 01:24:24 Starting to listen on :9090
    timestamp: '2020-11-14T01:24:24.358600252Z'
    

הצגת מדדי האפליקציה

האפליקציה לדוגמה חושפת מדד מותאם אישית בשם example_monitoring_up. אפשר לראות את הערכים של המדד הזה במסוף Google Cloud .

  1. נכנסים לדף Metrics explorer במסוף Google Cloud .

    כניסה לדף Metrics Explorer

  2. בשדה Resource type, בוחרים באפשרות Kubernetes Pod.

  3. בשדה מדד, בוחרים באפשרות external/prometheus/example_monitoring_up.

  4. בתרשים אפשר לראות של-example_monitoring_up יש ערך חוזר של 1.

המאמרים הבאים