Cloud Operations Suite'e giriş

1. Giriş

Son Güncelleme: 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ı.
  • Kontrol panelleri, uyarılar, çalışma süresi denetimleri, SLI/SLO izleme 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.

b35bf95b8bf3d5d8.pnga99b7ace416376c4.pngc20a9642aaa18d11.png

  • 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. Proje silinse bile kimlik bir daha asla kullanılamaz.

  1. 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).

30c26f30d17b3d46.png

Cloud Shell'i daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (kaydırma yapmadan görünen alanın altında) 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:

9c92662c6a846a5c.png

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

9f0e51b578fecce5.png

Bu sanal makine, ihtiyaç duyduğunuz tüm geliştirme araçlarıyla birlikte gelir. 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'si 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, elde bulunan 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 seviyesini 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 seviyelerini 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 isteğ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:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarıyla birlikte gelir. 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 tüm çalışmalarınızı yalnızca bir tarayıcıyla yapabilirsiniz.

gcloud'u ayarlama

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:

  1. Terminalden aşağıdaki komutu kullanarak API'nin Python sürümüne gidin:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. 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
  1. Python sunucusunu yerel olarak başlatmak için aşağıdaki komutu çalıştırabilirsiniz.

26570f586acaeacf.png

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

675d9b3097a6209c.png

8080 numaralı bağlantı noktasında önizle'yi tıklayın.

  1. 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:

ef6afb0184c58870.png

  1. 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 işlemde, kodu Cloud Run'a dağıtma komutunu çalıştırmak için gcloud komut satırı istemcisinden yararlanı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.

  1. Hizmet adı (python-flask-api): Bu varsayılan adı kullanabilir veya my-inventory-api gibi bir ad seçebilirsiniz.
  2. [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
  3. Lütfen bir bölge belirtin: Bir numara vererek istediğiniz bölgeyi seçin.
  4. [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
  5. 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

  1. [my-inventory-api] için kimliği doğrulanmamış çağrılara izin verilsin mi? (E/H) 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:

7516696ea5b3004b.png

Uygulamayı test etme

Uygulamayı Cloud Run'a dağıttığımıza göre, API uygulamasına aşağıdaki şekilde erişebilirsiniz:

  1. Önceki adımdaki hizmet URL'sini not edin. Örneğin, benim kurulumumda https://my-inventory-api-bt2r5243dq-uw.a.run.app olarak gösteriliyor. Buna <SERVICE_URL> diyelim.
  2. Bir tarayıcı açın ve API uç noktaları için aşağıdaki 3 URL'ye erişin:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

Daha ö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. Dilediğimiz zaman Google Cloud Console üzerinden Cloud Run hizmetini 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:

10d2c363241d789c.png

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:

1ec2c9e45ff1a2db.png

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şlayalım.

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 kontrol panellerinin 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 kontrol panellerinin nasıl ayarlanacağını inceleyelim.

İlk olarak, konsolda aşağıdaki şekilde gösterildiği gibi İzleme → Genel Bakış'a gidin:

c51a5dda4ab72bbf.png

Genel Bakış'ta, İzleme'de yapılandırdığınız Kontrol Panelleri, Uyarılar, Çalışma Denetimleri gibi çeşitli öğeler gösterilir.

2758f61f1e7f1dca.png

Şimdilik, yan ana menüden Kontrol panelleri'ni tıklayalım. Bu işlem bizi aşağıdaki ekrana götürür:

c9110b6f065100da.png

ÖRNEK KİTAPLIĞI'nı tıklayın . Bu işlem, Google Cloud'da birden fazla kaynakta kullanılabilen kullanıma hazır (OOTB) kontrol panellerinin listesini gösterir. Listeyi aşağı kaydırıp Google Cloud Run'ı seçin.

ddac4038d4fa91ae.png

Bu işlem, Google Cloud Run için kullanılabilen standart kontrol panellerinin 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 önceden doldurulmuş bir ad içeren bir kontrol paneli ekranı gösterir:

531cb8434b18193a.png

Kontrol paneli adının solunda, sol üstte bulunan sol oku tıklayarak geri gidebilirsiniz. Bu işlem sizi kontrol panelleri listesine yönlendirir. Bu listede, az önce oluşturduğunuz yeni kontrol panelini 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 kontrol panellerinden herhangi birini favori olarak işaretleyebilirsiniz:

fc993d1a17415550.png

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.

2e8f66e2652c55c5.png1e1dffb5239ab110.png

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 olur.

Örnek API hizmeti kodunda, "All Izz Well" dize değerini döndüren bir /healthy uç noktası kullanıma sunulmuştur. Bu nedenle, tek yapmamız gereken 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ımlamaktır.

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, sistemimizin oluşturacağı ve bizim yapılandıracağımız uyarılar olması durumunda bildirim alabilmek için bir e-posta bildirimi kanalı yapılandırıp e-posta adresimizle ilişkilendireceğ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):

9f87859064c63b63.png

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

5ab54f42e6f7b99.png

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

cd89b1ca9e1de87c.png

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 gibi E-posta Yapılandırması ayrıntılarını gösterir:

d6ed98ffd0427fa3.png

E-posta adresinizi ve görünen adınızı aşağıdaki resimde gösterildiği gibi 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.

484541aec65e605e.png

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:

4e2bb9fe022320f7.png

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:

a6011ac2ab3e0f10.png

"İç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.

d9738670efcb999f.png

Bu adımda uyarıya bir ad verin. Ben Inventory API Ç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.

80375bfab97fc313.png

İş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'nin farklı sondalardan erişilebilir olduğunu gösteren tüm yeşil sinyalleri görmeniz gerekir.

df17555ddbee1127.png

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.

Çalışma süresi kontrolü ayarlama bölümümüzü tamamladık. Tebrikler!

6. Metrik Gezgini

Cloud Monitoring, birden fazla Google Cloud ürününden binlerce standart metriği kullanıma sunar. Bu metrikleri inceleyebilir, sorgulayabilir, grafiklere dönüştürebilir, kontrol panellerine ekleyebilir, bunlar hakkında uyarılar oluşturabilir ve daha birçok işlem yapabilirsiniz.

Bu bölümdeki hedefimiz:

  1. Çeşitli metriklere nasıl bakabileceğinizi anlayın. Ardından, API hizmetimiz için belirli bir metriği (gecikme) inceleyeceğiz.
  2. Bu metriği, istediğimiz zaman görselleştirmek için kullanabileceğimiz bir grafiğe ve özel gösterge tablosuna dönüştürün.

Envanter API hizmeti için gecikme metriğini keşfetme

Google Cloud Console'daki ana menüden İzleme → Metrik Gezgini'ne gidin. Bu işlem sizi Metrik Gezgini ekranına yönlendirir. BİR METRİK SEÇİN'i tıklayın. Artık oluşturulan metrikleri içeren etkin kaynaklar arasında gezinebilirsiniz.

Cloud Run hizmetleriyle çalıştığımız için Cloud Run Revision'ı, ardından da aşağıdaki resimde gösterildiği gibi Request Latency (İstek Gecikmesi) başlıklı kategoriyi ve belirli metriği tıklayın:

7609d8156c8f1384.png

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:

46086ac0a8eaf3d7.png

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

ad97f749eeacaa95.png

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:

35d1788d5f0cb3c4.png

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:

c9cdcd63d5823abd.png

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

27354d8310d8a2d7.png

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 inceleyeceğ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 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 ardından Günlüğe dayalı metrikler adlı bir özellik aracılığıyla arayıp metriklere dönüştürebileceğimiz birkaç günlük mesajını simüle edeceğiz.

Günlük Gezgini

Ana Google Cloud Console'da Logging → Logs Explorer'ı (Günlük Gezgini) ziyaret edebilirsiniz.

df05f5b33fd5695a.png

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

e7fa15bcf73f3805.png

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önderildiğini simüle edin. Ö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:

b3ee512a0c9c5c7b.png

Run Query'yi (Sorguyu çalıştır) tıklayın. Bu işlem, gelen tüm istekleri ve bu sorunu içeren istekleri gösterir.

5fdbd7c23bf4694f.png

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 görüşme 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.

fa9a5e04922aa412.png

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

70b5719b472d4d02.png

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

ab9058028185e4d5.png

Ana menüden Günlüğe Kaydetme → 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:

7d186e90559cf8e1.png

Bu girişin sonunda üç dikey nokta bulunur. 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.

7586f0789a0bdb41.png

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.

7ee7403d0639ce25.png

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

9009da45f76eb4c5.png

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

201ed66957cb64f9.png

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 verilerini bir eşik için 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:

3591a1dd91a8b9fd.png

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

5e76fc20d8387984.png

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:

65ccd1eaca607831.png

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.

cc9eec48b9bfbc92.png

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

6202ad1e88679a78.png

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

734f809cc802ab78.png

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

f2d84fb85c2520cb.png

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.

c670b29da70c4655.png

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.

154da627959c54f3.png

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üvenilirliğ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.

Şimdi 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.

42d14515a481213.png

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.

522aaba719f85c54.png

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:

eca08010ab6858a9.png

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

556e49b10d22e5ac.png

Başlangıç olarak Gecikme SLI'yı seçiyoruz. DEVAM'ı tıklayın. Ardından, bu hizmetin mevcut performansını ve tipik gecikmenin ne kadar olduğunu gösteren bir ekran görürsünüz.

a9cc6f6778c13b52.png

Eşik için bir değer (ör.300 ms) 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:

e1fc336d4191c08e.png

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. Hedef için de benzer şekilde %90 hedefi 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.

f2540173d9f4a4b7.png

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

76393df0e189104.png

Deneyebileceğiniz birkaç yöntem:

  1. API'yi birden fazla çağrı aracılığıyla kullanın ve hizmetin performansını, kalan hata bütçesini nasıl etkilediğini görün.
  2. Bazı çağrılarda rastgele ek gecikme (uyku) oluşturmak için kaynak kodu 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 Google Cloud işlem paketini kullanarak uygulamanın durumunu izlemeyi öğrendiniz.

İşlediğimiz konular

  • Hizmeti Google Cloud Run'a dağıtma
  • Google Cloud Run hizmeti için kontrol paneli oluşturma.
  • Çalışma denetimleri
  • Özel günlük metrikleri ve buna dayalı kontrol paneli/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 yürüttüyseniz 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.

Daha fazla bilgi