1. Giriş
Eventarc, Google Cloud hizmetlerini çeşitli kaynaklardan gelen etkinliklere bağlamayı kolaylaştırır. Mikro hizmetlerin serbest bağlantılı olduğu ve dağıtıldığı etkinlik odaklı mimariler derlemenize olanak tanır. Ayrıca sizin için etkinlik kullanımı, teslim, güvenlik, yetkilendirme ve hata gidermeyle de ilgilenir. Bu da geliştiricilerin çevikliğini ve uygulama esnekliğini artırır.
Datadog, bulut uygulamalarına yönelik bir izleme ve güvenlik platformudur. Uygulamalarınızı, altyapınızı ve üçüncü taraf hizmetlerinizi gözlemlenebilir hale getirmek için uçtan uca izleri, metrikleri ve günlükleri bir araya getirir.
Bu ilk codelab'de, Eventarc'ı kullanarak basit bir Datadog izleme uyarısını Google Cloud'a nasıl yönlendireceğinizi öğreneceksiniz.
Neler öğreneceksiniz?
- Datadog sağlayıcısı nasıl bulunur?
- Datadog sağlayıcısı için kanal oluşturma
- Etkinlikleri günlüğe kaydetmek için iş akışı oluşturma.
- Kanalla nasıl Eventarc tetikleyicisi oluşturulur?
- Datadog monitörü oluşturma
- Datadog izleyiciyi, Eventarc tetikleyicisini ve iş akışını test etme.
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google Cloud Console'da oturum açıp 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. İstediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersiz olmalıdır ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğini (genellikle
PROJECT_ID
olarak tanımlanır) referans almanız gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır. - Bilginiz için bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Sonraki adımda, 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ğitim dışında faturalandırma yapılmaması için kaynakları kapatmak isterseniz oluşturduğunuz kaynakları silebilir veya projenin tamamını silebilirsiniz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Cloud Shell'i başlatma
Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de 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 bulunan Cloud Shell simgesini tıklayın:
Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:
İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınız tarayıcıda yapılabilir. Herhangi bir şey yüklemeniz gerekmez.
gcloud'u kurun
Cloud Shell'de proje kimliğinizi ayarlayın ve PROJECT_ID
değişkeni olarak kaydedin.
Ayrıca, us-central1
olarak bir REGION
değişkeni ayarlayın. Bu, daha sonra kaynak oluşturacağınız yerdir.
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ısını keşfedin
Eventarc sağlayıcısı, doğrudan Google Cloud'a etkinlik yayınlayabilen ve daha sonra projenize yönlendirilen bir hizmet veya varlıktır. Datadog gibi üçüncü taraf sağlayıcılar, Eventarc üzerinden Google Cloud ile entegre edilmiş Google Cloud harici 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 bunların sunulduğu konumlar listelenir:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Şu komutla listeyi üçüncü taraf sağlayıcıları içerecek şekilde daraltabilirsiniz:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Listede Datadog gösterilir:
NAME: datadog LOCATION: us-central1
Ayrıca, desteklediği etkinlikleri görmek için Datadog sağlayıcısını 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şturun
Projenizi bir sağlayıcıyla entegre etmek için bir kanal oluşturmalısınız. Buna kanal oluşturmak, kanal ayrıntılarını almak ve bu ayrıntıları sağlayıcıya göndermek dahildir. 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 bir kanal oluşturabilirsiniz:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Google Cloud Console'daki Eventarc sayfasının Kanallar bölümünden de kanal oluşturabilirsiniz:
Kanal ayrıntılarını alma
Kanal oluşturulduktan sonra gcloud
kaynağından kanalın ayrıntılarını alın:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Şuna benzer bir çıkış alırsınız:
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, kanalı Google Cloud Console'da görebilirsiniz:
Kanal durumu, kanalın durumunu gösterir. Şunlardan biri olabilir:
PENDING
: Kanal başarıyla oluşturuldu ve sağlayıcıyla bağlantı oluşturmak için kullanılabilen bir etkinleştirme jetonu var. KanalınPENDING
olan durumunuACTIVE
olarak değiştirmek için jetonun sağlayıcıya verilmesi ve kanalın oluşturulmasından sonraki 24 saat içinde kanalı bağlamak için kullanılması gerekir.ACTIVE
: Kanal, sağlayıcıya başarıyla bağlandı.ACTIVE
kanalı, sağlayıcıdan etkinlikleri almaya ve yönlendirmeye hazır.INACTIVE
: Kanal etkinlik alamaz veya yeniden etkinleştirilemez. Sağlayıcının bu kanalla bağlantısı kesildi veya kanal etkinleştirme jetonunun süresi doldu ve sağlayıcı bağlı değil. Bir sağlayıcıyla yeniden bağlantı kurmak için sağlayıcı için yeni bir kanal oluşturmanız gerekir.
Etkinleştirme jetonu, bir sağlayıcı ile abonenin projesi arasında bağlantı oluşturmak için kullanılan tek kullanımlık ve zaman kısıtlamalı bir jetondur. 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
Datadog sağlayıcısına aşağıdaki kanal ayrıntılarını göndermeniz gerekiyor:
- Kanal adı (ör.
projects/project-id/locations/us-central1/channels/datadog-channel
) - Etkinleştirme jetonu (ör.
so5g4Kdasda7y2MSasdaGn8njB2
)
Datadog'a giriş yapın, entegrasyonlar sayfasına gidin ve Google Eventarc entegrasyonunun yüklü olduğundan emin olun:
Google Eventarc'ın yapılandırma bölümünde tam kanal adını ve etkinleştirme jetonunu girin:
Kanalı kanallar listesinde görürsünüz. Birkaç saniye sonra kanalın Google Cloud Console'da da etkin hale geldiğini 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 hedefe ihtiyacınız vardır. Eventarc; Cloud Run, İş akışları ve Kubernetes hizmetleri gibi çeşitli etkinlik hedeflerini destekler. Bu durumda, alınan etkinlikleri günlüğe kaydetmek için bir iş akışı dağıtın.
Aşağıdaki içeriklere sahip 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 üzerinden Datadog izlemesinden gelecektir. 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ıştırılmıyor. Datadog uyarısı alındığında bir Eventarc tetikleyicisi tarafından yürütülür.
6. Eventarc tetikleyicisi oluşturma
Artık bir Eventarc tetikleyicisi kullanarak Datadog sağlayıcısındaki etkinlikleri Workflows'a bağlamaya hazırsınız.
Hizmet hesabını yapılandırın
Tetikleyici oluştururken eventarc.eventReceiver
rolüne sahip bir hizmet hesabı gerekir. Özel bir hizmet hesabı oluşturabilir veya 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 bir 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 izleyicisi oluşturma
Şimdi bir Datadog monitörü oluşturup bunu Eventarc'a bağlayacaksınız.
Bu, varsayılan değerlere sahip bir Hello World türü izleyici olacaktır. İzleme uyarılarını oluşturmak için manuel olarak tetiklemeniz gerekir. Bu da Google Cloud'da bir Eventarc etkinliği oluşturur.
Datadog'da monitör oluşturmak için Datadog'a giriş yapın. Ana menüde Monitors
simgesinin üzerine gelin ve alt menüde New Monitor
öğesini tıklayın. Birçok monitör türü vardır. Metric
monitör türünü seçin.
New Monitor
sayfasında, 1. ve 2. adımlar için varsayılan değerleri bırakın.
- 3. adımda
Alert threshold
değerini 1 olarak ayarlayın. - 4. adımda, monitör adı olarak
Test monitor for Eventarc
veNotify your team
değerini@eventarc_<your-project-id>_<your-region>_<your-channel-name>
olarak ayarlayın.
Monitörü test edeceğiniz bir sonraki adım için izleme sayfasını açık tutun.
8. İzleyiciyi ve tetikleyiciyi test etme
Datadog izleyicisini ve Eventarc tetikleyicisini test etmek için monitörü manuel olarak tetiklersiniz.
Monitör oluşturma sayfasının alt tarafındaki Test Notifications
düğmesini tıklayın:
Ardından Run Test
düğmesini tıklayın:
Bu komut, 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 işlemi olduğunu göreceksiniz:
Yürütmenin ayrıntılarını kontrol edin. İş akışının girişinde ve günlüklerde izleme uyarısından oluşturulan datadog.v1.alert
Datadog etkinlik türünü göreceksiniz:
9. Tebrikler
Tebrikler, codelab'i tamamladınız. Workflows ile Datadog izleme uyarılarına nasıl yanıt verileceğini öğrenmek için ikinci codelab'e geçebilirsiniz.
İşlediğimiz konular
- Datadog sağlayıcısı nasıl bulunur?
- Datadog sağlayıcısı için kanal oluşturma
- Etkinlikleri günlüğe kaydetmek için iş akışı oluşturma.
- Kanalla nasıl Eventarc tetikleyicisi oluşturulur?
- Datadog monitörü oluşturma
- Datadog izleyiciyi, Eventarc tetikleyicisini ve iş akışını test etme.