Dasbor pemantauan dan logging Cloud TPU

Repositori dasbor pemantauan dan proses debug Cloud TPU berisi semua infrastruktur dan logika yang diperlukan untuk memantau dan men-debug alur kerja yang berjalan di VM TPU. Alat ini memerlukan Terraform, alat open source yang menggunakan file konfigurasi untuk menentukan dan mengelola infrastruktur Google Cloud.

Dasbor pemantauan

Dasbor pemantauan menampilkan metrik Cloud TPU berikut:

  • Pemakaian CPU pada TPU worker: cpu/utilization
  • Penggunaan memori oleh VM TPU: memory/usage
  • Byte jaringan yang diterima oleh Pod melalui jaringan: network/received_bytes_count
  • Byte jaringan yang dikirim oleh Pod melalui jaringan: network/sent_bytes_count
  • Durasi tidak ada aktivitas TensorCore dari chip TPU: tpu/tensorcore/idle_duration

Cloud Monitoring otomatis menghasilkan data metrik. Untuk melihat dasbor pemantauan, buka Konsol Google Cloud, pilih Monitoring, lalu Dashboard. Pilih GCE - TPU Monitoring Dashboard di daftar dasbor. Dasbor pemantauan Cloud TPU terdiri dari sejumlah panel, yang masing-masing menampilkan data metrik. Untuk setiap metrik Cloud TPU, dasbor menampilkan nilai metrik saat ini, rata-rata, dan nilai maksimum di panel terpisah. Panel rata-rata dan maksimum memungkinkan Anda mengidentifikasi VM TPU pencilan untuk penyelidikan lebih lanjut.

Anda juga dapat melihat metrik TPU menggunakan Metrics Explorer di Konsol Google Cloud Cloud Monitoring. Untuk mengetahui informasi selengkapnya, lihat Memantau VM Cloud TPU.

Dasbor logging

Dasbor logging menampilkan dua bagian:

  1. Metrik Log: menampilkan jumlah entri pelacakan tumpukan yang dikumpulkan untuk setiap pekerja VM TPU.
  2. Panel Logs: menampilkan semua entri stack trace dengan kolom untuk tingkat keparahan, stempel waktu, dan ringkasan entri. Anda dapat memfilter panel log ini menurut string, atau label pekerja TPU seperti node_id, worker_id. Misalnya, menambahkan filter resource.labels.node_id:"testing" akan menampilkan semua entri rekaman aktivitas yang dikumpulkan untuk pekerja VM TPU dengan ID yang ditetapkan ke "testing".

Cloud Logging mengumpulkan entri log yang dihasilkan oleh layanan Google Cloud, layanan pihak ketiga, framework ML, dan kode Anda. Anda dapat menginstal paket PyPi cloud-tpu-diagnostics untuk menulis stack trace Python saat terjadi kesalahan atau pengecualian atau saat beban kerja Anda tidak responsif. Untuk mengetahui informasi selengkapnya, lihat Men-debug VM Cloud TPU.

Untuk melihat dasbor logging, buka Konsol Google Cloud, pilih Monitoring, lalu Dashboard. Pilih GCE - Dasbor Logging TPU di daftar dasbor.

Mengonfigurasi dasbor logging dan metrik

Ikuti petunjuk ini untuk mengonfigurasi metrik dan dasbor logging.

Meng-clone repositori dasbor

Anda dapat meng-clone repositori langsung dari repositori Cloud TPU Monitoring dan Debugging GitHub atau dari command line:

git clone https://github.com/google/cloud-tpu-monitoring-debugging.git

Instal Terraform

  1. Instal Terraform di komputer lokal Anda.
  2. Jalankan terraform init untuk menambahkan plugin yang diperlukan dan membuat direktori .terraform.
  3. Jalankan terraform init –upgrade untuk menginstal update yang tersedia.

Konfigurasi izin untuk pemantauan dan logging

Peran Admin Monitoring, Editor Konfigurasi Dasbor Monitoring, dan Admin Logging diperlukan untuk men-deploy resource pemantauan ke project Google Cloud Anda. Untuk mengetahui informasi selengkapnya tentang peran pemantauan, lihat Memberikan akses ke Cloud Monitoring.

Membuat bucket Cloud Storage

Membuat bucket Cloud Storage untuk menyimpan file status Terraform. Anda juga dapat menggunakan bucket Cloud Storage yang sudah ada. Penggunaan bucket Cloud Storage memastikan bahwa beberapa pengguna dapat menjalankan Terraform secara bersamaan dan mengakses infrastruktur yang sama.

  1. Di Cloud Shell, buat bucket Cloud Storage:

    gsutil mb gs://${GCS_BUCKET_NAME}
    
  2. Aktifkan Pembuatan Versi Objek untuk menyimpan histori deployment Anda. Mengaktifkan Pembuatan Versi Objek akan meningkatkan biaya penyimpanan, yang dapat Anda kurangi dengan mengonfigurasi Object Lifecycle Management untuk menghapus versi status lama.

    gsutil versioning set on gs://${GCS_BUCKET_NAME}
    

Lakukan inisialisasi Terraform

Jalankan terraform init di dalam direktori gcp_resources/gce repositori. Perintah ini meminta Anda memasukkan nama bucket Cloud Storage untuk menyimpan file status Terraform.

Men-deploy dasbor pemantauan dan logging

Jalankan terraform apply di dalam direktori gcp_resources/gce untuk men-deploy dasbor pemantauan dan logging di project Google Cloud Anda. Perintah ini akan meminta Anda memberikan nilai untuk variabel berikut:

  • var.monitoring_dashboard_config
  • var.project_name
  • var.stack_trace_bucket_config

Jika Anda hanya ingin men-deploy dasbor pemantauan, jalankan terraform init dan terraform apply di dalam direktori gcp_resources/gce/dashboard/monitoring_dashboard. Demikian pula, jalankan perintah ini di dalam direktori gcp_resources/gce/dashboard/logging_dashboard untuk men-deploy dasbor logging saja.

Contoh konfigurasi

Saat Anda menjalankan terraform apply, Terraform akan meminta Anda untuk memasukkan beberapa nilai variabel konfigurasi. Bagian ini menyediakan beberapa contoh konfigurasi yang dapat Anda gunakan. Setiap contoh menunjukkan output yang ditampilkan oleh perintah apply terraform serta nilai yang disarankan untuk setiap variabel konfigurasi dalam huruf tebal. Input harus dalam format JSON yang diapit tanda kurung kurawal ("{}").

Contoh 1

Contoh ini menetapkan nama project Google Cloud dan menggunakan nilai default untuk konfigurasi lainnya.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
      "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &lt;the number of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}

Contoh 2

Contoh ini mengonfigurasi dasbor untuk menampilkan 5 VM TPU pencilan.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &lt;number of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"outlier_count":5}

Contoh 3

Konfigurasi ini membuat dasbor yang menampilkan 10 VM TPU pencilan menggunakan "test" sebagai awalan untuk nama node yang dihasilkan oleh dasbor:

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
      "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &ltnumber of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"node_prefix":"test"}

Contoh 4

Konfigurasi ini membuat dasbor yang menampilkan 5 VM pencilan yang menggunakan "test" sebagai awalan untuk nama node yang dihasilkan oleh dasbor.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"node_prefix":"test", "outlier_count":5}

Contoh 5

Contoh ini mengonfigurasi bucket Cloud Storage untuk menyimpan pelacakan tumpukan. Pelacakan tumpukan memiliki kebijakan retensi default 30 hari.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {"bucket_name":"stack_trace_log_bucket"}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}

Contoh 6

Contoh ini mengonfigurasi bucket Cloud Storage dengan periode retensi data 20 hari.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {"bucket_name":"stack_trace_log_bucket", "retention_days":20}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}