Menggunakan file bantuan Prometheus untuk Cloud Run

Sidecar Managed Service for Prometheus untuk Cloud Run adalah cara yang direkomendasikan Google untuk mendapatkan pemantauan bergaya Prometheus untuk layanan Cloud Run. Jika layanan Cloud Run Anda menulis metrik OTLP, Anda dapat menggunakan bantuan OpenTelemetry. Namun, untuk layanan yang menulis metrik Prometheus, gunakan file bantuan Managed Service for Prometheus yang dijelaskan dalam dokumen ini.

Dokumen ini menjelaskan cara melakukan hal berikut:

Sidecar ini menggunakan Google Cloud Managed Service for Prometheus di sisi server dan distribusi OpenTelemetry Collector, yang dibuat khusus untuk workload serverless, di sisi klien. Distribusi kustom ini mencakup beberapa perubahan untuk mendukung Cloud Run. Kolektor akan melakukan scrape start-up setelah 10 detik dan melakukan scrape penonaktifan, terlepas dari seberapa singkat instance tersebut aktif. Untuk keandalan maksimum, kami menyarankan agar layanan Cloud Run yang menjalankan file bantuan juga menggunakan CPU yang selalu dialokasikan. Untuk informasi selengkapnya, lihat alokasi CPU (layanan). Beberapa upaya scrape mungkin gagal jika alokasi CPU di-throttle karena rendahnya jumlah kueri per detik (QPS). CPU yang selalu dialokasikan akan tetap tersedia.

Sidecar ini mengandalkan fitur multicontainer (sidecar) Cloud Run untuk menjalankan kolektor sebagai container file bantuan bersama container workload Anda. Untuk informasi selengkapnya tentang file bantuan di Cloud Run, lihat Men-deploy beberapa container ke layanan (file bantuan).

Sidecar Managed Service for Prometheus untuk Cloud Run memperkenalkan konfigurasi baru, RunMonitoring, subset resource kustom PodMonitoring Kubernetes. Sebagian besar pengguna dapat menggunakan konfigurasi RunMonitoring default, tetapi Anda juga dapat membuat konfigurasi kustom. Untuk mengetahui informasi selengkapnya tentang konfigurasi RunMonitoring default dan kustom, lihat Menambahkan file bantuan ke layanan Cloud Run.

Sebelum memulai

Bagian ini menjelaskan penyiapan yang diperlukan untuk menggunakan dokumen ini.

Menginstal dan mengonfigurasi gcloud CLI

Banyak langkah yang dijelaskan dalam dokumen ini menggunakan Google Cloud CLI. Untuk mengetahui informasi tentang cara menginstal gcloud CLI, lihat Mengelola komponen Google Cloud CLI.

Saat memanggil perintah gcloud, Anda harus menentukan ID untuk project Google Cloud Anda. Anda dapat menetapkan project default untuk Google Cloud CLI tanpa perlu memasukkannya dengan setiap perintah. Untuk menetapkan project Anda sebagai default, masukkan perintah berikut:

gcloud config set project PROJECT_ID

Anda juga dapat menetapkan region default untuk layanan Cloud Run Anda. Untuk menetapkan region default, masukkan perintah berikut:

gcloud config set run/region REGION

Mengaktifkan API

Anda harus mengaktifkan API berikut di project Google Cloud:

  • Cloud Run Admin API: run.googleapis.com
  • Artifact Registry API: artifactregistry.googleapis.com
  • Cloud Monitoring API: monitoring.googleapis.com
  • Cloud Logging API: logging.googleapis.com
  • (Opsional) Jika membuat konfigurasi RunMonitoring kustom, Anda harus mengaktifkan Secret Manager API: secretmanager.googleapis.com
  • (Opsional) Jika memilih untuk menjalankan aplikasi contoh menggunakan Cloud Build, Anda juga harus mengaktifkan API berikut:

Untuk melihat API yang diaktifkan di project Anda, jalankan perintah berikut:

gcloud services list

Untuk mengaktifkan API yang tidak diaktifkan, jalankan salah satu perintah berikut:

gcloud services enable run.googleapis.com
gcloud services enable artifactregistry.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable iam.googleapis.com

Akun layanan untuk Cloud Run

Secara default, tugas dan layanan Cloud Run menggunakan akun layanan default Compute Engine, PROJECT_NUMBER-compute@developer.gserviceaccount.com. Akun layanan ini biasanya memiliki peran Identity and Access Management (IAM) yang diperlukan untuk menulis metrik dan log yang dijelaskan dalam dokumen ini:

  • roles/monitoring.metricWriter
  • roles/logging.logWriter

Jika Anda membuat konfigurasi RunMonitoring kustom, akun layanan Anda juga harus memiliki peran berikut:

  • roles/secretmanager.admin
  • roles/secretmanager.secretAccessor

Anda juga dapat mengonfigurasi akun layanan yang dikelola pengguna untuk Cloud Run. Akun layanan yang dikelola pengguna juga harus memiliki peran ini. Untuk mengetahui informasi selengkapnya tentang akun layanan untuk Cloud Run, lihat Mengonfigurasi Service Identity.

Mengonfigurasi dan menambahkan file bantuan ke layanan Cloud Run

Sidecar Managed Service for Prometheus untuk Cloud Run memperkenalkan konfigurasi baru, RunMonitoring, yang merupakan subset dari resource kustom PodMonitoring Kubernetes. Konfigurasi RunMonitoring menggunakan opsi PodMonitoring yang ada untuk mendukung Cloud Run sekaligus menghilangkan beberapa opsi yang spesifik untuk Kubernetes.

Anda dapat menggunakan konfigurasi RunMonitoring default, atau membuat konfigurasi kustom. Bagian berikut menjelaskan kedua pendekatan tersebut. Anda tidak perlu melakukan keduanya. Untuk mengetahui informasi selengkapnya tentang cara menggunakan konfigurasi default atau kustom, pilih tab yang sesuai.

Konfigurasi default

Menggunakan konfigurasi RunMonitoring default

Jika Anda tidak membuat konfigurasi RunMonitoring kustom, kolektor file bantuan akan menyintesis konfigurasi default berikut untuk menyalin metrik dari port 8080 di jalur metrik /metrics setiap 30 detik:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: run-gmp-sidecar
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 30s

Menggunakan konfigurasi default tidak memerlukan penyiapan tambahan selain menambahkan file bantuan ke layanan Cloud Run Anda.

Menambahkan file bantuan ke layanan Cloud Run

Untuk menggunakan file bantuan dengan konfigurasi RunMonitoring default, Anda harus mengubah konfigurasi Cloud Run yang ada untuk menambahkan file bantuan tersebut. Untuk menambahkan file bantuan, lakukan langkah-langkah berikut:

  • Tambahkan anotasi dependensi container yang menentukan urutan startup dan penonaktifan container. Pada contoh berikut, penampung file bantuan, yang bernama "kolektor", dimulai setelah dan dinonaktifkan sebelum penampung aplikasi, yang bernama "aplikasi" dalam contoh.
  • Buat penampung untuk kolektor, dengan nama "kolektor" pada contoh berikut.

Misalnya, tambahkan baris yang diawali dengan karakter + (plus) ke konfigurasi Cloud Run Anda, lalu deploy ulang layanan Anda:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.1.0"
+       name: collector

Untuk men-deploy ulang layanan Cloud Run dengan file konfigurasi run-service.yaml, jalankan perintah berikut:

gcloud run services replace run-service.yaml --region=REGION

Konfigurasi kustom

Membuat konfigurasi RunMonitoring kustom

Anda dapat membuat konfigurasi RunMonitoring untuk layanan Cloud Run jika konfigurasi default tidak memadai. Misalnya, Anda dapat membuat konfigurasi seperti berikut:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

Konfigurasi ini melakukan hal berikut:

  • Mengambil metrik dari port 8080 dan menggunakan jalur metrik default /metrics.
  • Menggunakan interval scrape 10 detik.
  • Menggunakan pelabelan ulang untuk menambahkan label label_key dengan nilai label_value ke setiap metrik yang disalin.
  • Menambahkan label metadata service dan revision ke setiap metrik yang disalin.

Untuk informasi tentang opsi konfigurasi yang tersedia, lihat Spesifikasi RunMonitoring: opsi konfigurasi.

Saat menggunakan konfigurasi RunMonitoring kustom, Anda harus melakukan konfigurasi tambahan berikut:

Menyimpan konfigurasi menggunakan Secret Manager

Untuk memberikan konfigurasi RunMonitoring kustom, lakukan hal berikut:

  • Buat file yang berisi konfigurasi kustom.
  • Buat secret Secret Manager yang berisi konfigurasi kustom.

Perintah berikut membuat secret bernama mysecret dari file custom-config.yaml:

gcloud secrets create mysecret --data-file=custom-config.yaml

Untuk mengambil perubahan pada konfigurasi setelah mengubah file custom-config.yaml, Anda harus menghapus dan membuat ulang secret, lalu men-deploy ulang layanan Cloud Run.

Memperbarui konfigurasi di Secret Manager

Jika ingin memperbarui konfigurasi RunMonitoring kustom kapan saja, Anda dapat menambahkan versi baru dari secret yang ada ke Secret Manager.

Misalnya, untuk mengupdate mysecret dengan konfigurasi baru yang disimpan dalam file custom-config-updated.yaml, Anda dapat menjalankan:

gcloud secrets versions add mysecret --data-file=custom-config-updated.yaml

File bantuan akan otomatis dimuat ulang dan menerapkan perubahan pada konfigurasinya.

Menambahkan file bantuan ke layanan Cloud Run

Setelah membuat secret Secret Manager untuk konfigurasi RunMonitoring, Anda harus mengubah konfigurasi Cloud Run untuk melakukan hal berikut:

  • Menambahkan file bantuan Managed Service for Prometheus
    • Tambahkan anotasi dependensi container yang menentukan urutan startup dan penonaktifan container. Pada contoh berikut, penampung file bantuan, yang bernama "kolektor", dimulai setelah dan dinonaktifkan sebelum penampung aplikasi, yang bernama "aplikasi" dalam contoh.
    • Buat penampung untuk kolektor, dengan nama "kolektor" pada contoh berikut.
  • Tambahkan secret dengan memasang secret di lokasi /etc/rungmp/config.yaml:
    • Tambahkan anotasi secret yang mengarah ke secret yang menyimpan konfigurasi RunMonitoring kustom Anda.
    • Buat volume, bernama "config" dalam contoh berikut, untuk rahasia yang mengarah ke file config.yaml.
    • Pasang volume sebagai bagian dari image kolektor di jalur pemasangan /etc/rungmp.

Misalnya, tambahkan baris yang diawali dengan karakter + (plus) ke konfigurasi Cloud Run Anda, lalu deploy ulang layanan Anda:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
+       run.googleapis.com/secrets: 'mysecret:projects/PROJECT_ID/secrets/mysecret'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.1.0"
+       name: collector
+       volumeMounts:
+       - mountPath: /etc/rungmp/
+         name: config
+     volumes:
+     - name: config
+       secret:
+         items:
+         - key: latest
+           path: config.yaml
+         secretName: 'mysecret'

Untuk men-deploy ulang layanan Cloud Run dengan file konfigurasi run-service.yaml, jalankan perintah berikut:

gcloud run services replace run-service.yaml --region=REGION

Spesifikasi RunMonitoring: opsi konfigurasi

Bagian ini menjelaskan spesifikasi konfigurasi RunMonitoring untuk file bantuan Managed Service for Prometheus. Berikut ini contoh konfigurasi kustom:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

RunMonitoring

Konfigurasi RunMonitoring memantau layanan Cloud Run.

Kolom Deskripsi Skema Diperlukan
metadata Metadata yang harus dimiliki oleh semua resource yang dipertahankan. metav1.ObjectMeta false
spec Spesifikasi deployment Cloud Run yang dipilih untuk penemuan target oleh Prometheus. RunMonitoringSpec true
RunMonitoringSpec

Spesifikasi ini menjelaskan cara konfigurasi RunMonitoring memantau layanan Cloud Run.

Kolom Deskripsi Skema Diperlukan
endpoints Endpoint yang akan disalin pada pod yang dipilih. []ScrapeEndpoint true
targetLabels Label untuk ditambahkan ke target Prometheus untuk endpoint yang ditemukan. Label instance selalu ditetapkan ke ID instance Cloud Run. RunTargetLabels false
limits Batas yang akan diterapkan pada waktu scrape. *ScrapeLimits false
RunTargetLabels

Dengan konfigurasi RunTargetLabels, Anda dapat menyertakan label Cloud Run dari target Prometheus yang ditemukan.

Kolom Deskripsi Skema Diperlukan
metadata Label metadata Cloud Run yang ditetapkan pada semua target yang disalin.

Kunci yang diizinkan adalah instance, revision, service, dan configuration.

Jika kunci yang diizinkan ditetapkan, file bantuan akan menambahkan nilai yang sesuai dari instance Cloud Run sebagai label metrik ke setiap metrik: instanceID, revision_name, service_name, dan configuration_name.

Setelan defaultnya adalah semua kunci yang diizinkan disetel.
*[]string false

Membangun dan menjalankan aplikasi contoh

Bagian ini menjelaskan cara menjalankan file bantuan Managed Service for Prometheus dengan aplikasi contoh. Bagian ini bersifat opsional. Jika Anda sudah memiliki layanan Cloud Run dan ingin men-deploy file bantuan tersebut, lihat Menambahkan file bantuan Managed Service for Prometheus ke layanan Cloud Run.

Clone repositori run-gmp-sidecar

Untuk mendapatkan aplikasi contoh dan file konfigurasinya, clone repositori run-gmp-sidecar dengan menjalankan perintah berikut:

git clone https://github.com/GoogleCloudPlatform/run-gmp-sidecar/

Setelah meng-clone repositori, ubah ke direktori run-gmp-sidecar:

cd run-gmp-sidecar

Membangun dan menjalankan aplikasi contoh

Aplikasi contoh memerlukan Docker atau sistem build container serupa untuk Linux. Anda dapat membangun dan menjalankan aplikasi contoh dengan salah satu cara berikut:

  • Gunakan Cloud Build untuk berjalan tanpa dukungan Docker lokal. Jika menggunakan Cloud Build, Anda juga harus mengaktifkan Cloud Build API.
  • Build dan jalankan aplikasi contoh secara manual.

Bagian berikut menjelaskan kedua pendekatan tersebut. Anda tidak perlu melakukan keduanya. Untuk mengetahui informasi selengkapnya, pilih tab untuk salah satu pendekatan.

Menggunakan Cloud Build

Menggunakan Cloud Build

Repositori run-gmp-sidecar menyertakan file konfigurasi untuk Cloud Build. File-file ini memaketkan langkah-langkah yang diperlukan untuk membangun dan men-deploy aplikasi contoh.

Anda juga dapat secara manual melakukan langkah-langkah yang ditangani oleh Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menjalankan secara manual.

Menyiapkan Cloud Build

File konfigurasi ini memerlukan akun layanan Cloud Build dan repositori Artifact Registry. Repositori run-gmp-sidecar juga menyertakan skrip, create-sa-and-ar.sh yang melakukan hal berikut:

  • Membuat akun layanan, run-gmp-sa@PROJECT_ID.iam.gserviceaccount.com.
  • Memberikan peran berikut ke akun layanan:
    • roles/iam.serviceAccountUser
    • roles/storage.objectViewer
    • roles/logging.logWriter
    • roles/artifactregistry.createOnPushWriter
    • roles/secretmanager.admin
    • roles/secretmanager.secretAccessor
    • roles/run.admin
  • Membuat repositori Artifact Registry, run-gmp, untuk image container Anda.

Untuk membuat akun layanan run-gmp-sa dan repositori run-gmp, jalankan perintah berikut:

./create-sa-and-ar.sh

Perlu waktu beberapa saat agar izin diterapkan, jadi sebaiknya tunggu sekitar 30 detik sebelum melanjutkan ke langkah berikutnya. Jika tidak, Anda mungkin akan melihat error otorisasi.

Mengirim permintaan Cloud Build

Setelah menyiapkan akun layanan run-gmp-sa dan repositori run-gmp, Anda dapat memulai tugas Cloud Build dengan mengirimkan file konfigurasi Cloud Build. Anda dapat menggunakan perintah gcloud builds submit berikut:

gcloud builds submit . --config=cloudbuild-simple.yaml --region=REGION

Perintah ini membutuhkan waktu beberapa menit untuk dijalankan, tetapi segera menunjukkan tempat Anda dapat menemukan detail build Cloud Build. Pesannya akan terlihat seperti berikut:

Logs are available at [
https://console.cloud.google.com/cloud-build/builds/637860fb-7a14-46f2-861e-09c1dc4cea6b?project=PROJECT_NUMBER].

Untuk melihat progres build, buka URL yang ditampilkan di browser Anda. Anda juga dapat melihat log bantuan di Cloud Logging.

Memeriksa URL layanan

Setelah tugas Cloud Build berakhir, periksa URL endpoint layanan Cloud Run dengan menjalankan perintah berikut:

gcloud run services describe my-cloud-run-service --region=REGION --format="value(status.url)"

Perintah ini akan menampilkan URL layanan, yang terlihat seperti berikut:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

Gunakan URL yang ditampilkan sebagai nilai SERVICE_URL di bagian Pastikan aplikasi Anda berjalan.

Membangun dan menjalankan secara manual

Membangun dan menjalankan secara manual

Anda dapat secara manual menjalankan langkah-langkah yang ditangani oleh Cloud Build, seperti yang dijelaskan dalam Menggunakan Cloud Build. Bagian berikut menjelaskan cara melakukan tugas yang sama secara manual.

Menetapkan variabel yang digunakan oleh langkah-langkah berikutnya

Beberapa langkah selanjutnya menggunakan variabel lingkungan untuk nilai umum. Siapkan variabel-variabel ini dengan menggunakan perintah berikut:

export GCP_PROJECT=PROJECT_ID
export REGION=REGION

Membuat repositori image container

Buat repositori Artifact Registry untuk image container dengan menjalankan perintah berikut:

gcloud artifacts repositories create run-gmp \
    --repository-format=docker \
    --location=${REGION}

Membangun dan mengirim aplikasi contoh

Contoh ini menggunakan Docker di Linux untuk mem-build aplikasi contoh dan mengirimkannya ke repositori Artifact Registry. Anda mungkin perlu menyesuaikan perintah ini jika bekerja di lingkungan Windows atau macOS.

Untuk mem-build aplikasi contoh dan mengirimkannya ke Artifact Registry, lakukan hal berikut:

  1. Autentikasi klien Docker Anda dengan Google Cloud CLI:

    gcloud auth configure-docker ${REGION}-docker.pkg.dev
    
  2. Buka direktori simple-app di repositori run-gmp-sidecar:

    pushd sample-apps/simple-app
    

  3. Build aplikasi simple-app dengan menjalankan perintah berikut:

    docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
    
  4. Kirim image untuk aplikasi yang telah dibangun dengan menjalankan perintah berikut:

    docker push ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app
    

  5. Kembali ke direktori run-gmp-sidecar:

    popd
    

Mengonfigurasi layanan Cloud Run

File run-service-simple.yaml dalam repositori run-gmp-sidecar menentukan layanan Cloud Run multicontainer yang menggunakan aplikasi contoh dan image kolektor yang Anda build di langkah sebelumnya. File run-service-simple.yaml berisi spesifikasi Layanan berikut:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
        run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "%SAMPLE_APP_IMAGE%"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
      - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.1.0"
        name: collector

File ini berisi nilai placeholder untuk gambar yang telah Anda bangun di langkah-langkah sebelumnya. Jadi, Anda harus memperbarui placeholder dengan nilai sebenarnya untuk project Google Cloud.

Ganti placeholder %SAMPLE_APP_IMAGE% dengan menjalankan perintah berikut:

sed -i s@%SAMPLE_APP_IMAGE%@REGION-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app@g run-service-simple.yaml

Men-deploy layanan Cloud Run

Setelah mengupdate file run-service-simple.yaml dengan nilai Anda, Anda dapat membuat dan men-deploy layanan Cloud Run dengan menjalankan perintah berikut:

gcloud run services replace run-service-simple.yaml --region=REGION
   

Perintah ini akan menampilkan URL layanan, yang terlihat seperti berikut:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

Gunakan URL yang ditampilkan sebagai nilai SERVICE_URL di bagian Pastikan aplikasi Anda berjalan.

Izinkan akses HTTP yang tidak diautentikasi

Agar dapat mengajukan permintaan ke URL layanan, Anda perlu mengubah kebijakan layanan Cloud Run untuk menerima akses HTTP yang tidak diautentikasi. File policy.yaml di repositori run-gmp-sidecar berisi perubahan yang diperlukan.

Untuk mengubah kebijakan layanan, jalankan perintah berikut:

gcloud run services set-iam-policy my-cloud-run-service policy.yaml --region=REGION

Memastikan aplikasi Anda berjalan

Untuk memverifikasi bahwa layanan Cloud Run telah menjalankan aplikasi contoh dengan benar, gunakan utilitas curl untuk mengakses endpoint metrics layanan.

  1. Tetapkan variabel lingkungan SERVICE_URL ke URL layanan Cloud Run dari langkah sebelumnya:

    export SERVICE_URL=SERVICE_URL
    
  2. Kirim permintaan ke URL layanan dengan menjalankan perintah berikut:

    curl $SERVICE_URL
    

Jika aplikasi berhasil dimulai, Anda akan melihat respons berikut:

User request received!

Melihat metrik aplikasi di Metrics Explorer

Contoh penampung app menulis metrik berikut:

  • foo_metric: Waktu saat ini sebagai nilai floating point (ukur).
  • bar_metric: Waktu saat ini sebagai nilai floating point (penghitung).

Untuk melihat metrik ini di Metrics Explorer, lakukan tindakan berikut:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Di toolbar panel pembuat kueri, pilih tombol dengan nama  MQL atau  PromQL.

  3. Pastikan PromQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.

  4. Masukkan kueri berikut ke dalam panel editor:

    foo_metric
    
  5. Klik Tambahkan kueri.

  6. Di toolbar panel pembuat kueri, pilih tombol dengan nama  MQL atau  PromQL.

  7. Pastikan PromQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.

  8. Masukkan kueri berikut ke dalam panel editor kedua:

    bar_metric
    
  9. Klik Jalankan kueri.

  10. Untuk melihat detail tentang metrik, pada tombol berlabel Chart Table Both, pilih Both.

Pembersihan

Setelah selesai bereksperimen dengan aplikasi contoh, Anda dapat menggunakan skrip clean-up-cloud-run.sh di repositori run-gmp-sidecar untuk menghapus resource berikut yang mungkin telah Anda buat untuk contoh:

  • Layanan Cloud Run.
  • Repositori Artifact Registry.
  • Akun layanan yang dibuat untuk Cloud Build.

Dengan menghapus resource ini, Anda tidak akan mengeluarkan biaya setelah menjalankan sampel.

Untuk membersihkan aplikasi contoh, jalankan skrip clean-up-cloud-run.sh:

./clean-up-cloud-run.sh

Lihat metrik mandiri di Metrics Explorer

File bantuan Managed Service for Prometheus melaporkan metrik berikut tentang metrik itu sendiri ke Cloud Monitoring:

  • agent_uptime: Waktu beroperasi kolektor sespan (counter).
  • agent_memory_usage: Memori yang dipakai oleh kolektor sespan (gauge).
  • agent_api_request_count: Jumlah permintaan API dari kolektor file bantuan (counter).
  • agent_monitoring_point_count: Jumlah titik metrik yang ditulis ke Cloud Monitoring oleh kolektor file bantuan (penghitung).

Untuk melihat metrik mandiri file bantuan di Metrics Explorer, lakukan langkah berikut:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Di toolbar panel pembuat kueri, pilih tombol dengan nama  MQL atau  PromQL.

  3. Pastikan PromQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.

  4. Masukkan nama metrik yang ingin Anda kueri ke panel editor, misalnya:

    agent_api_request_count
    
  5. Klik Jalankan kueri.

  6. Untuk melihat detail tentang metrik, pada tombol berlabel Chart Table Both, pilih Both.

Lihat log mandiri di Logs Explorer

File bantuan Managed Service for Prometheus menulis log ke Cloud Logging. File bantuan tersebut menulis log terhadap jenis resource yang dimonitor Logging cloud_run_revision.

Untuk melihat log file bantuan di Logs Explorer, lakukan hal berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Logs Explorer:

    Buka Logs Explorer

  2. Pilih jenis resource Cloud Run revision, atau masukkan kueri berikut lalu klik Run query:

    resource.type="cloud_run_revision"
    

Tentang metrik yang dikumpulkan

Saat metrik yang dihasilkan oleh file bantuan ditransfer ke dalam Cloud Monitoring, metrik tersebut akan ditulis berdasarkan jenis resource yang dimonitor prometheus_target Cloud Monitoring. Jenis resource ini digunakan untuk metrik aplikasi dan metrik mandiri file bantuan.

Saat menulis metrik, file bantuan menetapkan label resource sebagai berikut:

  • project_id: ID project Google Cloud tempat container dijalankan.
  • location: Region Google Cloud tempat container berjalan.
  • cluster: Nilai __run__.
  • namespace: Nama layanan Cloud Run yang sedang dijalankan; berasal dari variabel lingkungan K_SERVICE.
  • job: Nama dari konfigurasi RunMonitoring; defaultnya adalah run-gmp-sidecar.
  • instance: Nilai faas.ID:PORT dari beban kerja lokal tempat container dikonfigurasi untuk mengambil metrik. Nilai faas.ID adalah ID instance Cloud Run.

File bantuan ini juga menambahkan label metrik berikut:

  • instanceId: ID instance Cloud Run.
  • service_name: Nama layanan Cloud Run yang dijalankan.
  • revision_name: Nama revisi Cloud Run yang sedang dijalankan.
  • configuration_name: Nama konfigurasi Cloud Run yang sedang dijalankan.

Semua label metrik ini ditambahkan secara default. Jika menggunakan konfigurasi RunMonitoring kustom, Anda dapat menghapus label ini dengan menggunakan opsi targetLabels dalam spesifikasi RunMonitoring. Anda juga dapat menggunakan konfigurasi kustom untuk melabeli ulang salah satu label metrik ini kecuali instanceId.

Semua label lain yang muncul dengan metrik yang diserap berasal dari metrik pengguna. Jika label yang ditentukan pengguna bertentangan dengan salah satu label yang disediakan sistem, label yang ditentukan pengguna akan diawali dengan string exported_. Misalnya, label namespace=playground yang ditentukan pengguna bertentangan dengan label namespace yang ditentukan sistem, sehingga label pengguna muncul sebagai exported_namespace=playground.

Jenis metrik

Saat metrik yang dihasilkan oleh file bantuan ditransfer ke dalam Cloud Monitoring, metrik tersebut ditulis sebagai metrik prometheus.googleapis.com, dan jenis metrik Prometheus ditambahkan ke akhir namanya. Misalnya, aplikasi contoh memunculkan metrik pengukur Prometheus yang bernama foo_metric. Di Cloud Monitoring, metrik disimpan sebagai jenis metrik prometheus.googleapis.com/foo_metric/gauge.

Saat membuat kueri metrik dengan PromQL, Anda dapat menggunakan nama Prometheus, seperti yang ditunjukkan dalam Melihat metrik aplikasi di Metrics Explorer dan Melihat metrik mandiri di Metrics Explorer. Saat menggunakan alat seperti builder kueri atau Bahasa Kueri Monitoring (MQL) di Metrics Explorer, jenis metrik Cloud Monitoring menjadi relevan.

Penagihan

Metrik yang dikeluarkan oleh file bantuan diserap ke dalam Cloud Monitoring dengan awalan prometheus.googleapis.com. Metrik dengan awalan ini dikenai biaya berdasarkan jumlah sampel yang diserap. Untuk informasi selengkapnya tentang penagihan dan Google Cloud Managed Service for Prometheus, lihat Penagihan.