1. Giriş
Last Updated: 2023-07-28
Google Cloud İşlem Paketi nedir?
Google Cloud Operations Suite, Google Cloud ortamınızda uygulama performansını izleyebileceğiniz, sorunları giderebileceğiniz ve iyileştirebileceğiniz bir platformdur. Cloud Operations Suite'in temel bileşenleri arasında Cloud Monitoring, Cloud Logging ve Cloud Tracing yer alır.
Google Cloud Operations'a genel bir bakış için bu videoyu izleyin.
Ne oluşturacaksınız?
Bu codelab'de Google Cloud'da örnek bir API dağıtacaksınız. Ardından, API ile ilgili olarak Cloud Monitoring'deki birden fazla özelliği keşfedip yapılandıracaksınız.
Neler öğreneceksiniz?
- Cloud Run'a örnek uygulama dağıtmak için Google Cloud'un Cloud Shell'inin kullanılması.
- Gösterge Tabloları, Uyarılar, Çalışma Denetimleri, SLI/SLO İzleme ve daha fazlası gibi Google Cloud Monitoring özelliklerinin kullanımı.
Gerekenler
- Chrome'un son sürümü (74 veya sonraki sürümler)
- Google Cloud hesabı ve Google Cloud projesi
2. Kurulum ve Gereksinimler
Yönlendirmesiz ortam kurulumu
Google Hesabınız (Gmail veya Google Apps) yoksa hesap oluşturmanız gerekir. Google Cloud Platform Console'da ( console.cloud.google.com) oturum açın ve yeni bir proje oluşturun.



- Proje adı, bu projenin katılımcılarının görünen adıdır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman bunu güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersiz olmalı ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğine (genellikle PROJECT_ID olarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince geçerli kalır.
- Bazı API'lerin kullandığı üçüncü bir değer olan proje numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
Dikkat: Proje kimliği genel olarak benzersiz olmalıdır ve siz seçtikten sonra başka kimse tarafından kullanılamaz. Bu kimliğin tek kullanıcısı sizsiniz. Bir proje silinse bile kimlik asla tekrar kullanılamaz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projenin tamamını silebilirsiniz. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Google Cloud Shell Kurulumu
Google Cloud ve Google Cloud Trace, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, bulutta çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacağız.
Cloud Shell'i Cloud Console'dan etkinleştirmek için Cloud Shell'i Etkinleştir'i tıklamanız yeterlidir (ortamın sağlanması ve bağlantının kurulması yalnızca birkaç saniye sürer).

Cloud Shell'i daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmı) gösterilir. Bu durumda Devam'ı tıkladığınızda bu ekranı bir daha görmezsiniz. Bu tek seferlik ekran aşağıdaki gibi görünür:

Cloud Shell'in temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır.

Bu sanal makine, ihtiyaç duyduğunuz tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin bulunur ve Google Cloud'da çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki çalışmalarınızın neredeyse tamamını yalnızca bir tarayıcı veya Chromebook'unuzla yapabilirsiniz.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin, proje kimliğinize ayarlandığını görürsünüz.
Kimliğinizin doğrulandığını onaylamak için Cloud Shell'de şu komutu çalıştırın:
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin, PROJECT_ID'nize ayarlandığını görürsünüz.
gcloud auth list
Komut çıkışı
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Herhangi bir nedenle proje ayarlanmamışsa şu komutu verin:
gcloud config set project <PROJECT_ID>
Cloud Shell, gelecekteki komutları çalıştırırken faydalı olabilecek bazı ortam değişkenlerini de varsayılan olarak ayarlar.
echo $GOOGLE_CLOUD_PROJECT
Komut çıkışı
<PROJECT_ID>
Örnek Uygulamalar
Bu proje için ihtiyacınız olan her şeyi bir Git deposuna yerleştirdik. Depoda birkaç örnek uygulama bulunur ve bu alıştırma için bunlardan herhangi birini kullanabilirsiniz.
Git deposu bağlantısı: https://github.com/rominirani/cloud-code-sample-repository
3. API uygulamasını dağıtma
Örnek uygulama veya API ne hakkında?
Uygulamamız, envanter öğelerini listeleyen ve belirli öğelerin envanter sayısını alan birkaç işlem içeren bir REST API uç noktası sunan basit bir Envanter API uygulamasıdır.
API'yi dağıttıktan sonra ve https://<somehost> adresinde barındırıldığını varsayarsak API uç noktalarına aşağıdaki gibi erişebiliriz:
- https://<somehost>/inventory
Bu işlem, stoktaki envanter düzeyleriyle birlikte tüm ürün öğelerini listeler.
- https://<somehost>/inventory/{productid}
Bu işlem, ürün kimliğini ve söz konusu ürünün stoktaki envanter düzeyini içeren tek bir kayıt sağlar.
Döndürülen yanıt verileri JSON biçimindedir.
Örnek Veriler ve API İsteği/Yanıtı
Uygulama, işleri basit tutmak için arka uçta bir veritabanı tarafından desteklenmez. 3 örnek ürün kimliği ve bunların stoktaki envanter düzeylerini içerir.
Ürün Kimliği | Eldeki Envanter Düzeyi |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Örnek API isteği ve yanıtı aşağıda gösterilmiştir:
API İsteği | API Yanıtı |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Depoyu Klonlama
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
GCP Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu laboratuvardaki çalışmalarınızın tamamını yalnızca bir tarayıcı kullanarak yapabilirsiniz.
gcloud'u kurma
Cloud Shell'de proje kimliğinizi ayarlayın ve PROJECT_ID değişkeni olarak kaydedin.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Şimdi aşağıdaki komutu çalıştırın:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Bu işlem, bu klasörde cloud-code-sample-repository adlı bir klasör oluşturur.
(İsteğe bağlı) Uygulamayı Cloud Shell'de çalıştırma
Aşağıdaki adımları uygulayarak uygulamayı yerel olarak çalıştırabilirsiniz:
- Terminalden aşağıdaki komutu kullanarak API'nin Python sürümüne gidin:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- Terminalde aşağıdaki komutu girin (Bu belge yazılırken Cloud Shell'de Python 3.9.x yüklüydü ve varsayılan sürüm kullanılacaktır. Dizüstü bilgisayarınızda yerel olarak çalıştırmayı planlıyorsanız Python 3.8+ sürümünü kullanabilirsiniz:
$ python app.py
- Python sunucusunu yerel olarak başlatmak için aşağıdaki komutu çalıştırabilirsiniz.

- Bu işlem, 8080 bağlantı noktasında bir sunucu başlatır. Cloud Shell'in Web Önizleme özelliğini kullanarak sunucuyu yerel olarak test edebilirsiniz. Aşağıda gösterildiği gibi Web Önizlemesi düğmesini tıklayın:

8080 numaralı bağlantı noktasında önizle'yi tıklayın.
- Bu işlemle bir tarayıcı penceresi açılır. 404 hatası görürsünüz. Bu normaldir. URL'yi değiştirin ve ana makine adından sonra yalnızca /inventory olacak şekilde düzenleyin.
Örneğin, benim makinemde şöyle görünüyor:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Bu işlem, envanter öğelerinin listesini daha önce açıklandığı şekilde gösterir:

- Terminal'e gidip Ctrl-C tuşlarına basarak sunucuyu şimdi durdurabilirsiniz.
Uygulamayı dağıtma
Şimdi bu API uygulamasını Cloud Run'a dağıtacağız. Bu süreçte, kodu Cloud Run'a dağıtma komutunu çalıştırmak için gcloud komut satırı istemcisi kullanıldı.
Terminalden aşağıdaki gcloud komutunu verin:
$ gcloud run deploy --source .
Bu işlemde size birden fazla soru sorulur (yetkilendirmeniz istenirse lütfen devam edin). Bazı noktalar aşağıda belirtilmiştir. Yapılandırmaya ve Google Cloud projenizde belirli API'leri etkinleştirip etkinleştirmediğinize bağlı olarak tüm soruları alabilirsiniz veya almayabilirsiniz.
- Hizmet adı (python-flask-api): Bu varsayılan adı kullanabilir veya my-inventory-api gibi bir ad seçebilirsiniz.
- [run.googleapis.com] API'si, [project-number] projesinde etkinleştirilmemiş. Etkinleştirip tekrar denemek ister misiniz? Bu işlem birkaç dakika sürer. (y/N)? Y
- Lütfen bir bölge belirtin: Bir numara vererek istediğiniz bölgeyi seçin.
- [artifactregistry.googleapis.com] API'si [project-number] projesinde etkinleştirilmemiş. Etkinleştirip tekrar denemek ister misiniz? Bu işlem birkaç dakika sürer. (y/N)? Y
- Kaynaktan dağıtım için derlenen kapsayıcıları depolamak üzere bir Artifact Registry Docker deposu gerekir. [us-west1] bölgesinde [cloud-run-source-deploy] adlı bir depo oluşturulur.
Devam etmek istiyor musunuz (E/h)? Y
- [my-inventory-api] için kimliği doğrulanmamış çağrılara izin verilsin mi? (y/N) Y
Sonuç olarak, bu işlem kaynak kodunuzu alıp container mimarisine alma, Artifact Registry'ye gönderme ve ardından Cloud Run hizmetini + düzeltmeyi dağıtma sürecini başlatır. Bu işlem sırasında sabırlı olmanız gerekir (3-4 dakika sürebilir). İşlem tamamlandığında hizmet URL'si gösterilir.
Örnek bir çalıştırma aşağıda gösterilmektedir:

Uygulamayı test etme
Uygulamayı Cloud Run'a dağıttığımıza göre, API uygulamasına aşağıdaki şekilde erişebilirsiniz:
- Önceki adımdaki hizmet URL'sini not edin. Örneğin, benim kurulumumda
https://my-inventory-api-bt2r5243dq-uw.a.run.appolarak gösteriliyor. Buna <SERVICE_URL> diyelim. - Bir tarayıcı açın ve API uç noktaları için aşağıdaki 3 URL'ye erişin:
- <SERVICE_URL>/inventory
- <SERVICE_URL>/inventory/I-1
- <SERVICE_URL>/inventory/I-100
Önceki bir bölümde örnek API isteği ve yanıtıyla birlikte sağladığımız spesifikasyonlara uygun olmalıdır.
Cloud Run'dan hizmet ayrıntılarını alma
API hizmetimizi sunucusuz bilgi işlem ortamı olan Cloud Run'a dağıttık. Google Cloud Console üzerinden Cloud Run hizmetini istediğimiz zaman ziyaret edebiliriz.
Ana menüden Cloud Run'a gidin. Bu işlem, Cloud Run'da çalıştırdığınız hizmetlerin listesini gösterir. Yeni dağıttığınız hizmeti görürsünüz. Seçtiğiniz ada bağlı olarak aşağıdakine benzer bir şey görürsünüz:

Ayrıntıları görüntülemek için hizmet adını tıklayın. Örnek ayrıntıları aşağıda gösterilmiştir:

Tarayıcıya girip yeni dağıttığımız Inventory API'ye erişebileceğiniz hizmet URL'sinden başka bir şey olmayan URL'ye dikkat edin. Metriklere ve diğer ayrıntılara göz atabilirsiniz.
Hemen Google Cloud Operations Suite'i kullanmaya başlayın.
4. Kontrol paneli oluşturma
Cloud Monitoring'in sunduğu kullanışlı özelliklerden biri, Google Cloud'daki birden fazla kaynakta kullanıma hazır (OOTB) kontrol panelleridir. Bu sayede, standart metriklerle gösterge tablolarının ilk kurulumu hızlı ve kolay bir süreç haline gelir.
Şimdi de Cloud Run'a yeni dağıttığımız API hizmeti için bunu nasıl yapacağımıza bakalım.
Hizmetimiz için Özel Kontrol Paneli
API hizmetimizi Cloud Run'a dağıttığımız için, hizmet gecikmesi de dahil olmak üzere çeşitli metrikleri görselleştirmeye yardımcı olabilecek Gösterge Tablolarının nasıl ayarlanacağını inceleyelim.
İlk olarak, konsolda aşağıdaki şekilde gösterildiği gibi İzleme → Genel Bakış'ı ziyaret edin:

Genel Bakış'ta, İzleme'de yapılandırdığınız kontrol panelleri, uyarılar, çalışma denetimleri gibi birçok öğe gösterilir.

Şimdilik yan ana menüden Gösterge Tabloları'nı tıklayalım. Bu işlem bizi aşağıdaki ekrana yönlendirir:

ÖRNEK KİTAPLIĞI'nı tıklayın . Bu işlem, Google Cloud'da birden fazla kaynakta kullanılabilen kullanıma hazır (OOTB) Gösterge Tablolarının listesini gösterir. Özellikle, listede aşağı kaydırın ve aşağıda gösterildiği gibi Google Cloud Run'ı seçin.

Bu işlem, Google Cloud Run için kullanılabilen standart kontrol panellerinin bir listesini gösterir. Hizmetimizi Cloud Run'da dağıttığımız için bu konuyla ilgileniyoruz.
Cloud Run Monitoring için bir kontrol paneli görürsünüz. Cloud Run Monitoring için kullanılabilen standart grafiklerin (metrikler) listesini görüntülemek üzere ÖNİZLEME bağlantısını tıklayın. Tüm bu grafikleri özel bir kontrol paneline aktarmak için ÖRNEK KONTROL PANELİNİ İÇE AKTAR'ı tıklamanız yeterlidir. Bu işlem, aşağıda gösterildiği gibi aynı adla önceden doldurulmuş bir gösterge tablosu ekranı gösterir:

Kontrol paneli adının solunda, sol üstte bulunan sol oku tıklayarak geri gidebilirsiniz. Bu işlem, Gösterge Tabloları listesine yönlendirmenizi sağlar. Bu listede, az önce oluşturduğunuz Yeni Gösterge Tablosu'nu görebilirsiniz.
Bu kontrol paneli bağlantısını tıkladığınızda kullanıma hazır olarak sunulan birden fazla metriği izleyebilirsiniz. Bu metrikler arasında gecikme, istek sayısı, kapsayıcı metrikleri ve daha fazlası yer alır.
Aşağıda gösterildiği gibi yıldız simgesini seçerek istediğiniz kontrol panelini favori olarak işaretleyebilirsiniz:

Bu işlem, gösterge tablosunu İzleme'nin Genel Bakış ekranına ekler ve sık kullanılan gösterge tablolarına kolayca gitmenizi sağlar.


Harika! Cloud Run hizmetlerinizi izlemek için özel bir kontrol paneli eklediniz. Tebrikler!
5. Çalışma denetimleri
Bu bölümde, dağıttığımız API hizmetimiz için çalışma süresi kontrolü ayarlayacağız. Herkese açık çalışma süresi kontrolü, kaynağın yanıt verip vermediğini görmek için dünya genelinde birden fazla konumdan herkese açık URL'lere veya Google Cloud kaynaklarına istek gönderebilir.
Bu örnekteki kaynak, Cloud Run'a dağıttığımız API hizmeti olacaktır. URL, API hizmetinin hizmet durumunu belirtmek için sunduğu belirli bir uç nokta olacaktır.
Örnek API hizmeti kodunda, "All Izz Well" dize değerini döndüren bir /healthy uç noktası kullanıma sunulmuştur. Bu nedenle, https://<SERVICE_URL>/healthy gibi bir URL'ye erişen ve "All Izz Well" dizesinin döndürülüp döndürülmediğini kontrol eden bir çalışma süresi kontrolü tanımlamamız yeterlidir.
Bildirim kanalı oluşturma
Çalışma süresi kontrolünü oluşturmadan önce bildirim kanallarını yapılandırmanız önemlidir. Bildirim kanalı, izlenen kaynaklarımızdan herhangi birinde olay/sorun olması durumunda uyarılacağınız bir ortamdır. Bildirim kanalı örneği olarak e-postayı verebiliriz. Uyarı vb. durumlar olduğunda e-posta alırsınız.
Şimdilik bir e-posta bildirim kanalı yapılandırıp e-posta adresimizle ilişkilendireceğiz. Böylece sistemimizin oluşturacağı ve bizim yapılandıracağımız uyarılar hakkında bildirim alabileceğiz.
Bildirim kanalı oluşturmak için aşağıdaki adımları uygulayın:
Google Cloud Console'daki ana menüden İzleme → Uyarılar'a gidin (aşağıda gösterildiği gibi):

Bu işlemle, Uyarılar, Politikalar ve daha fazlasını içeren bir sayfa gösterilir. Şimdilik en üstte BİLDİRİM KANALLARINI DÜZENLE başlıklı bir bağlantı görürsünüz. Bu öğeyi tıklayın.

Bu işlem, aşağıda gösterildiği gibi çeşitli bildirim kanallarının listesini gösterir:

E-posta bölümünü bulun ve ilgili satır için YENİ EKLE'yi tıklayın. Bu işlem, aşağıdaki resimde gösterildiği gibi e-posta yapılandırma ayrıntılarını gösterir:

Aşağıda gösterildiği gibi e-posta adresinizi ve görünen adınızı girin. KAYDET'i tıklayın.
Böylece e-posta bildirimi kanalı oluşturma işlemi tamamlanır. Şimdi çalışma denetimini yapılandıralım.
Çalışma denetimi oluşturma
Google Cloud Console'daki ana menüden İzleme → Çalışma denetimleri'ne gidin. En üstte ÇALIŞMA SÜRESİ KONTROLÜ OLUŞTUR bağlantısını görürsünüz. Bu öğeyi tıklayın.

Bu işlem, çalışma süresi kontrolünü yapılandırmak için tamamlamanız gereken bir dizi adımı gösterir.
İlk adım, hedef ayrıntılarını (yani dağıttığımız Cloud Run hizmetiyle ilgili bilgileri) ayarlamaktır. Doldurulmuş bir form aşağıda gösterilmektedir:

Farklı değerler aşağıdaki gibi seçilebilir:
- Protokol : HTTPS
- Kaynak Türü : Cloud Run Hizmeti'ni seçin. Desteklediği diğer kaynaklara ve bu kaynaklarda da çalışma denetimleri ayarlayabileceğinize dikkat edin.
- Cloud Run hizmeti : my-inventory-api'yi veya Cloud Run hizmeti için kullandığınız adı seçin.
- "All Izz Well" dizesini döndürdüğümüz ve bunu kontrol etmek istediğimiz için yol /healthy'dir.
Sonraki adıma geçmek için DEVAM ET'i tıklayın. Bir sonraki adım, aşağıda gösterildiği gibi Yanıt Doğrulama adımıdır:

"İçerik eşleştirme" için kontrolü etkinleştirdiğimizi ve ardından /healthy uç noktası tarafından döndürülen yanıtın "All Izz Well" olacağını ayarladığımızı görebilirsiniz. Çalışma süresi kontrolü başarısız olursa uyarıyı ve hangi bildirim kanalında uyarılmamız gerektiğini yapılandıracağımız bir sonraki adıma geçmek için DEVAM'ı tıklayın.

Bu adımda uyarıya bir ad verin. Bu sorunu Envanter API'si Çalışma Süresi Kontrolü Hatası olarak seçtim ancak siz kendi adınızı seçebilirsiniz. Burada önemli olan, daha önce yapılandırdığınız listeden doğru bildirim kanalını seçmektir.
Yapılandırdığımız çalışma süresi kontrolünü incelemek için son adımda İNCELE'yi tıklayın.
Bu son adımda, çalışma denetimine bir ad verin (ör.Envanter API'si Çalışma Denetimi). Ardından, denetimin doğru şekilde yapılandırılıp yapılandırılmadığını da test edebilirsiniz. Bunun için TEST ET düğmesini tıklayın.

İşlemi tamamlayın (soldaki OLUŞTUR düğmesini tıklayın). Google Cloud, farklı bölgelerde yapılandırılmış çalışma süresi kontrol sondalarına URL'ye ping göndermeleri talimatını verir ve bu yanıtlar toplanır. Birkaç dakika sonra İzleme → Çalışma denetimleri bölümünü ziyaret edin. İdeal olarak, URL'ye farklı problardan erişilebildiğini gösteren tüm yeşil sinyalleri görmeniz gerekir.

Sondalardan herhangi biri belirli bir süre boyunca (yapılandırılabilir) başarısız olursa yapılandırdığımız e-posta kanalında bir uyarı bildirimi alırsınız.
Bu, çalışma süresi kontrolü ayarlama ile ilgili bölümümüzü tamamlar. Tebrikler!
6. Metrik Gezgini
Cloud Monitoring, birden fazla Google Cloud ürününde binlerce standart metriği kullanıma sunar. Bu metrikleri inceleyebilir, sorgulayabilir, grafiklere dönüştürebilir, Gösterge Tablolarına ekleyebilir, bunlarla ilgili Alerts oluşturabilir ve daha birçok işlem yapabilirsiniz.
Bu bölümdeki hedefimiz:
- Çeşitli metriklere nasıl bakabileceğinizi anlayacağız ve ardından API hizmetimiz için belirli bir metriği (gecikme) inceleyeceğiz.
- Bu metriği, istediğimiz zaman görselleştirmek için kullanabileceğimiz bir grafiğe ve özel kontrol paneline dönüştürün.
Inventory API Hizmeti için gecikme metriğini keşfetme
Google Cloud Console'daki ana menüden Monitoring → Metrics Explorer'a (İzleme → Metrik Gezgini) gidin. Bu işlem sizi Metrik Gezgini ekranına yönlendirir. BİR ÖLÇÜM SEÇİN'i tıklayın. Artık metrikleri oluşturulmuş birkaç etkin kaynak arasında gezinebilirsiniz.
Cloud Run hizmetleriyle çalıştığımız için Cloud Run Revision'ı, ardından aşağıdaki resimde gösterildiği gibi Request Latency (İstek Gecikmesi) başlıklı kategoriyi ve belirli metriği tıklayın:

Uygula'yı tıklayın. Bu işlem, istek gecikmesini bir grafikte gösterir. Aşağıda gösterildiği gibi, sağdaki Görüntüleme ayarlarından Widget Türü'nü çizgi grafik olarak değiştirebilirsiniz:

Bu işlem, aşağıdaki gibi bir gecikme grafiği gösterir:

Grafik ve özel kontrol paneli oluşturma
Bu grafiği kaydedelim. Grafiği Kaydet'i tıklayın ve aşağıdaki ayrıntıları kullanın:

Mevcut bir kontrol paneline kaydetmek yerine yeni bir kontrol paneli oluşturduğumuzu unutmayın. KAYDET düğmesini tıklayın. Bu işlem, yeni oluşturulan kontrol panelini aşağıdaki örnekte gösterildiği gibi kontrol paneli listemize ekler:

Ayrıntıları görüntülemek için oluşturduğumuz belirli kontrol panelini tıklayın.

Böylece, Metrik Gezgini aracılığıyla çeşitli metrikleri inceleme ve özel kontrol panellerimizi oluşturma bölümünü tamamlamış olduk.
7. Cloud Logging
Bu bölümde Cloud Logging'i keşfedeceğiz. Cloud Logging, çeşitli Google hizmetleri ve kendi uygulamalarınız tarafından oluşturulan günlüklerde gezinmenize ve bu günlükleri ayrıntılı olarak incelemenize yardımcı olan bir Günlük Gezgini arayüzüyle birlikte gelir.
Bu bölümde, Günlük Gezgini hakkında bilgi edinecek ve Günlüğe dayalı metrikler adlı bir özellik aracılığıyla arayabileceğimiz ve metriklere dönüştürebileceğimiz birkaç günlük mesajını simüle edeceğiz.
Günlük Gezgini
Aşağıda gösterildiği gibi, ana Google Cloud Console'da Logging → Logs Explorer (Günlük Kaydı → Günlük Gezgini) seçeneğini kullanarak Günlük Gezgini'ni ziyaret edebilirsiniz:

Bu işlem, günlük mesajlarını gerektiği gibi filtrelemek için çeşitli kaynakları (proje, Google Cloud kaynağı, hizmet adları vb.) ve günlük düzeylerini seçebileceğiniz/seçimini kaldırabileceğiniz bir günlük arayüzü görüntüler.

Yukarıda, Cloud Run düzeltmesi (yani dağıttığımız Cloud Run hizmetleri) için günlüklerin listesi gösterilmektedir. Yapılandırdığımız /healthy uç noktasına ulaşan çalışma denetimleri olan çeşitli istekler görürsünüz.
Uyarıları arama
I-1, I-2 ve I-3'ten biri olmayan ürün kimlikleri sağlayarak envanter hizmetine birkaç geçersiz istek gönderin. Örneğin, yanlış bir istek şöyledir:
https://<SERVICE_URL>/inventory/I-999
Artık sorguda yanlış bir ürün kimliği sağlandığında API'miz tarafından oluşturulan tüm UYARILAR aranacak.
Sorgu kutusuna aşağıdaki sorgu parametrelerini ekleyin:
resource.type="cloud_run_revision"
textPayload =~ "Received inventory request for incorrect productid"
Şuna benzer bir görünümde olacaktır:

Sorguyu Çalıştır'ı tıklayın. Bu işlem, gelen tüm istekleri ve bu sorunu içerenleri gösterir.

Günlük tabanlı metrikler
Bu hataları izlemek için özel bir günlük metriği oluşturalım. Yanlış ürün kimlikleriyle yapılan önemli sayıda arama olup olmadığını öğrenmek istiyoruz.
Yukarıdakileri hata metriğine dönüştürmek için Günlük Gezgini'nde gördüğünüz Metrik Oluştur düğmesini tıklayın.

Bu işlem, metrik tanımı oluşturma formunu açar. Sayaç metriği seçin ve aşağıdaki örnekte gösterildiği gibi Metrik Adı (inventory_lookup_errors) ve Açıklama ayrıntılarını girip Metrik Oluştur'u tıklayın.

Bu işlem, sayaç metriğini oluşturur ve aşağıda gösterildiği gibi bir mesaj görürsünüz:

Ana menüden Günlük kaydı → Günlük tabanlı metrikler'i ziyaret edin. Aşağıda gösterildiği gibi, kullanıcı tanımlı metrikler listesinde tanımladığımız özel metriği görmeniz gerekir:

Bu girişin sonunda, üç dikey nokta görürsünüz. Bu özel metrikte gerçekleştirebileceğiniz işlemleri görmek için bu noktaları tıklayın. Liste, aşağıda gördüğünüz listeye benzer olmalıdır. Metrik Gezgini'nde görüntüle seçeneğini tıklayın.

Bu işlem, önceki bölümde öğrendiğimiz Metrik Gezgini'ne yönlendirmelidir. Ancak bu kez Metrik Gezgini bizim için önceden doldurulmuş olacaktır.

Grafiği Kaydet'i tıklayın. Grafiği Kaydet seçenekleri için aşağıdaki değerleri kullanın:

Bu işlem, Envanter Arama hatalarını görebileceğiniz yeni bir gösterge tablosu oluşturur ve bu gösterge tablosu, gösterge tabloları listesinde yer alır.

Harika! Artık günlüklerinizden özel bir metrik oluşturdunuz ve bunu özel bir kontrol panelinde bulunan bir grafiğe dönüştürdünüz. Bu sayede, yanlış ürün kimliklerinin kullanıldığı çağrıların sayısını takip edebiliriz.
8. Uyarı Politikaları
Bu bölümde, oluşturduğumuz özel metriği kullanacak ve eşik için verilerini izleyeceğiz. Örneğin, hata sayısı belirli bir eşiği aşarsa uyarı vereceğiz. Başka bir deyişle, uyarı politikası oluşturacağız.
Uyarı Politikası Oluşturma
Envanter Arama Kontrol Paneli'ne gidelim. Bu işlem, aşağıda gösterildiği gibi envanter arama hatalarını not etmek için oluşturduğumuz grafiği açar:

Bu işlem, mevcut metrik verilerini gösterir. Öncelikle metriği aşağıdaki şekilde düzenleyelim (Düzenle düğmesini tıklayın):

Bu işlem, metrik ayrıntılarını gösterir. Grafiği, hata oranını göstermekten hata sayısını göstermeye dönüştüreceğiz. Değiştirilecek alan aşağıda gösterilmiştir:

Sağ üst köşedeki UYGULA'yı tıkladığınızda Metrikler ekranına geri döneriz. Ancak bu kez, hizalama dönemindeki toplam hata sayısını hata oranıyla karşılaştırarak görebiliriz.
Hata sayısı belirli bir eşiği aşarsa bize bildirim gönderebilecek bir uyarı politikası oluşturacağız. Grafiğin sağ üst köşesindeki 3 noktayı tıklayın ve yukarıda gösterildiği gibi seçenekler listesinden Uyarı grafiğine dönüştür'ü tıklayın.

Aşağıdaki gibi bir ekran görmeniz gerekir:

İleri'yi tıklayın. Bu işlem , ayarlayabileceğimiz bir eşik değerini gösterir. Burada örnek eşik olarak 5 değerini kullandık ancak tercihinize göre farklı bir değer seçebilirsiniz.

Bildirimler formunu açmak için SONRAKİ'yi tıklayın.

Daha önce oluşturduğumuz e-posta kanalı olarak bildirim kanalını seçtik. Belgeleme gibi diğer ayrıntıları da doldurabilirsiniz (bu ayrıntılar, oluşturulan uyarı kapsamında sağlanır). Özeti görmek ve işlemi tamamlamak için SONRAKİ'yi tıklayın.

Bu uyarı politikasını oluşturduktan sonra, aşağıdaki resimde gösterildiği gibi Uyarı Politikaları listesinde görünür. İzleme → Uyarılar'a giderek uyarı politikaları listesine ulaşabilirsiniz. Şimdiye kadar yapılandırdığımız politikaların listesini görmek için sayfada Politikalar bölümünü bulun.

Harika! Artık Envanter API'si aranırken hata oranının artması durumunda sizi bilgilendirecek özel bir uyarı politikası yapılandırdınız.
9. Service Monitoring (isteğe bağlı)
Bu bölümde, Site Güvenirliği Mühendisliği (SRE) ilkelerine göre hizmetlerimiz için SLI/SLO'ları ayarlayacağız. Cloud Monitoring'in, Cloud Run'da dağıttığınız hizmetleri otomatik olarak keşfederek işinizi kolaylaştırdığını ve hata bütçesi hesaplamalarının yanı sıra kullanılabilirlik ve gecikme gibi temel SLI'ları sizin için otomatik olarak hesaplayabildiğini fark edeceksiniz.
API hizmetimiz için gecikme SLO'sunu ayarlayalım.
Envanter hizmeti için gecikme SLO'sunu ayarlama
Cloud Console'daki ana menüden İzleme → Hizmetler'i tıklayın. Bu işlem, Service Monitoring için yapılandırılmış hizmetlerin listesini gösterir.
Şu anda SLI/SLO izleme için ayarlanmış herhangi bir hizmetimiz olmadığından liste boş. Önce bir hizmeti tanımlamak / belirlemek için üstteki HİZMETİ TANIMLAYIN bağlantısını tıklayın.

Bu işlem, SLO izlemeye uygun hizmetleri otomatik olarak keşfeder. Cloud Run hizmetlerini keşfedebilir. Bu nedenle, Cloud Run'a dağıtılan Inventory API hizmetimiz listede görünür.

Gördüğünüz görünen ad farklı olabilir ve hizmeti Cloud Run'a dağıtırken yaptığınız seçime bağlıdır. SUBMIT (Gönder) düğmesini tıklayın. Bu işlem, aşağıdaki ekranı açar:

HİZMET DÜZEYİ HEDEFİ OLUŞTUR'u tıklayabilirsiniz. Bu sayede, sizin için otomatik olarak hesaplanan SLI'ler arasından seçim yapabilirsiniz.

Başlangıç olarak Gecikme SLI'sını seçiyoruz. DEVAM'ı tıklayın. Ardından, bu hizmetin mevcut performansını ve tipik gecikme süresini gösteren bir ekran görürsünüz.

Eşik için 300 ms gibi bir değer gireriz. Bu , ulaşmak istediğimiz değerdir. İsterseniz farklı bir değer seçebilirsiniz ancak bunun, buna göre tanımladığınız hata bütçesini etkileyeceğini unutmayın. DEVAM'ı tıklayın.
Artık SLO'yu (hedef ve ölçüm penceresi) aşağıda gösterildiği gibi ayarlıyoruz:

Bu, ölçüm aralığını ilerleyen türde bir aralık olarak seçtiğimiz ve 7 gün boyunca ölçtüğümüz anlamına gelir. Benzer şekilde, hedef için %90'lık bir hedef seçtik. Burada belirtmek istediğimiz, API hizmetine yapılan isteklerin% 90'ının 300 ms içinde tamamlanması gerektiği ve bunun 7 gün boyunca ölçülmesi gerektiğidir.
Devam'ı tıklayın. Bu işlem, UPDATE SLO (SLO'yu GÜNCELLE) düğmesini tıklayarak onaylayabileceğiniz özet ekranını açar.

Bu işlem, SLO tanımınızı kaydeder ve hata bütçesi sizin için otomatik olarak hesaplanır.

Deneyebileceğiniz birkaç yöntem:
- API'yi birden fazla çağrı üzerinden kullanın ve hizmetin performansını, kalan hata bütçesini nasıl etkilediğini görün.
- Kaynak kodunu, bazı çağrılarda rastgele ek gecikme (uyku) oluşturacak şekilde değiştirin. Bu durum, bir dizi çağrının gecikmesini artırır ve hata bütçesini olumsuz etkiler.
10. Tebrikler
Tebrikler, örnek bir uygulamayı Google Cloud'a başarıyla dağıttınız ve uygulamanın durumunu izlemek için Google Cloud işlem paketini kullanmayı öğrendiniz.
İşlediğimiz konular
- Google Cloud Run'a hizmet dağıtma.
- Google Cloud Run hizmeti için kontrol paneli oluşturma.
- Çalışma denetimleri
- Özel günlük metrikleri ve buna dayalı gösterge tablosu/grafik oluşturma
- Metrik Gezgini'ni keşfetme ve kontrol paneli/grafik oluşturma.
- Uyarı politikaları ayarlama.
- Google Cloud'da hizmet izleme için SLI/SLO ayarlama.
Not: Codelab'i kendi hesabınızı ve Google Cloud projenizi kullanarak çalıştırdıysanız ayrılan kaynaklar için faturalandırma ücreti alınmaya devam edebilir. Bu nedenle, laboratuvarı tamamladıktan sonra projeyi ve kaynakları silin.
Yapabilecekleriniz
Google Cloud Operations Suite hakkında daha fazla bilgi edinmek için bu Cloud Skills Boost görevine göz atın.