1. Giriş

Eventarc, Google Cloud hizmetlerini çeşitli kaynaklardaki etkinliklere bağlamayı kolaylaştırır. Mikro hizmetlerin serbest bağlantılı olduğu ve dağıtıldığı etkinlik odaklı mimariler oluşturmanıza olanak tanır. Ayrıca, etkinlik alımı, teslimatı, güvenliği, yetkilendirme ve hata işleme gibi işlemleri sizin için gerçekleştirerek geliştiricilerin çevikliğini ve uygulamaların esnekliğini artırır.
Datadog, bulut uygulamaları için bir izleme ve güvenlik platformudur. Uygulamalarınızın, altyapınızın ve üçüncü taraf hizmetlerinizin gözlemlenebilir olması için uçtan uca izleri, metrikleri ve günlükleri bir araya getirir.
Bu ilk codelab'de, Eventarc ile basit bir Datadog izleme uyarısını Google Cloud'a nasıl yönlendireceğinizi öğreneceksiniz.
Neler öğreneceksiniz?
- Datadog sağlayıcısını keşfetme
- Datadog sağlayıcısına kanal oluşturma
- Etkinlikleri günlüğe kaydetmek için iş akışı oluşturma.
- Kanal ile Eventarc tetikleyicisi oluşturma
- Datadog izleme işlemi oluşturma
- Datadog monitörünü, Eventarc tetikleyicisini ve iş akışını test etme
2. Kurulum ve Gereksinimler
Yönlendirmesiz ortam kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- 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 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_IDolarak 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.
- 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.
Cloud Shell'i başlatma
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.
Google Cloud 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 codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Herhangi bir şey yüklemeniz gerekmez.
gcloud'u ayarlama
Cloud Shell'de proje kimliğinizi ayarlayın ve PROJECT_ID değişkeni olarak kaydedin.
Ayrıca, REGION değişkenini us-central1 olarak ayarlayın. Bu, daha sonra kaynak oluşturacağınız bölgedir.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
API'leri etkinleştir
Gerekli tüm hizmetleri etkinleştirin:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Datadog sağlayıcıyı keşfetme
Eventarc sağlayıcı, doğrudan Google Cloud'a etkinlik yayınlayabilen ve ardından projenize yönlendirilen bir hizmet veya varlıktır. Datadog gibi üçüncü taraf sağlayıcılar, Eventarc aracılığıyla Google Cloud ile entegre olan Google Cloud dışı sağlayıcılardır.
Google Cloud ve üçüncü taraf sağlayıcıların listesini görmek için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud eventarc providers list
Bu listede Google Cloud ve üçüncü taraf sağlayıcılar ile hizmet verdikleri konumlar yer alır:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Listeyi şu komutla üçüncü taraf sağlayıcılarla sınırlandırabilirsiniz:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Listede Datadog'u görmelisiniz:
NAME: datadog LOCATION: us-central1
Desteklediği etkinlikleri görmek için Datadog sağlayıcısını da açıklayabilirsiniz:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Kanal oluşturma
Projenizi bir sağlayıcıyla entegre etmek için kanal oluşturmanız gerekir. Bu işlem, kanal oluşturmayı, kanal ayrıntılarını almayı ve bu ayrıntıları sağlayıcıya göndermeyi içerir. Sağlayıcı, kanalla bağlantıyı başlattıktan sonra projenize etkinlik göndermeye başlayabilir.
Kanal oluşturma
gcloud kullanarak Datadog sağlayıcısı için kanal oluşturabilirsiniz:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Ayrıca, Google Cloud Console'daki Eventarc sayfasının Kanallar bölümünden de oluşturabilirsiniz:

Kanal ayrıntılarını alma
Kanal oluşturulduktan sonra kanalın ayrıntılarını gcloud bölümünden alın:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Çıkış şu şekilde görünmelidir:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Benzer şekilde, Google Cloud Console'dan kanalı görebilirsiniz:

Kanal durumu, kanalın durumunu gösterir. Aşağıdakilerden biri olabilir:
PENDING: Kanal başarıyla oluşturuldu ve sağlayıcıyla bağlantı oluşturmak için etkinleştirme jetonu mevcut. Kanalın durumunuPENDING'danACTIVE'ya değiştirmek için jetonun sağlayıcıya verilmesi ve kanal oluşturulduktan sonraki 24 saat içinde kanalı bağlamak için kullanılması gerekir.ACTIVE: Kanal, sağlayıcıya başarıyla bağlandı.ACTIVEkanalı, sağlayıcıdan gelen etkinlikleri almaya ve yönlendirmeye hazırdır.INACTIVE—Kanal etkinlik alamaz ve yeniden etkinleştirilemez. Sağlayıcının bu kanalla bağlantısı kesilmiş veya kanal etkinleştirme jetonunun süresi dolmuş ve sağlayıcı bağlanmamış. Bir sağlayıcıyla bağlantıyı yeniden kurmak için sağlayıcıya ait yeni bir kanal oluşturmanız gerekir.
Etkinleştirme jetonu, tek kullanımlık ve zaman sınırlamalı bir jetondur. Sağlayıcı ile abonenin projesi arasında bağlantı oluşturmak için kullanılır. Jetonu yalnızca kanal oluşturma işlemi sırasında seçilen belirli bir sağlayıcı kullanabilir. Jeton, kanal oluşturulduktan sonraki 24 saat boyunca geçerlidir. 24 saat sonra kanal INACTIVE olur.
Kanal ayrıntılarını sağlayıcıya gönderme
Aşağıdaki kanal bilgilerini Datadog sağlayıcısına göndermeniz gerekir:
- Kanal adı (ör.
projects/project-id/locations/us-central1/channels/datadog-channel) - Etkinleştirme jetonu (ör.
so5g4Kdasda7y2MSasdaGn8njB2)
Datadog'da oturum açın, entegrasyonlar sayfasına gidin ve Google Eventarc entegrasyonunun yüklendiğinden emin olun:

Google Eventarc'ın yapılandırma bölümünde tam kanal adını ve etkinleştirme jetonunu girin:

Artık kanalı kanal listesinde görmeniz gerekir. Birkaç saniye sonra kanalın Google Cloud Console'da etkinleştiğini de görürsünüz:

Artık kanalı kullanmaya hazırsınız.
5. İş akışı oluşturma
Sağlayıcıdan etkinlik almak için Google Cloud'da bir hedefiniz olmalıdır. Eventarc, Cloud Run, Workflows ve Kubernetes hizmetleri gibi çeşitli etkinlik hedeflerini destekler. Bu durumda, alınan etkinlikleri basitçe günlüğe kaydetmek için bir iş akışı dağıtın.
Aşağıdaki içeriklerle bir workflow-datadog1.yaml dosyası oluşturun:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
İş akışının parametre olarak bir etkinlik aldığını unutmayın. Bu etkinlik, Eventarc aracılığıyla Datadog izlemeden gelir. Etkinlik alındıktan sonra iş akışı, alınan etkinliği günlüğe kaydeder.
İş akışını dağıtın:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
İş akışı dağıtıldı ancak henüz çalışmıyor. Bir Datadog uyarısı alındığında Eventarc tetikleyicisi tarafından yürütülür.
6. Eventarc tetikleyicisi oluşturma
Artık Datadog sağlayıcısından gelen etkinlikleri Eventarc tetikleyicisiyle İş Akışları'na bağlamaya hazırsınız.
Hizmet hesabını yapılandırma
Tetikleyici oluştururken eventarc.eventReceiver rolüne sahip bir hizmet hesabına ihtiyacınız vardır. İster özel bir hizmet hesabı oluşturabilir, isterseniz de varsayılan Compute hizmet hesabını kullanabilirsiniz.
Kolaylık sağlaması için varsayılan Compute hizmet hesabını kullanın ve eventarc.eventReceiver rolünü verin:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role roles/eventarc.eventReceiver
Tetikleyici oluşturma
Datadog kanalı, etkinlik türü ve iş akışı hedefiyle tetikleyici oluşturun:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
Yeni oluşturulan tetikleyicinin etkin olduğunu görmek için tetikleyicileri listeleyebilirsiniz:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Datadog izleme işlemi oluşturma
Şimdi bir Datadog monitörü oluşturup Eventarc'a bağlayacaksınız.
Varsayılan değerlere sahip bir "Merhaba Dünya" türü monitör olacaktır. İzleme uyarılarını oluşturmak için bu işlevi manuel olarak tetiklersiniz. Bu uyarılar da Google Cloud'da bir Eventarc etkinliği oluşturur.
Datadog'da bir izleme oluşturmak için Datadog'da oturum açın. Ana menüde Monitors simgesinin üzerine gelip alt menüde New Monitor simgesini tıklayın. Birçok monitör türü vardır. MetricMonitör türünü seçin.
New Monitor sayfasında, 1. ve 2. adımın varsayılan değerlerini değiştirmeyin.
- 3. adımda
Alert thresholddeğerini 1 olarak ayarlayın. - 4. adımda, monitör adını
Test monitor for Eventarcolarak ayarlayın veNotify your teamdeğerini@eventarc_<your-project-id>_<your-region>_<your-channel-name>olarak belirleyin.
Monitörü test edeceğiniz bir sonraki adım için monitör sayfasını açık tutun.
8. Test monitörü ve tetikleyici
Datadog monitörünü ve Eventarc tetikleyicisini test etmek için monitörü manuel olarak tetikleyeceksiniz.
İzleme oluşturma sayfasının alt kısmında Test Notifications düğmesini tıklayın:

Ardından, Run Test düğmesini tıklayın:

Bu işlem, monitördeki durum geçişini simüle etmeli ve bir Eventarc etkinliğini tetiklemelidir.
workflow-datadog1 iş akışını kontrol edin. Yeni bir yürütme olduğunu görmeniz gerekir:

Yürütme ayrıntılarını kontrol edin. İş akışının girişinde ve günlüklerde, izleme uyarısından oluşturulan Datadog etkinlik türünü datadog.v1.alert görmeniz gerekir:

9. Tebrikler
Tebrikler, codelab'i tamamladınız. İş akışlarıyla Datadog izleme uyarılarına nasıl yanıt vereceğinizi öğrenmek için ikinci codelab'e geçebilirsiniz.
İşlediğimiz konular
- Datadog sağlayıcısını keşfetme
- Datadog sağlayıcısına kanal oluşturma
- Etkinlikleri günlüğe kaydetmek için iş akışı oluşturma.
- Kanal ile Eventarc tetikleyicisi oluşturma
- Datadog izleme işlemi oluşturma
- Datadog monitörünü, Eventarc tetikleyicisini ve iş akışını test etme