Log dan metrik

Halaman ini menjelaskan cara Google Distributed Cloud mencatat berbagai jenis informasi tentang operasinya dan cara melihat informasi tersebut. Pengumpulan beberapa jenis log dan metrik dikenai biaya tambahan. Untuk mengetahui informasi selengkapnya, lihat Penagihan untuk log dan metrik.

Mengonfigurasi logging dan pemantauan

Sebelum dapat mulai mengumpulkan log dan metrik, Anda harus melakukan hal berikut:

  1. Aktifkan Logging API menggunakan perintah berikut:

    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
    

    Ganti PROJECT_ID dengan ID target Google Cloud project.

  2. Berikan peran yang diperlukan untuk menulis log dan metrik:

    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]"
    

    Ganti PROJECT_ID dengan ID target Google Cloud project.

Log

Bagian ini mencantumkan jenis resource Cloud Logging yang didukung oleh Distributed Cloud. Untuk melihat log Distributed Cloud, gunakan Logs Explorer di Google Cloud konsol. Logging Distributed Cloud selalu diaktifkan.

Jenis resource yang dicatat Distributed Cloud adalah resource Kubernetes standar berikut:

  • k8s_container
  • k8s_node

Anda juga dapat mengambil dan mengambil log Distributed Cloud menggunakan Cloud Logging API. Untuk mengetahui informasi tentang cara mengonfigurasi mekanisme logging ini, lihat dokumentasi untuk library klien Cloud Logging.

Metrik

Bagian ini mencantumkan metrik Cloud Monitoring yang didukung oleh Distributed Cloud. Untuk melihat metrik Distributed Cloud, gunakan Metrics Explorer di Google Cloud konsol.

Metrik cluster Distributed Cloud

Untuk cluster Distributed Cloud, Distributed Cloud menyediakan jenis metrik berikut yang dihasilkan oleh node Distributed Cloud:

  • Metrik resource memberikan informasi tentang performa node dan Pod Distributed Cloud, seperti beban CPU dan penggunaan memori.
  • Metrik aplikasi sistem memberikan informasi tentang workload sistem Distributed Cloud, seperti coredns.

Untuk mengetahui daftar metrik ini, lihat Metrik Google Distributed Cloud dan Google Distributed Cloud.

Distributed Cloud tidak menyediakan metrik yang dihasilkan oleh bidang kontrol Kubernetes yang terkait dengan cluster Distributed Cloud.

Metrik hardware Distributed Cloud

Distributed Cloud menyediakan metrik untuk hardware Distributed Cloud menggunakan jenis resource berikut:

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

Metrik resource Machine

Distributed Cloud menulis metrik Cloud Monitoring API berikut untuk resource edgecontainer.googleapis.com/Machine:

Metrik Deskripsi
/machine/cpu/total_cores
  • Jenis: GAUGE
  • Jenis: INT
Jumlah total core prosesor fisik yang ada di mesin.
/machine/cpu/usage_time
  • Jenis: CUMULATIVE
  • Jenis: DOUBLE
  • Unit: Seconds
Waktu penggunaan CPU kumulatif untuk semua core di mesin. Jenisnya dapat berupa workload (workload pelanggan) atau system (semua hal lainnya).
/machine/cpu/utilization
  • Jenis: GAUGE
  • Jenis: DOUBLE
Persentase penggunaan CPU di mesin. Rentangnya adalah 0 hingga 1. Jenisnya dapat berupa workload (workload pelanggan) atau system (semua hal lainnya).
/machine/memory/total_bytes
  • Jenis: GAUGE
  • Jenis: INT64
Jumlah byte total memori di mesin.
/machine/memory/used_bytes
  • Jenis: GAUGE
  • Jenis: INT64
Jumlah byte memori yang digunakan di mesin. memory_type adalah baik evictable (dapat diklaim oleh kernel) atau non-evictable (tidak dapat diklaim).
/machine/memory/utilization
  • Jenis: GAUGE
  • Jenis: DOUBLE
Persentase penggunaan memori di mesin. Rentangnya adalah 0 hingga 1. memory_type dapat berupa evictable (dapat diklaim oleh kernel) atau non-evictable (tidak dapat diklaim).
/machine/network/up
  • Jenis: GAUGE
  • Jenis: BOOL
Menunjukkan apakah antarmuka jaringan aktif dan berjalan. Mencakup kartu utama, kartu sekunder, dan port.
/machine/network/link_speed
  • Jenis: GAUGE
  • Jenis: DOUBLE
  • Unit: Byte per detik
Kecepatan link kartu antarmuka jaringan utama.
/machine/network/received_bytes_count
  • Jenis: CUMULATIVE
  • Jenis: DOUBLE
Jumlah byte yang diterima untuk kartu antarmuka jaringan utama.
/machine/network/sent_bytes_count
  • Jenis: CUMULATIVE
  • Jenis: DOUBLE
Jumlah byte yang dikirim untuk kartu antarmuka jaringan utama.
/machine/network/connectivity
  • Jenis: GAUGE
  • Jenis: BOOL
Menunjukkan apakah kartu antarmuka jaringan utama memiliki konektivitas internet konektivitas.
/machine/disk/total_bytes
  • Jenis: GAUGE
  • Jenis: INT64
Jumlah byte total kapasitas disk di mesin.
/machine/disk/used_bytes
  • Jenis: GAUGE
  • Jenis: INT64
Jumlah byte kapasitas disk yang digunakan di mesin.
/machine/disk/utilization
  • Jenis: GAUGE
  • Jenis: DOUBLE
Persentase penggunaan kapasitas disk di mesin. Rentangnya adalah 0 hingga 1.
/machine/restart_count
  • Jenis: CUMULATIVE
  • Jenis: INT
Jumlah restart yang telah dilakukan mesin.
/machine/uptime
  • Jenis: GAUGE
  • Jenis: INT
  • Unit: Seconds
Waktu aktif mesin sejak restart terakhir.
/machine/connected
  • Jenis: GAUGE
  • Jenis: INT64
Menunjukkan apakah mesin terhubung ke Google Cloud.

Metrik resource Rack

Distributed Cloud menulis metrik Cloud Monitoring API berikut untuk resource edgecontainer.googleapis.com/Rack:

Metrik Deskripsi
/router/bgp_up
  • Jenis: GAUGE
  • Jenis: BOOL
Menunjukkan apakah sesi peering BGP di router aktif dan sehat. router_id mengidentifikasi router tertentu (maksimal 2 per rack).
/router/connected
  • Jenis: GAUGE
  • Jenis: BOOL
Menunjukkan apakah router BGP terhubung ke Google Cloud. router_id mengidentifikasi router tertentu (maksimal 2 per rack).

Mengekspor log dan metrik aplikasi kustom

Distributed Cloud otomatis mengekspor log untuk aplikasi yang berjalan di workload Distributed Cloud. Untuk mengekspor metrik aplikasi yang berjalan di workload Distributed Cloud, Anda harus menganotasinya seperti yang dijelaskan di bagian berikutnya.

Anotasi workload untuk mengaktifkan ekspor metrik

Untuk mengaktifkan pengumpulan metrik kustom dari aplikasi, tambahkan anotasi berikut ke manifes Layanan atau Deployment aplikasi:

  • prometheus.io/scrape: "true"
  • prometheus.io/path: "ENDPOINT_PATH". Ganti ENDPOINT_PATH dengan jalur lengkap ke endpoint metrik aplikasi target.
  • prometheus.io/port: "PORT_NUMBER": port tempat endpoint metrik aplikasi memproses koneksi.

Menjalankan aplikasi contoh

Di bagian ini, Anda akan membuat aplikasi yang menulis log kustom dan mengekspos endpoint metrik kustom.

  1. Simpan manifes Layanan dan Deployment berikut ke file bernama my-app.yaml. Perhatikan bahwa Layanan memiliki anotasi 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. Buat Deployment dan Layanan:

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

Melihat log aplikasi

Konsol

  1. Di konsol Google Cloud , buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Resource.

  3. Di daftar All resource types, pilih Kubernetes Container.

  4. Untuk Cluster name, pilih nama cluster pengguna Anda.

  5. Untuk Namespace name, pilih default.

  6. Klik Add, lalu klik Run query.

  7. Di bagian Query results, Anda dapat melihat entri log dari Deployment monitoring-example. Contoh:

    {
      "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. Gunakan perintah gcloud logging read:

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

    Ganti PROJECT_ID dengan ID project Anda.

  2. Dalam output, Anda dapat melihat entri log dari Deployment monitoring-example. Contoh:

    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'
    

Melihat metrik aplikasi

Aplikasi contoh Anda mengekspos metrik kustom bernama example_monitoring_up. Anda dapat melihat nilai metrik tersebut di Google Cloud konsol.

  1. Di Google Cloud konsol, buka halaman Metrics Explorer.

    Buka Metrics Explorer

  2. Untuk Resource type, pilih Kubernetes Pod.

  3. Untuk Metric, pilih external/prometheus/example_monitoring_up.

  4. Di diagram, Anda dapat melihat bahwa example_monitoring_up memiliki nilai 1 yang berulang.

Langkah berikutnya