Tutorial ini menunjukkan cara menulis, men-deploy, dan memanggil layanan Cloud Run yang melaporkan metrik OTLP kustom ke Google Cloud Managed Service For Prometheus dengan menggunakan OpenTelemetry Collector Buatan Google sebagai file bantuan. Untuk mengetahui informasi tentang Collector buatan Google, lihat Ringkasan OpenTelemetry Collector Buatan Google.
Jika Anda memiliki layanan Cloud Run yang melaporkan metrik Prometheus, gunakan file bantuan Prometheus untuk Cloud Run.
Menyiapkan default gcloud
Untuk mengonfigurasi gcloud dengan setelan default untuk layanan Cloud Run Anda:
Setel project default Anda:
gcloud config set project PROJECT_ID
Ganti PROJECT_ID dengan nama project yang Anda buat untuk tutorial ini.
Konfigurasi gcloud untuk region yang Anda pilih:
gcloud config set run/region REGION
Ganti REGION dengan region Cloud Run pilihan Anda yang didukung.
Lokasi Cloud Run
Cloud Run bersifat regional, berarti infrastruktur yang
menjalankan layanan Cloud Run Anda terletak di region tertentu dan
dikelola oleh Google agar tersedia secara redundan di
semua zona dalam region tersebut.
Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama
untuk memilih region tempat layanan Cloud Run dijalankan.
Pada umumnya, Anda dapat memilih region yang paling dekat dengan pengguna Anda, tetapi Anda harus mempertimbangkan
lokasi produk Google Cloud
lainnya yang digunakan oleh layanan Cloud Run Anda.
Menggunakan Google Cloud produk secara bersamaan di beberapa lokasi dapat memengaruhi
latensi serta biaya layanan Anda.
Cloud Run tersedia di region berikut:
Tergantung harga Tingkat 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)asia-south1
(Mumbai, India)europe-north1
(Finlandia)CO2 Rendah
europe-north2
(Stockholm)CO2 Rendah
europe-southwest1
(Madrid)CO2 Rendah
europe-west1
(Belgia)CO2 Rendah
europe-west4
(Belanda)CO2 Rendah
europe-west8
(Milan)europe-west9
(Paris)CO2 Rendah
me-west1
(Tel Aviv)northamerica-south1
(Meksiko)us-central1
(Iowa)CO2 Rendah
us-east1
(South Carolina)us-east4
(North Virginia)us-east5
(Columbus)us-south1
(Dallas)CO2 Rendah
us-west1
(Oregon)CO2 Rendah
Tergantung harga Tingkat 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Seoul, Korea Selatan)asia-southeast1
(Singapura)asia-southeast2
(Jakarta)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warsawa, Polandia)europe-west10
(Berlin)europe-west12
(Turin)europe-west2
(London, Inggris Raya)CO2 Rendah
europe-west3
(Frankfurt, Jerman)europe-west6
(Zurich, Swiss)CO2 Rendah
me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal)CO2 Rendah
northamerica-northeast2
(Toronto)CO2 Rendah
southamerica-east1
(Sao Paulo, Brasil)CO2 Rendah
southamerica-west1
(Santiago, Cile)CO2 Rendah
us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Jika sudah membuat layanan Cloud Run, Anda dapat melihat region di dasbor Cloud Run di Google Cloud konsol.
Membuat repositori gambar Artifact Registry
Membuat repositori Docker Artifact Registry untuk menghosting image layanan sampel:
gcloud artifacts repositories create run-otel \ --repository-format=docker \ --location=REGION \ --project=PROJECT_ID
Ganti kode berikut:
- PROJECT_ID dengan nama project yang Anda buat untuk tutorial ini.
- REGION REGION dengan region Cloud Run yang didukung pilihan Anda.
Mengambil contoh kode
Untuk mengambil contoh kode agar dapat digunakan:
Clone repositori aplikasi contoh ke komputer lokal Anda:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Atau, Anda dapat mendownload contoh sebagai file ZIP dan mengekstraknya.
Ubah ke direktori yang berisi kode contoh Cloud Run:
Go
cd golang-samples/run/custom-metrics/
Meninjau kode
Kode untuk tutorial ini terdiri dari:
- Server yang menangani permintaan masuk dan menghasilkan metrik bernama
sidecar_sample_counter_total
.
Dockerfile
yang menentukan lingkungan operasi untuk layanan.
Contoh ini juga menyertakan file pada subdirektori collector
untuk membuat pengumpul kustom:
File konfigurasi untuk pengumpul.
Dockerfile
yang menggabungkan konfigurasi yang disediakan ke dalam image Collector upstream.
Mengirimkan kode
Kode pengiriman terdiri dari tiga langkah: membangun image container dengan Cloud Build, mengupload image container ke Artifact Registry, dan men-deploy image container ke Cloud Run.
Untuk kode pengiriman Anda:
-
Bangun container layanan contoh Anda dan publikasikan di Artifact Registry:
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/run-otel/sample-metrics-app
Setelah berhasil, Anda akan melihat pesan SUCCESS yang berisi ID, waktu pembuatan, dan nama image. Image tersebut disimpan di Artifact Registry dan dapat digunakan kembali jika diinginkan.
-
Bangun container Collector Anda dan publikasikan di Artifact Registry:
gcloud builds submit collector --tag REGION-docker.pkg.dev/PROJECT_ID/run-otel/otel-collector-metrics
Setelah berhasil, Anda akan melihat pesan SUCCESS yang berisi ID, waktu pembuatan, dan nama image. Image tersebut disimpan di Artifact Registry dan dapat digunakan kembali jika diinginkan.
-
Men-deploy aplikasi Anda:
YAML
-
Buat file baru bernama
service.yaml
dengan:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE-NAME annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: run.googleapis.com/container-dependencies: "{app:[collector]}" spec: containers: - image: REGION-docker.pkg.dev/PROJECT_ID/run-otel/sample-metrics-app name: app ports: - containerPort: CONTAINER_PORT env: - name: "OTEL_EXPORTER_OTLP_ENDPOINT" value: "http://localhost:4317" - image: REGION-docker.pkg.dev/PROJECT_ID/run-otel/otel-collector-metrics name: collector startupProbe: httpGet: path: / port: 13133
-
Ganti kode berikut:
- CONTAINER_PORT dengan port yang diproses oleh container masuk layanan Anda. Secara default, nilainya adalah
8080
. - SERVICE-NAME dengan nama apa pun untuk layanan Anda, seperti
custom-metrics-sample-service
.
- CONTAINER_PORT dengan port yang diproses oleh container masuk layanan Anda. Secara default, nilainya adalah
-
-
Buat layanan baru dengan perintah berikut:
gcloud run services replace service.yaml
Perintah ini akan menampilkan URL layanan. Gunakan URL ini untuk mencoba aplikasi contoh dalam Melakukan percobaan.
Melakukan Percobaan
Dengan menggunakan URL dari perintah gcloud run
dalam Mengirimkan kode,
hubungkan ke layanan untuk membuat beberapa contoh metrik (Anda dapat menjalankan perintah ini
beberapa kali untuk menghasilkan data yang lebih beragam):
curl -H \ "Authorization: Bearer $(gcloud auth print-identity-token)" \ SERVICE_URL
Ganti SERVICE_URL dengan URL layanan Anda.
Selanjutnya, buka Metrics Explorer
di bagian Cloud Monitoring pada konsol Google Cloud , lalu pilih metrik
sidecar_sample_counter_total
.
Anda juga dapat membuat kueri metrik dengan PromQL. Misalnya, kueri di bawah akan memfilter metrik berdasarkan ID instance Cloud Run:
sidecar_sample_counter_total{instance="INSTANCE_ID"}
Ganti INSTANCE_ID dengan ID instance apa pun untuk layanan Anda (tersedia di log instance atau dari server metadata).
Kueri ini menghasilkan chart seperti di bawah ini: