1. Giriş
Son Güncelleme: 28.07.2023
Google Cloud Operations Suite nedir?
Google Cloud Operations Suite, Google Cloud ortamınızdaki uygulama performansını izleyebileceğiniz, sorunları giderebileceğiniz ve iyileştirebileceğiniz bir platformdur. Cloud Operations Paketi'nin Temel Ayakları; Cloud Monitoring, Cloud Logging ve Cloud Tracing'dir.
Google Cloud Operations'a genel bir bakış için bu videoya göz atın.
Oluşturacaklarınız
Bu codelab'de Google Cloud'a örnek bir API dağıtacaksınız. Ardından, API aracılığıyla Cloud Monitoring'deki birçok özelliği keşfedecek ve yapılandıracaksınız.
Neler öğreneceksiniz?
- Örnek bir uygulamayı Cloud Run'a dağıtmak için Google Cloud Cloud Shell'i kullanma.
- Kontrol panelleri, uyarılar, çalışma süresi kontrolleri, SLI/SLO izleme ve daha fazlası gibi Google Cloud Monitoring özelliklerini kullanma
Gerekenler
- Chrome'un son sürümlerinden biri (74 veya sonraki sürümler)
- Google Cloud hesabı ve Google Cloud projesi
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
Google Hesabınız (Gmail veya Google Apps) yoksa hesap oluşturmanız gerekir. Google Cloud Platform konsolunda ( console.cloud.google.com) oturum açın ve yeni bir proje oluşturun.
- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman bunu güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projeleri genelinde benzersiz olmalıdır ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console otomatik olarak benzersiz bir dize oluşturur. Genellikle bu dizenin ne olduğu sizin için önemli değildir. Çoğu codelab'de proje kimliğine (genellikle PROJECT_ID olarak tanımlanır) referans vermeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele başka bir kimlik oluşturabilirsiniz. Alternatif olarak, kendi anahtarınızı deneyerek kullanılabilir olup olmadığını görebilirsiniz. Bu adımdan sonra değiştirilemez ve proje boyunca geçerli kalır.
- Bazı API'lerin kullandığı üçüncü bir değer (proje numarası) olduğunu belirtmek isteriz. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
Dikkat: Proje kimliği dünya genelinde benzersiz olmalıdır ve siz seçtikten sonra başkaları 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 çalıştırmanın maliyeti, yüksek değildir. Bu eğitimden sonra faturalandırılmamak 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ğerindeki ücretsiz deneme programına uygundur.
Google Cloud Shell Kurulumu
Google Cloud ve Google Cloud Trace, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir olsa da bu kod laboratuvarında 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 sağlanıp bağlantı kurulabilmesi için birkaç dakika beklemeniz gerekir).
Cloud Shell'i daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmında) gösterilir. Bu durumda Devam'ı tıklayın (ve bir daha görmezsiniz). Tek seferlik ekran şöyle görünür:
Cloud Shell'e bağlanmak ve ortam oluşturmak yalnızca birkaç dakikanızı alır.
Bu sanal makinede ihtiyacınız olan tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu kod laboratuvarındaki çalışmanızın tamamı olmasa da büyük bir kısmı yalnızca bir tarayıcı veya Chromebook'unuzla yapılabilir.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize göre ayarlandığını görürsünüz.
Kimliğinizi doğrulamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin PROJECT_ID
olarak 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 aşağıdaki komutu vermeniz yeterlidir:
gcloud config set project <PROJECT_ID>
Cloud Shell, bazı ortam değişkenlerini varsayılan olarak da ayarlar. Bu değişkenler, gelecekte komut çalıştırırken faydalı olabilir.
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. Bu alıştırmada 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 neyle ilgili?
Uygulamamız, envanter öğelerini listelemek ve belirli öğe envanteri sayısını almak için birkaç işlemle REST API Uç Noktası kullanıma sunan basit bir Inventory API uygulamasıdır.
API'yi dağıttıktan ve https://<somehost> adresinde barındırıldığını varsayarak API uç noktalarına aşağıdaki şekilde erişebiliriz:
- https://<somehost>/inventory
Bu işlem, mevcut envanter düzeyleriyle birlikte tüm ürün öğelerini listeler.
- https://<somehost>/inventory/{productid}
Bu işlem, ürün kimliğini ve ilgili ürünün mevcut 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, basitliği sağlamak için arka uçta bir veritabanı tarafından desteklenmez. 3 örnek ürün kimliğini ve mevcut envanter seviyelerini içerir.
Ürün Kimliği | Eldeki Envanter Seviyesi |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Örnek API İsteğ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 olsa da bu kod laboratuvarında bulutta çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
GCP Console'da, sağ üstteki araç çubuğunda yer alan Cloud Shell simgesini tıklayın:
Ortam sağlanıp bağlantı kurulabilmesi için birkaç saniye beklemeniz gerekir. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:
Bu sanal makinede ihtiyaç duyacağınız tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu laboratuvardaki tüm çalışmalarınızı yalnızca bir tarayıcıyla 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 yürütün:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Bu işlem sonucunda bu klasörde cloud-code-sample-repository başlıklı bir klasör oluşturulur.
(İsteğe bağlı) Uygulamayı Cloud Shell'de çalıştırma
Uygulamayı yerel olarak çalıştırmak için aşağıdaki adımları uygulayın:
- 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 sağlayın (Yazma sırasında Cloud Shell'de Python 3.9.x yüklüdür ve varsayılan sürüm kullanılır. Bu programı dizüstü bilgisayarınızda yerel olarak çalıştırmayı planlıyorsanız Python 3.8 veya sonraki bir sürümü 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. Bu sunucuyu Cloud Shell'in web önizleme özelliği aracılığıyla yerel olarak test edebilirsiniz. Aşağıda gösterildiği gibi Web Önizlemesi düğmesini tıklayın:
8080 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 URL'yi, ana makine adından sonra yalnızca /inventory olacak şekilde değiştirin.
Örneğin, makinemde şu şekilde görünür:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Bu işlem, envanter öğelerinin listesini daha önce açıklandığı gibi gösterir:
- Terminal'e gidip Ctrl-C tuşlarına basarak sunucuyu durdurabilirsiniz.
Uygulamayı dağıtma
Şimdi bu API uygulamasını Cloud Run'a dağıtacağız. Bu işlem, kodu Cloud Run'a dağıtma komutunu çalıştırmak için gcloud komut satırı istemcisini kullanmayı içeriyordu.
Terminalde aşağıdaki gcloud komutunu verin:
$ gcloud run deploy --source .
Bu işlem sırasında size birden fazla soru sorulur (Yetki vermeniz istenirse lütfen devam edin). Aşağıda bazı noktalardan bahsedilmektedir. Yapılandırmaya ve Google Cloud projenizde belirli API'leri daha önce etkinleştirip etkinleştirmediğinize bağlı olarak tüm soruları görebilirsiniz veya göremeyebilirsiniz.
- Hizmet adı (python-flask-api): Bu varsayılan adı kullanın veya my-inventory-api gibi bir ad seçin.
- [run.googleapis.com] API'si [proje-numarası] projesinde etkin değil. Etkinleştirip tekrar denemek ister misiniz? (Bu işlem birkaç dakika sürer.) (E/H)? Y
- Lütfen bir bölge belirtin: Numara vererek istediğiniz bölgeyi seçin.
- [project-number] projesinde [artifactregistry.googleapis.com] API'si etkin değil. Etkinleştirip tekrar denemek ister misiniz? (Bu işlem birkaç dakika sürer.) (E/H)? Y
- Kaynaktan dağıtım için, derlenmiş 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 verilecek mi (y/N)? Y
Bu işlem, kaynak kodunuzu alıp container mimarisine alma, Artifact Registry'ye gönderme ve ardından Cloud Run hizmetini ve 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). İşlemin tamamlanmasıyla birlikte Hizmet URL'si gösterilir.
Aşağıda örnek bir çalıştırma 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ımda kullandığınız Hizmet URL'sini not alın. Örneğin, kurulumumda
https://my-inventory-api-bt2r5243dq-uw.a.run.app
olarak gösteriliyor. Buna <SERVICE_URL> adını verelim. - 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ı Alma
API Hizmetimizi sunucusuz bir bilgi işlem ortamı olan Cloud Run'a dağıttık. Cloud Run hizmetini dilediğimiz zaman Google Cloud Console üzerinden ziyaret edebiliriz.
Ana menüden Cloud Run'a gidin. Bu işlem, Cloud Run'da çalıştırdığınız hizmetlerin listesini gösterir. Az önce dağıttığınız hizmeti görürsünüz. Seçtiğiniz ada bağlı olarak aşağıdakine benzer bir sonuç 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österilmektedir:
URL'ye dikkat edin. Bu, tarayıcıya girip yeni dağıttığımız Inventory API'ye erişebileceğiniz hizmet URL'sidir. Metrikler'e ve diğer ayrıntılara göz atabilirsiniz.
Hemen Google Cloud Operations Suite ile başlayalım.
4. Kontrol Paneli Ayarlama
Cloud Monitoring'un sunduğu kullanışlı özelliklerden biri, Google Cloud'daki birden fazla kaynakta Hazır (OOTB) kontrol panelleridir. Bu sayede, gösterge tablolarını standart metriklerle ilk kez ayarlamak hızlı ve kolay bir işlem haline gelir.
Bunu, kısa süre önce Cloud Run'a dağıttığımız API Hizmeti için nasıl yapacağımıza bakalım.
Hizmetimiz için Özel Kontrol Paneli
API hizmetimizi Cloud Run'a dağıttığımızdan, bazılarında hizmet gecikmesi bulunan çeşitli metrikleri görselleştirmeye yardımcı olabilecek kontrol panellerini nasıl ayarlayacağımıza göz atalım.
İlk olarak, konsoldan aşağıda gösterildiği gibi İzleme → Genel Bakış'ı ziyaret edin:
Genel Bakış bölümünde, İzleme'de yapılandıracağınız kontrol panelleri, uyarılar, çalışma süresi kontrolleri gibi birden fazla öğe gösterilir.
Şimdilik, yan taraftaki ana menüden Kontrol panelleri'ni tıklayalım. Bu işlem bizi aşağıdaki ekrana götürür:
ÖRNEK KİTAPLIĞI'nı tıklayın . Bu işlem, Google Cloud'da birden fazla kaynakta kullanılabilen Hazır Kontrol Panelleri'nin listesini görüntüler. Özellikle listeyi 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 gösterge tablolarının listesini görüntüler. Hizmetimizi Cloud Run'da dağıttığımız için bunu tercih ediyoruz.
Cloud Run izleme için bir kontrol paneli görürsünüz. Cloud Run İzleme için kullanılabilen standart grafiklerin (metrikler) listesini görüntülemek üzere ÖNİZLE bağlantısını tıklayın. Tüm bu grafikleri özel bir kontrol paneline aktarmak için ÖRNEK KONTROL PANELİNİ İÇE AKTARAYIN'ı tıklamanız yeterlidir. Bu işlem, aşağıda gösterildiği gibi önceden doldurulmuş bir adla bir gösterge tablosu ekranı gösterir:
Sol üstte, Kontrol Paneli adının solunda bulunan Sol Ok'u tıklayarak geri dönebilirsiniz. Bunu yaptığınızda, yeni oluşturduğunuz yeni Gösterge Tablolarını görebileceğiniz Gösterge Tabloları listesine yönlendirilirsiniz.
Bu kontrol paneli bağlantısını tıklayarak hazır olarak sunulan birden fazla metriği izleyebilirsiniz. Bu metrikler arasında Gecikme, İstek Sayısı, Kapsayıcı metrikleri ve daha fazlası yer alır.
Ayrıca, aşağıda gösterildiği gibi yıldız simgesini seçerek kontrol panelindeki herhangi bir öğeyi 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 gitmenin kolay bir yolunu sunar.
Mükemmel. Cloud Run hizmetlerinizi izlemek için Özel Kontrol Paneli eklediniz. Tebrikler.
5. Çalışma denetimleri
Bu bölümde, dağıttığımız API hizmetimiz için bir çalışma süresi kontrolü ayarlayacağız. Herkese açık bir çalışma süresi kontrolü, kaynağın yanıt verip vermediğini görmek için dünya genelindeki 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 Hizmeti'nin hizmetin durumunu belirtmek için gösterdiği belirli bir uç nokta olacaktır.
Örnek API hizmet kodunda, "All Izz Well" dize değerini döndüren /healthy uç noktasını kullanıma sunduk. Dolayısıyla tek yapmamız gereken https://<SERVICE_URL>/healthy gibi bir sonuç veren bir çalışma denetimi tanımlamak ve "All Izz Well" dizesinin döndürülüp döndürülmediğini kontrol etmektir.
Bildirim kanalı oluşturma
Çalışma denetimini oluşturmadan önce bildirim kanallarını yapılandırmak önemlidir. Bildirim kanalı, izlenen kaynaklardan herhangi birinde bir olay/sorun olduğunda uyarı alacağınız bir kanaldır. Bildirim kanalına örnek olarak E-posta verilebilir. Uyarı vb. olduğunda e-posta alırsınız.
Şimdilik bir e-posta bildirim kanalı yapılandıracağız ve bunu e-posta adresimizle yapılandıracağız. Böylece, sistemimizin oluşturacağı ve yapılandıracağımız uyarılar olduğunda bildirim alabiliriz.
Bildirim kanalı oluşturmak için aşağıdaki adımları uygulayın:
Google Cloud Console'daki ana menüden aşağıdaki gibi İzleme → Uyarı'ya gidin:
Bu işlemle, Uyarılar, Politikalar ve daha fazlasının yer aldığı bir sayfa görüntülenir. Şu anda üstte BİLDİRİM KANALLARINI DÜZENLE başlıklı bir bağlantı görürsünüz. Bu öğeyi tıklayın.
Bunu yaptığınızda, aşağıda gösterildiği gibi çeşitli Bildirim Kanalları'nın bir listesi görüntülenir:
E-posta bölümünü bulun ve ilgili satır için YENİ EKLE'yi tıklayın. Bu işlem, aşağıda gösterildiği gibi E-posta Yapılandırması ayrıntılarını getirir:
Aşağıda gösterildiği gibi e-posta adresinizi ve görünen adınızı girin. KAYDET'i tıklayın.
Bu işlemle E-posta Bildirimi Kanalı oluşturulmuş olur. Ş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. Üst tarafta ÇALIŞMA KONTROLÜ OLUŞTUR bağlantısını görürsünüz. Bu öğeyi tıklayın.
Bu işlem, çalışma süresi denetimini yapılandırmak için tamamlamanız gereken bir dizi adım gösterir.
İlk adım, hedef ayrıntılarını (ör. dağıttığımız Cloud Run hizmetiyle ilgili bilgiler) ayarlamaktır. Doldurulmuş bir formu aşağıda görebilirsiniz:
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 sahip olduğunuz belirli adı seçin.
- Yol /healthy şeklindedir. Çünkü "All Izz Well" dizesini geri döndürüyoruz ve bunu kontrol etmek istiyoruz.
Sonraki adıma geçmek için DEVAM'ı tıklayın. Sonraki adım, aşağıdaki gibi gösterilen Yanıt Doğrulaması adımıdır:
"İçerik Eşleşmesi" kontrolünü etkinleştirdiğimizi ve ardından /healthy uç noktasının döndüreceği yanıtın "All Izz Well" olacağını ayarladığımızı görebilirsiniz. DEVAM'ı tıklayarak uyarıyı ve çalışma süresi kontrolü başarısız olursa hangi bildirim kanalında uyarı alacağımızı yapılandıracağımız bir sonraki adıma geçin.
Bu adımda Uyarıya bir ad verin. Inventory API Uptime Check failure (Envanter API Uptime Check failure) olarak seçtim ancak istediğiniz adı 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 Uptime kontrolünü incelemek için son adımda İNCELE'yi tıklayın.
Bu son adımda, çalışma denetimine bir ad verin (ör.Inventory API Uptime Check). Ardından, denetimin doğru şekilde yapılandırılıp yapılandırılmadığını da test edebilirsiniz. Bunun için TEST düğmesini tıklayın.
İşlemi tamamlayın (soldaki OLUŞTUR düğmesini tıklayın). Google Cloud, farklı bölgelerde yapılandırılan çalışma denetimi kontrollerine URL'yi pinglemelerini söyler. Bu yanıtlar toplanır. Birkaç dakika sonra İzleme → Çalışma denetimleri bölümünü ziyaret edin. İdeal olarak, URL'ye farklı kontrollerden erişilebildiğini belirten tüm yeşil sinyalleri görmeniz gerekir.
Kontrollerden herhangi biri bir süre (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.
Çalışma süresi denetimi oluşturma ile ilgili bölümümüz sona erdi. Tebrikler.
6. Metrik Gezgini
Cloud Monitoring, birden fazla Google Cloud ürününden binlerce standart metrik sunar. Bu metrikleri inceleme, sorgulama, Grafiklere dönüştürme, Gösterge Tablolarına ekleme, Uyarıları etkinleştirme ve daha pek çok işlem için kullanabilirsiniz.
Bu bölümdeki hedefimiz:
- Çeşitli metriklere nasıl bakabileceğinizi anladıktan sonra API hizmetimiz için belirli bir metriği (gecikme) inceleyeceğiz.
- Bu metriği, metriği dilediğimiz zaman görselleştirmek için kullanabileceğimiz bir grafiğe ve özel gösterge tablosuna dönüştürebiliriz.
Inventory API Hizmeti için Gecikme Metriklerini Keşfetme
Google Cloud Console'daki ana menüden İzleme → Metrik Gezgini'ne gidin. Bu işlem sizi Metrik Gezgini ekranına yönlendirir. ÖLÇÜM SEÇİN'i tıklayın. Artık metrik oluşturulan çeşitli etkin kaynaklara gidebilirsiniz.
Cloud Run hizmetlerini ele aldığımız için Cloud Run Revision seçeneğini ve ardından aşağıda gösterildiği gibi kategoriyi ve Request Latency (İstek Gecikmesi) başlıklı belirli metriği tıklayın:
Uygula'yı tıklayın. Bu, bir grafikte İstek Gecikmesini gösterir. Widget türünü, sağdaki görüntüleme ayarlarından aşağıdaki gibi çizgi grafik olarak değiştirebilirsiniz:
Bu işlem, Gecikme Grafiği'ni aşağıda gösterildiği gibi gösterir:
Grafik ve özel Gösterge Tablosu oluşturun
Bu grafiği kaydedelim. Grafiği Kaydet'i tıklayın ve aşağıda gösterilen 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 gibi kontrol paneli listemize ekler:
Ayrıntıları görüntülemek için oluşturduğumuz kontrol panelini tıklayın.
Böylece, Metrik Gezgini yoluyla çeşitli metrikleri inceleme ve özel kontrol panellerimizi nasıl oluşturabileceğimizle ilgili bölümü tamamladık.
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 ayrıntılı inceleme yapmanıza yardımcı olan bir Günlük Gezgini arayüzü içerir.
Bu bölümde, Günlük Gezgini hakkında bilgi edinecek ve Günlük tabanlı metrikler adlı bir özellik aracılığıyla aradığımız ve metriğe dönüştürdüğümüz birkaç günlük mesajını simüle edeceğiz.
Günlük Gezgini
Günlük Gezgini'ni, ana Google Cloud Console'da Günlük Kaydı → Günlük Gezgini'ni ziyaret ederek aşağıdaki gibi ziyaret edebilirsiniz:
Bu işlem, günlük mesajlarını gerektiği gibi filtrelemek için günlük düzeylerinin yanı sıra çeşitli Kaynakları (Proje, Google Cloud kaynağı, hizmet adları vb.) özel olarak seçebileceğiniz/seçmeyi kaldırabileceğiniz bir günlük arayüzü görüntüler.
Yukarıda, dağıttığımız Cloud Run Düzeltmesi (yani Cloud Run hizmetleri) günlüklerinin listesi gösterilmektedir. Yapılandırdığımız /healthy uç noktasına gelen çeşitli çalışma süresi kontrolleri görürsünüz.
Uyarı ara
I-1, I-2 ve I-3 arasından olmayan ürün kimlikleri sağlayarak envanter hizmetine birkaç geçersiz istek gönderin. Örneğin, yanlış istek:
https://<SERVICE_URL>/inventory/I-999
Artık Sorgu'da yanlış bir Ürün Kimliği sağlandığında API'miz tarafından oluşturulan tüm UYARI'ları arayacağız.
Sorgu kutusuna aşağıdaki sorgu parametrelerini ekleyin:
resource.type="cloud_run_revision"
textPayload =~ "Yanlış ürün kimliği için envanter isteği alındı"
Şuna benzer bir görünümde olacaktır:
Run Query'yi (Sorgu Çalıştır) tıklayın. Bu işlem, gelen ve bu sorunun olduğu tüm istekleri gösterir.
Günlük Tabanlı Metrikler
Bu hataları izlemek için bir özel günlük metriği oluşturalım. Yanlış ürün kimlikleriyle yapılan çok sayıda arama olup olmadığını öğrenmek isteriz.
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ını oluşturmak için formu açar. Sayaç metriği seçin ve Metrik Adı (inventory_lookup_errors) ile Açıklama ayrıntılarını aşağıda gösterildiği gibi girin ve Metrik Oluştur'u tıklayın.
Bu işlemle sayaç metriği oluşturulur ve aşağıda gösterilen mesajı görürsünüz:
Ana menüden Günlük kaydı → Günlüğe dayalı metrikler'i ziyaret edin. Kullanıcı tanımlı metrikler listesinde, tanımladığımız özel metriği aşağıda gösterildiği gibi görürsünüz:
Bu girişin sonunda, üç dikey nokta bulunur. Bu özel metrik üzerinde gerçekleştirebileceğiniz işlemleri görmek için bunları tıklayın. Liste, aşağıda gördüğünüze benzer olmalıdır. Metrik Gezgini'nde görüntüle seçeneğini tıklayın.
Bu, bizi bir önceki bölümde öğrendiğimiz Metrik Gezgini'ne yönlendirecektir. Ancak bu metrik artık 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 kontrol paneli oluşturur ve bu kontrol paneli, kontrol panelleri listesinde gösterilir.
Mükemmel. 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, yanlış ürün kimlikleri kullanan aramaların sayısını izlememize yardımcı olur.
8. Uyarı Politikaları
Bu bölümde, oluşturduğumuz özel metriği kullanıp verilerini bir eşik için izleyeceğiz. Yani hata sayısı belirli bir eşiği aşarsa uyarı alacağız. Başka bir deyişle, bir uyarı politikası oluşturacağız.
Uyarı Politikası oluşturma
Envanter arama kontrol paneline gidelim. Bu işlem, envanter arama hatalarını not etmek için oluşturduğumuz grafiği aşağıda gösterildiği gibi gösterir:
Bu işlem, mevcut metrik verilerini gösterir. Önce metriği aşağıda gösterildiği gibi 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österen bir grafikten toplama (ör. hata sayısı) gösteren bir grafik haline getireceğiz. Değiştirilecek alan aşağıda gösterilmiştir:
Sağ üst köşedeki UYGULA'yı tıkladığınızda Metrikler ekranımıza döneceğiz, ancak bu kez hizalama dönemindeki toplam hata sayısını hata oranıyla birlikte görebileceğiz.
Hata sayısının belirli bir eşiği aşması durumunda bizi bilgilendirebilecek 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ğıda gösterilen ekranı görürsünüz:
İleri'yi tıkladığınızda ayarlayabileceğimiz bir Eşik değeri görüntülenir. Burada benimsediğimiz örnek eşiği 5'tir , ancak tercihinize göre 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. Belgeler gibi diğer ayrıntıları da doldurabilirsiniz (bu bilgiler, oluşturulan Uyarının bir parçası olarak sağlanır). Özeti görmek ve işlemi tamamlamak için İLERİ'yi tıklayın.
Bu Uyarı Politikası'nı oluşturduktan sonra, aşağıdaki gibi Uyarı Politikaları listesinde görünür. Uyarı Politikaları listesine İzleme → Uyarılar'a giderek ulaşabilirsiniz. Sayfada, bugüne kadar yapılandırdığımız politikaların listesini görmek için Politikalar bölümünü arayın.
Harika! Artık Inventory API'yi ararken hata oranının artması durumunda sizi bilgilendirecek özel bir Uyarı Politikası yapılandırdınız.
9. Hizmet İzleme (İsteğe bağlı)
Bu bölümde, hizmetlerimiz için Site Güvenilirlik Mühendisliği (SRE) ilkelerine göre SLI/SLO'lar oluşturacağız. Cloud Monitoring'in, Cloud Run'da dağıttığınız hizmetleri otomatik olarak keşfederek sizin için işleri kolaylaştırdığını ve Hata Bütçesi hesaplamalarının yanı sıra Kullanılabilirlik, Gecikme gibi önemli SLI'ları sizin için otomatik olarak hesaplayabildiğini göreceksiniz.
API hizmetimiz için gecikme süresi hizmet düzeyi hedefini ayarlayalım.
Envanter Hizmeti için Gecikme Hizmet Seviyesi Hedefi 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 İzleme için ayarlanmış hizmetimiz olmadığından liste boştur. Öncelikle bir hizmeti tanımlamak / tanımlamak için en üstteki HİZMETİ TANIMLA bağlantısını tıklayın.
Bu işlem, SLO İzleme için aday olan 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 seçtiğiniz ada bağlıdır. GÖNDER düğmesini tıklayın. Aşağıda gösterilen ekran açılır:
SLO OLUŞTUR'u tıklayabilirsiniz. Bu sayede, sizin için otomatik olarak hesaplanan SLI'lerden seçim yapabilirsiniz.
Başlangıç olarak Gecikme SLI'sini seçiyoruz. DEVAM'ı tıklayın. Ardından, bu hizmetin mevcut performansını ve tipik gecikmeyi gösteren bir ekran görürsünüz.
Eşik için bir değer (ör.300 ms) giriyoruz. Bu , ulaşmak istediğimiz değerdir. İsterseniz farklı bir değer seçebilirsiniz ancak bu değerin, tanımladığınız hata bütçesini de buna göre etkileyeceğini unutmayın. DEVAM'ı tıklayın.
Ardından SLO'yu (hedef ve ölçüm penceresi) aşağıda gösterildiği gibi ayarlarız:
Bu, Ölçüm aralığını Periyodik zaman aralığı olarak seçtiğimiz ve 7 gün boyunca ölçtüğümüz anlamına geliyor. Benzer şekilde, hedef için %90'lık bir hedef seçtik. Burada, API hizmetine yapılan isteklerin% 90'ının 300 ms içinde tamamlanması ve bunun 7 gün boyunca ölçülmesi gerektiğidir.
Devam'ı tıklayın. Bunun sonucunda özet ekranı açılır. Bu ekranı SLONU GÜNCELLE düğmesini tıklayarak onaylayabilirsiniz.
Bu işlem, SLO tanımınızı kaydeder ve Hata Bütçesi sizin için otomatik olarak hesaplanır.
Deneyebileceğiniz birkaç şey:
- API'yi birden fazla çağrıyla çalıştırın ve hizmetin performansını ve kalan Hata Bütçesini nasıl etkilediğini görün.
- Bazı çağrılara rastgele ek gecikme (uyku) eklemek için kaynak kodu değiştirin. Bu, bazı aramaların gecikmesini artıracak ve hata bütçesini olumsuz yönde etkileyecektir.
10. Tebrikler
Tebrikler, Google Cloud'a örnek bir uygulamayı başarıyla dağıttınız ve uygulamanın durumunu izlemek için Google Cloud Operations Suite'i kullanmayı öğrendiniz.
Ele aldığımız konular
- Bir hizmeti Google Cloud Run'a dağıtma.
- Google Cloud Run Hizmeti için kontrol paneli kurulumu yapma.
- Çalışma denetimleri.
- Özel günlük metriklerini ve buna dayalı gösterge tablosunu/grafiği ayarlama.
- Metrik Gezgini'ni keşfetme ve kontrol paneli/grafik oluşturma.
- Uyarı Politikaları oluşturma.
- Google Cloud'da hizmet izleme için SLI/SLO kurulumu
Not: Kod laboratuvarını 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.
Sırada ne var?
Google Cloud Operations Suite hakkında daha fazla bilgi edinmek için bu Cloud Öğrenim Merkezi görevine göz atın.