Serverless uygulamalar, organizasyonların yazılımları nasıl inşa ettiğini ve dağıtmasını sağladı, elastik ölçeklenebilirlik ve ödeme-per-execution. ancak, sunucusuz işlevlerin ephemeral doğası, geleneksel uzun süreli sunuculardan daha zorlu bir şekilde izleme ve izleme yeteneği sağlıyor. Doğru araçlama olmadan, silme performansı şişeleri veya başarısızlıklar neredeyse imkansız hale geliyor. Amazon CloudWatch ve Azure Monitor, AWS ve Azure sunucusuz ortamlar için birincil yerel izleme hizmetleridir. Kapsamlı bir kayıt, metrik koleksiyonlar sağlar.
Neden Serverless İzleme Farklı Bir Yaklaşım talep eder
Geleneksel izleme, sanal makineler veya konteynerler üzerinde kurulu ajanlara dayanmaktadır, CPU, hafıza ve disk ölçümleri toplamak için. Serverless mimarlıklar altta yatan altyapıdan soyutlanır, böylece ajanlar veya işletim sistemine erişemezsiniz. Bunun yerine, platformdan gelen hizmetleri izlemek ve kısa ömürlü bir şekilde görünürlük sağlamak için yeterlidir. CloudWatch ve Azure monitörü bu özellikleri işlemek için sıfırdan binlerce concurrent executions ölçeklenebilir.This behavior requires monitoring tools of aggregating high-velocity, short-duration events and near-real-time görünürlük. CloudWatch and Azure Monitor is intended to handle these behavior requires monitoring tools in aggregability.
BulutWatchlarını Anlamak ve Azure Monitor
Amazon CloudWatch, AWS kaynakları ve uygulamaları için bir izleme ve gözlemlenebilirlik hizmetidir.In serverless, it gathers metrics from AWS Lambda, API Gateway, DynamoDB, Step Functions, and other services. CloudWatchs ingests log data from Lambda functions, while CloudWatchs. CloudWatchs daims. CloudWatchs metrics, and CloudWatch Logs Insights Logs, SQL-likes log data from Lambda functions. CloudWatchs also support dashboards for visualating metrics across multiple account and region. CloudWatchs.
Azure Monitor, Azure işlevleri, Mantık Uygulamaları, Event Grid ve API Yönetimi dahil olmak üzere Azure hizmetleri için birleşik izleme platformudur. Platformda ölçümler, aktivite logları ve tanı verileri toplamaktadır. Uygulama, Azure Monitor'in bir özelliği, sunucusuz işlevleri gibi eylemleri tetikleyebilir (APM).Re tracks istek oranları, yanıt süreleri, başarısızlık oranları, bağımlılıklar ve istisnalar. Azure Monitor ayrıca Kusto Query Language (KQL) çalışan için Analytics Log iş alanları sunar.
Her iki hizmet de benzer amaçlara hizmet ederken, uygulama nüanslarında farklıdırlar. CloudWatch Metriks, çeşitli tutma granularity ile 15 ay boyunca depolanırken, Azure Monitor metrikleri varsayılan olarak 93 gün tutar. CloudWatch Logs Insights, GB'nin enjektöre başına GB'ye kadar suçlamaları onaylarken ve muhafaza ederken, bu fiyat modellerini optimize etmenize yardımcı olur.
Serverless Applications için Ayarlayın
AWS'de sunucusuz bir uygulama, Lambda işlevleri için oturum açma ve ölçümler sağlar. Lambda hizmeti otomatik olarak varsayılan ölçümler bir setini yaylar: Invottles, Hatalar, Throttles, Süre ve ConcurrentExecutions. Ancak, iş bazlı ölçümler ve detaylı logları yakalamanız için özel izleme yapmanız gerekir.
Adım 1: IAM BulutWatch için İzinler
Lambda işlevleri, BulutWatch Logs'e giriş yapmak için izinlerle bir IAM rolü gerektirir. a. a.Felseps:0) Yönetilen politika veya [[Dönetici politikasına izin veren özel bir politika oluşturmak, “Ücretsiz:2).
2. Adım: BulutWatch Logs
Her Lambda invokasyon, işlev ve zaman damgasından sonra adlandırılmış bir günlük akış yaratır.Geçmiş bir işlev için tüm akışlar toplayabilir. Örneğin, Node.js:
console.log(JSON.stringify({
requestId: context.awsRequestId,
eventType: event.httpMethod,
statusCode: 200,
durationMs: performance.now() - startTime
}));
Yapılı loglar, ►FLT:5 gibi sorgulara izin verir.
Adım 3: Özel Metrikler ve Alarmlar Yaratmak
Varsayılan ölçümlerin ötesinde, özel ölçümler kullanarak özel ölçümler yayinlar: örneğin, üretim fonksiyonları için işlenmiş ürün sayısını takip edin veya iş işlevine göre gecikmeyin. CloudWatch for custom metrics, so be seçici. Create CloudWatchs for critical eşleri: an alarm on the number of items processed per execution, latency to downstream services, or an alarm on business function.Use detect SNS bildirimleri, another Lambda for auto-remediation, or send to send the source for auto-remedi.
Adım 4: BulutWatch Logs Insights ile Gelişmiş Log Analizi
BulutWatch Logs Insights, birden fazla işlevdeki günlük grupları sorgulamanıza izin verir. Performans şişelerini yüksek çözünürlükte filtrelemek, istisna dizeleri aramanız veya p95 latency ölçmek için aşağıdaki soruları belirleyebilirsiniz. Örnek sorgulayın en yavaş 10 invokasyonunu bulmak için:
fields @timestamp, @duration, @message
| filter @duration > 2000
| sort @duration desc
| limit 10
Hata oranları gösteren panolar oluşturmak için sorgu sonuçları kullanın, istek eğilimleri ve üst hatalar. CloudWatch panjurlar metrikleri birleştirebilir ve çapraz hesap kullanarak birden çok hesaptan giriş yapabilirler.
Azure Monitor'i Serverless Applications için yapılandırın
Azure Fonksiyonlları Azure'daki birincil sunucusuz işlemdir. Varsayılan olarak, Fonksiyonllar Fonksiyonlar Execution Count ve Function Execution Unit gibi platform ölçümlerini yayarlar, ancak daha derin öngörüler için Uygulama İçgörülerine ihtiyacınız var.
Adım 1: Enable Uygulama İçgörüleri
Azure Fonksiyonu App oluştururken, "Uygulama İçgörüleri"ni ele almak veya mevcut bir Uygulama İçgörü kaynağı eklemek.Mevcut fonksiyonlar için, "Settings" -> "Uygulama İçgörüleri" altında, bu otomatik olarak telemetri göndermek için işleve izin vermek.
Adım 2: Tanı Ayarları
Ek telgraf için, Fonksiyonlar App için tanı ayarlarınınabilir ve Log Analytics çalışma alanları ile ilgili ölçümlere erişmenizi sağlar. portalda, "Rekreasyon" -> "Diagnostic settings", sonra da bir akış için bir ayar ekleyin.AppLog Analytics çalışma alanına.Bu size Uygulama İçgörüleri kullanarak uygulama girişlerine erişim sağlar.
Adım 3: Uygulama İçgörüleriyle Analyze Performans
Uygulama İçgörüleri paneli talep oranları, ortalama yanıt süreleri ve başarısızlık oranları gösterir. Performans bıçağının yavaş işlemleri tanımlamak için kullanın ve Başarısızlık bıçakları istisnaları ve yığın izlerini görüntülemek için. Application Insights ayrıca canlı ölçümler destekler, gerçek zamanlı telemetri gösterir, sıcak düzeltmeler için.You can set up accessibility tests to ping-triggered functions from multiple locations.
Adım 4: Azure Monitor'te ayar Uyarıları
Örneğin, Azure Otomasyon kitapları veya Mantık Uygulamaları'nı otomatik olarak otomatik olarak otomatik olarak çalıştırdığı zaman "Rekresyon Uyarısı" için bir uyarı oluşturun. veya "Log Alert" ...For example, an alert on "Metric Alert" for "Function Execution Count" in the drop to zero for 30 minutes, in the possible deployment issue. or a "Log Alert" that triggers when the query. Alerts can send email, SMS, or trigger Action apps to auto-remediate.
Sunucusuz için Gelişmiş İzleme Stratejileri
Dağıtılmış Tracing
Serverless uygulamalar genellikle birden fazla fonksiyondan, API Gateways, kuyruklardan ve veritabanından oluşur.Bir istek birkaç hizmetten geçerken, geç kalmış erişimin kök nedeni dağıtılmıştır. AWS X-Ray, CloudWatch ve Lambda ile entegre edilebilir Active Tracing ve X-Ray, API Gateway'den gelen istekler ile hizmetlere ve DQS. Azure Monitor Uygulama İçgörüleri gibi altüst işlem başvurularını sunar.
Özel Aletleme
Varsayılan ölçümler ve loglar iş düzeyindeki öngörüleri yakalamayabilir.Emit custom metrics for domain-specific KPIs: sayıda sipariş işlendi, önbellek oranı, kullanıcı seansları veya veritabanı sorgu performansı.In AWS, formasyonel algılama için yapılandırılan ekranları kullanın.In Azure, Track Event and TrackMetrics from the Application Insights by your function code.This data can drive dashboards for anomaly detect.
Anomaly Tespiti
BulutWatch Metrik Matematik dinamik eşlere izin verir, ancak daha sofistike bir anomali algılama için, CloudWatch Anomaly Tespit bantları kullanın. Bu gruplar metrik kalıpları adapte eder, yanlış pozitifleri azaltır. Azure Monitor, hataların anormalliğini, süresi ve bağımlılıklarını yakalamak için otomatik olarak uyarı sunar.
Maliyet İzleme Maliyeti İzleme Maliyeti
Serverless izleme, yönetilmemişse pahalı olabilir. CloudWatch Logs data ingestion maliyetleri yüksek seviyeli dönemlerde artış sağlayabilir. Set log keep to 7 or 30 days for most functions, and filter verbose logs to avoid anything to avoid zero, use sample in Application Insights to reduce telemetri volume for high-put functions. Her iki platform da en yüksek seviyeli log seviyelerini dışlamanıza izin verir.
Etkili Serverless Observability için en iyi uygulamalar
- [FONT:0)Adoptoptoptoptopt yapılandırılmış log[Döneticileri tüm işlevlerin tutarlı bir şema ile JSON formatındaki pdf formatındaki . İstek IDs, yürütme süresi, durum ve hata kodları içerir.
- [FONT:0] Merkezileştirilmiş panolar [[Dönler: 1 ), metrikleri birleştirir ve birden fazla hizmetten girişler. CloudWatch çapraz hesap panoları ve Azure Workbooks tek bir parçaya sahip olabilir.
- [FONT:0]Set proaktif uyarılar [[Döneticileri için [Döneticileri, yüksek hata oranı) ve operasyonel metrikler (eski başlangıç süresi, throttles).
- [FONT=0]Implement korelasyon kimlikleri[[Dönder: 1 ) Tüm gelen gelen isteklerin son uç akışları takip etmesi için geçerlidir. ID'yi HTTP başlıklarından, kuyruklardan ve fonksiyon bağlamlarından geç.
- [FONT:0]Review ve gürültüyü azaltmak [Döneticileri arşivleyerek eski günlükleri bastırmak ve non-actionable uyarıları bastırmak. Düzenli olarak ayarlı eşleri temel performansa dayalı olarak ayarlamak.
- [FONT=0)Kırk soğuk başlar [Dönder: 1 ) BulutWatch'da, metrik 03: 12. Azure Monitor'de, [[GÜNDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ
- [FONT=0] Olay yönetimi ile birlikte yapılan çalışmalar PagerDuty veya Opsgenie gibi araçlar. Her iki Bulut Watch ve Azure Monitor bu sistemlere webhooks yoluyla uyarıları bekleyebilir.
BulutWatch ve Azure Monitor'i karşılaştırın: Anahtar Farklılıklar
Her iki platform da benzer yetenekler sunarken, AWS ve Azure sunucusuz ortamlar arasında seçim yaparken dikkate alınması gereken önemli ayrımlar vardır:
- [FONT:0)Metrics granularity: CloudWatch metrics, 1 dakika içinde yüksek çözünürlüklü ölçümlerle, 1 saniye (extra maliyet) Azure Monitor'in standart ölçümlerinde 1 dakika varsayılan olarak toplanabilir, ancak bazı ölçümler 30 saniyelik aralıklarla ek konfigürasyon ile toplanabilir.
- [FONT:0)Log Analytics:[[Dönetici:[Dönetici:0) CloudWatch Logs Insights SQL gibi bir sorgu dili kullanırken, Azure Monitor KQL'yi kullanıyor ve zaman dizi analizi için daha güçlü olan ve birden çok masaya katılır.
- [FONT=0]Pricing modeli:[Dönetici:[Dönetici:0) CloudWatch per metrik başına ücret öder, giriş başına GB'nin ingested ve GB'nin Log Analytics'e ve başına yüklenen veriler için ücretlendirilir.
- [FONT:0) Diğer hizmetlerle ilgili olarak:) CloudWatch AWS X-Ray, CloudTrail ve VPC Flow Logs ile sıkı bir şekilde entegre edilir. Azure Monitor Azure Sentinel, Azure Policy ve Microsoft 365 ile bütünleştirir.
- [FONT=0)Multi-cloud desteği: [Dönetici:[Dönetici:0) Azure Monitor, AWS ve GCP kaynaklarını bağlantılarla desteklerken, CloudWatch, AWS-native'dir ancak BulutWatch Agent aracılığıyla girişleri alabilir.
Gerçek Dünya İzleme Örneği: E-Ticaret Checkout Flow
API Gateway, Lambda, DynamoDB ve SQS kullanan AWS'de e-ticaret sunucusuz bir uygulama düşünün: checkout akışını izlemek için:
- API Gateway ve Lambda'da her HTTP isteğinin tüm alt uç çağrıları aracılığıyla izleyebileceğiz X-Ray.
- Kontrol hacmi, başarı oranı, ortalama fiyat ve ödeme ağ geçidi, gömülü metrik format kullanarak gecikmeler.
- Kontrollü eğlence gösteren bir BulutWatch pano oluşturun: API talebi say, Lambda invos, DynamoDB okuma / yazma kapasitesi ve adım başına hata say.
- Alarmlar: Hata oranı 5 dakikadan fazla aşıyorsa, on-call mühendisi sayfasını sayfalayın. If DynamoDB throttles 10 kattan fazla gerçekleşirse, otomatik satış politikasını tetikler veya veritabanı takımını uyarır.
- BulutWatch Logs Insights'ı ödeme ağ geçidi logları ile başarısız olan ve ilişkili kimlikleri sorgulamak için Logs Insights kullanın ( API aracılığıyla dış hizmetlerden CloudWatch için).
Bu proaktif izleme, müşterilerin etkilendiğinden önce takım tespit edebilir ve sorunları çözebilir. Aynı yaklaşım Azure işlevleri, Uygulama İçgörüleri ve Cosmos DB kullanarak Azure için geçerlidir.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Amazon CloudWatch ve Azure Monitor, sunucusuz uygulamaları ölçeklendirmek için gereklidir. Temel oturumların ötesine geçmek ve özel ölçümleri kucaklamak, dağıtık kanallama ve akıllı uyarıları, yüksek erişilebilirliği ve performansı korumak için gerekli görünürlüğü elde edersiniz.Her iki platform da, doğru yapılandırıldığında, maliyetleri optimize etmek için zaman azaltır ve optimize etmek için zaman sağlar.In serverless kabul edilen maliyetle ilgili olarak, operasyonel güven ve iş sürekliliğinize yatırım zaman verir.For more reading, refer to maintain high accessibilityT:0.AWS CloudWatch Dokümantasyon[tr|Dönetici:2).