Halaman ini menjelaskan cara Google Distributed Cloud mencatat berbagai jenis informasi operasinya ke dalam log 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:
Aktifkan API logging 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_IDdengan ID project Google Cloud target.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_IDdengan ID project Google Cloud target.
Log
Bagian ini mencantumkan jenis resource Cloud Logging yang didukung oleh Distributed Cloud. Untuk melihat log Distributed Cloud, gunakan Logs Explorer di konsol Google Cloud . Logging Distributed Cloud selalu diaktifkan.
Jenis resource yang dicatat Distributed Cloud adalah resource Kubernetes standar berikut:
k8s_containerk8s_node
Anda juga dapat merekam 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 konsolGoogle Cloud .
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/Machineedgecontainer.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
|
Jumlah total core prosesor fisik yang ada di mesin. |
/machine/cpu/usage_time
|
Waktu penggunaan CPU kumulatif untuk semua core di mesin. Jenis dapat berupa
workload (beban kerja pelanggan)
atau system (semua yang lain). |
/machine/cpu/utilization
|
Persentase pemakaian CPU di mesin. Rentangnya adalah 0 hingga 1. Jenis dapat berupa
workload (beban kerja pelanggan)
atau system (semua yang lain). |
/machine/memory/total_bytes
|
Jumlah byte total memori di komputer. |
/machine/memory/used_bytes
|
Jumlah byte memori yang digunakan di komputer. memory_type adalah
evictable (dapat diklaim kembali oleh kernel) atau
non-evictable (tidak dapat diklaim kembali). |
/machine/memory/utilization
|
Persentase penggunaan memori di komputer. Rentangnya adalah 0 hingga 1.
memory_type adalah evictable (dapat diambil kembali
oleh kernel) atau non-evictable (tidak dapat diambil kembali). |
/machine/network/up
|
Menunjukkan apakah antarmuka jaringan sudah aktif dan berjalan. Mencakup kartu utama, kartu sekunder, dan port. |
/machine/network/link_speed
|
Kecepatan link kartu antarmuka jaringan utama. |
/machine/network/received_bytes_count
|
Jumlah byte yang diterima untuk kartu antarmuka jaringan utama. |
/machine/network/sent_bytes_count
|
Jumlah byte yang dikirim untuk kartu antarmuka jaringan utama. |
/machine/network/connectivity
|
Menunjukkan apakah kartu antarmuka jaringan utama memiliki konektivitas internet. |
/machine/disk/total_bytes
|
Jumlah byte total ruang disk di komputer. |
/machine/disk/used_bytes
|
Jumlah byte ruang disk yang digunakan di komputer. |
/machine/disk/utilization
|
Persentase penggunaan ruang penyimpanan disk di komputer. Rentangnya adalah 0 hingga 1. |
/machine/restart_count
|
Jumlah mulai ulang yang telah dilakukan komputer. |
/machine/uptime
|
Waktu aktif mesin sejak dimulai ulang terakhir kali. |
/machine/connected
|
Menunjukkan apakah komputer 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
|
Menunjukkan apakah sesi peering BGP di router aktif dan
berfungsi dengan baik.
router_id mengidentifikasi router tertentu (hingga 2 per rak). |
/router/connected
|
Menunjukkan apakah router BGP terhubung ke Google Cloud.
router_id mengidentifikasi router tertentu (hingga 2 per rak). |
Mengekspor log dan metrik aplikasi kustom
Distributed Cloud otomatis mengekspor log untuk aplikasi yang berjalan di workload Distributed Cloud. Untuk mengekspor metrik untuk aplikasi yang berjalan di beban kerja Distributed Cloud, Anda harus menganotasinya seperti yang dijelaskan di bagian berikutnya.
Anotasikan 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". GantiENDPOINT_PATHdengan 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.
Simpan manifes Service dan Deployment berikut ke file bernama
my-app.yaml. Perhatikan bahwa Service memiliki anotasiprometheus.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: 100mBuat Deployment dan Layanan:
kubectl --kubeconfig apply -f my-app.yaml
Lihat log aplikasi
Konsol
Di konsol Google Cloud , buka halaman Logs Explorer.
Klik Resource.
Di daftar Semua jenis resource, pilih
Kubernetes Container.Untuk Cluster name, pilih nama cluster pengguna Anda.
Untuk Nama namespace, pilih
default.Klik Tambahkan, lalu klik Jalankan kueri.
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
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_IDdengan ID project Anda.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 konsol Google Cloud .
Di konsol Google Cloud , buka halaman Metrics explorer.
Untuk Resource type, pilih
Kubernetes Pod.Untuk Metrik, pilih
external/prometheus/example_monitoring_up.Dalam diagram, Anda dapat melihat bahwa
example_monitoring_upmemiliki nilai 1 yang berulang.