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 file bantuan OpenTelemetry. Namun, untuk layanan yang menulis metrik Prometheus, gunakan sidecar Managed Service for Prometheus yang dijelaskan dalam dokumen ini.

Dokumen ini menjelaskan cara melakukan hal berikut:

File bantuan 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 menyertakan beberapa perubahan untuk mendukung Cloud Run. Pengumpul akan melakukan scraping startup setelah 10 detik dan melakukan scraping shutdown, terlepas dari seberapa singkat waktu aktif instance. Untuk keandalan maksimum, sebaiknya layanan Cloud Run yang menjalankan sidecar juga menggunakan CPU yang selalu dialokasikan; untuk informasi selengkapnya, lihat Alokasi CPU (layanan). Beberapa upaya pengambilan mungkin gagal jika alokasi CPU dibatasi karena jumlah kueri per detik (QPS) yang rendah. CPU yang selalu dialokasikan tetap tersedia.

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

File bantuan Managed Service for Prometheus untuk Cloud Run memperkenalkan konfigurasi baru, RunMonitoring, subset dari 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 sidecar 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 dan tidak perlu memasukkannya dengan setiap perintah. Untuk menetapkan project sebagai default, masukkan perintah berikut:

gcloud config set project PROJECT_ID

Anda juga dapat menetapkan region default untuk layanan Cloud Run. 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 belum 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@. 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 informasi selengkapnya tentang akun layanan untuk Cloud Run, lihat Mengonfigurasi Identitas Layanan.

Mengonfigurasi dan menambahkan sidecar ke layanan Cloud Run

File bantuan 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 khusus untuk Kubernetes.

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

Konfigurasi default

Menggunakan konfigurasi RunMonitoring default

Jika Anda tidak membuat konfigurasi RunMonitoring kustom, kolektor sidecar akan menyintesis konfigurasi default berikut untuk mengambil 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

Penggunaan konfigurasi default tidak memerlukan penyiapan tambahan selain menambahkan sidecar ke layanan Cloud Run Anda.

Menambahkan sidecar ke layanan Cloud Run

Untuk menggunakan sidecar dengan konfigurasi RunMonitoring default, Anda perlu mengubah konfigurasi Cloud Run yang ada untuk menambahkan sidecar. Untuk menambahkan sidecar, lakukan langkah-langkah berikut:

  • Tambahkan anotasi dependensi penampung yang menentukan urutan pengaktifan dan penonaktifan penampung. Dalam contoh berikut, penampung sidecar, yang bernama "collector", dimulai setelah dan dimatikan sebelum penampung aplikasi, yang bernama "app" dalam contoh.
  • Buat penampung untuk kolektor, yang diberi nama "collector" dalam 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.2.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 pengambilan 10 detik.
  • Menggunakan pemberian label ulang untuk menambahkan label label_key dengan nilai label_value ke setiap metrik yang di-scrap.
  • Menambahkan label metadata service dan revision ke setiap metrik yang di-scrap.

Untuk informasi tentang opsi konfigurasi yang tersedia, lihat RunMonitoring spec: configuration options.

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 akan membuat secret bernama mysecret dari file custom-config.yaml:

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

Untuk menerapkan 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

Sidecar akan otomatis memuat ulang dan menerapkan perubahan pada konfigurasinya.

Menambahkan sidecar ke layanan Cloud Run

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

  • Menambahkan sidecar Managed Service for Prometheus
    • Tambahkan anotasi dependensi penampung yang menentukan urutan pengaktifan dan penonaktifan penampung. Dalam contoh berikut, penampung sidecar, yang bernama "collector", dimulai setelah dan dimatikan sebelum penampung aplikasi, yang bernama "app" dalam contoh.
    • Buat penampung untuk kolektor, yang diberi nama "collector" dalam 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, yang diberi nama "config" dalam contoh berikut, untuk secret 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.2.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 sidecar Managed Service for Prometheus. Berikut adalah 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 Wajib
metadata Metadata yang harus dimiliki semua resource yang dipertahankan. metav1.ObjectMeta false
spec Spesifikasi deployment Cloud Run yang dipilih untuk penemuan target oleh Prometheus. RunMonitoringSpec benar
RunMonitoringSpec

Spesifikasi ini menjelaskan cara konfigurasi RunMonitoring memantau layanan Cloud Run.

Kolom Deskripsi Skema Wajib
endpoints Endpoint yang akan di-scrape di pod yang dipilih. []ScrapeEndpoint benar
targetLabels Label yang akan ditambahkan ke target Prometheus untuk endpoint yang ditemukan. Label instance selalu ditetapkan ke ID instance Cloud Run. RunTargetLabels false
limits Batasan yang akan diterapkan pada waktu pengambilan data. *ScrapeLimits false
RunTargetLabels

Konfigurasi RunTargetLabels memungkinkan Anda menyertakan label Cloud Run dari target Prometheus yang ditemukan.

Kolom Deskripsi Skema Wajib
metadata Label metadata Cloud Run yang ditetapkan pada semua target yang di-scrap.

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

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

Secara default, semua kunci yang diizinkan akan ditetapkan.
*[]string false

Mem-build dan menjalankan aplikasi contoh

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

Meng-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

Mem-build dan menjalankan aplikasi contoh

Aplikasi contoh memerlukan Docker atau sistem build container serupa untuk Linux. Anda dapat mem-build 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 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 ini menggabungkan langkah-langkah yang diperlukan untuk mem-build dan men-deploy aplikasi contoh.

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

Menyiapkan untuk 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..
  • 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 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 memerlukan waktu beberapa menit untuk dijalankan, tetapi hampir 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 sidecar 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 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 Memverifikasi bahwa aplikasi Anda berjalan.

Membangun dan menjalankan secara manual

Membangun dan menjalankan secara manual

Anda dapat melakukan langkah-langkah yang ditangani oleh Cloud Build secara manual, 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 berikutnya menggunakan variabel lingkungan untuk nilai umum. Siapkan variabel ini 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}

Mem-build dan mengirim aplikasi contoh

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

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

  1. Lakukan 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 di-build 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 di repositori run-gmp-sidecar menentukan layanan Cloud Run multi-container 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.2.0"
        name: collector

File ini berisi nilai placeholder untuk image yang telah Anda build di langkah sebelumnya, sehingga Anda harus memperbarui placeholder dengan nilai sebenarnya untuk project Google Cloud Anda.

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 memperbarui file run-service-simple.yaml dengan nilai, 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 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 Memverifikasi bahwa aplikasi Anda berjalan.

Mengizinkan akses HTTP yang tidak diautentikasi

Sebelum dapat membuat permintaan ke URL layanan, Anda harus 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

Memverifikasi bahwa 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

Penampung app contoh menulis metrik berikut:

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

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

  1. Di konsol Google Cloud, buka halaman  Metrics explorer:

    Buka Metrics explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar panel pembuat kueri, pilih tombol yang namanya adalah  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 yang namanya adalah  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 Run query.

  10. Untuk melihat detail tentang metrik, di 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.

Menghapus resource ini memastikan bahwa Anda tidak dikenai biaya setelah menjalankan sampel.

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

./clean-up-cloud-run.sh

Melihat metrik mandiri di Metrics Explorer

Sidecar Managed Service for Prometheus melaporkan metrik berikut tentang dirinya sendiri ke Cloud Monitoring:

  • agent_uptime: Waktu aktif kolektor sidecar (penghitung).
  • agent_memory_usage: Memori yang digunakan oleh kolektor sidecar (pengukur).
  • agent_api_request_count: Jumlah permintaan API dari kolektor samping (penghitung).
  • agent_monitoring_point_count: Jumlah titik metrik yang ditulis ke Cloud Monitoring oleh kolektor sidecar (penghitung).

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

  1. Di konsol Google Cloud, buka halaman  Metrics explorer:

    Buka Metrics explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar panel pembuat kueri, pilih tombol yang namanya adalah  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 buat kuerinya ke panel editor, misalnya:

    agent_api_request_count
    
  5. Klik Run query.

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

Melihat log mandiri di Logs Explorer

Sidecar Managed Service for Prometheus menulis log ke Cloud Logging. Sidecar menulis log terhadap jenis resource yang dimonitor Logging, yaitu cloud_run_revision.

Untuk melihat log sidecar di Logs Explorer, lakukan hal berikut:

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

    Buka Logs Explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  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 dikeluarkan oleh sidecar diserap ke Cloud Monitoring, metrik tersebut ditulis berdasarkan jenis resource yang dimonitor prometheus_target Cloud Monitoring. Jenis resource ini digunakan untuk metrik aplikasi dan metrik mandiri sidecar.

Saat menulis metrik, sidecar menetapkan label resource sebagai berikut:

  • project_id: ID project Google Cloud tempat penampung berjalan.
  • location: Region Google Cloud tempat penampung 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 workload lokal tempat penampung dikonfigurasi untuk mengambil metrik. Nilai faas.ID adalah ID instance instance Cloud Run.

Sidecar juga menambahkan label metrik berikut:

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

Semua label metrik ini ditambahkan secara default. Jika menggunakan konfigurasi RunMonitoring kustom, Anda dapat menghapus label service_name, revision_name, dan configuration_name dengan menggunakan opsi targetLabels dalam spesifikasi RunMonitoring. Anda juga dapat menggunakan konfigurasi kustom untuk memberi label ulang nilai label service_name, revision_name, dan configuration_name.

Semua label lain yang muncul dengan metrik yang diserap berasal dari metrik Anda. 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 akan muncul sebagai exported_namespace="playground".

Jenis metrik

Saat metrik yang dimunculkan oleh sidecar diserap ke Cloud Monitoring, metrik ditulis sebagai metrik prometheus.googleapis.com, dan jenis metrik Prometheus ditambahkan ke akhir nama. Misalnya, aplikasi contoh memunculkan metrik pengukur Prometheus 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 diilustrasikan dalam Melihat metrik aplikasi di Metrics Explorer dan Melihat metrik mandiri di Metrics Explorer. Saat menggunakan alat seperti pembuat kueri atau Monitoring Query Language (MQL) di Metrics Explorer, jenis metrik Cloud Monitoring akan relevan.

Penagihan

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