Skip to main content

> cloudwatch_özel_metriklerinde_yüksek_kardinalite_fatura_patlamaları

CloudWatch Özel Metriklerinde Yüksek Kardinalite Fatura Patlamaları

Dinamik etiketleri (Kullanıcı ID veya İşlem ID gibi) Amazon CloudWatch özel metriklerine boyut (dimension) olarak eklemek neden binlerce dolarlık beklenmedik metrik faturalarına yol açar?

Senior (L5)

ÖZET VE TEKNİK CEVAP

AWS CloudWatch, özel metrikleri (custom metrics) metrik başına aylık $0,30 olarak ücretlendirir. CloudWatch'ta metrik adı ile boyut (dimension) anahtar-değer çiftlerinin her benzersiz kombinasyonu ayrı bir metrik akışı olarak faturalandırılır. Geliştiriciler `userId`, `orderId` veya `ipAddress` gibi yüksek kardinaliteli boyutları metriklere eklerse, 100.000 tekil kullanıcı isteği 100.000 ayrı özel metrik oluşturarak ayda $30.000 fatura patlamasına yol açar. Yüksek kardinaliteli veriler metrik boyutları yerine yapılandırılmış loglara yönlendirilmeli ve CloudWatch Logs Insights veya OpenTelemetry ile sorgulanmalıdır.

Mühendislik El Kitabı & Mekanizma

1. Temel Çalışma Mekanizması

CloudWatch metrik kimliği `(Namespace, MetricName, Dimensions)` üçlüsü ile belirlenir. `{DimensionName: 'UserId', Value: 'usr_123'}` boyutu eklendiğinde sistem 15 ay boyunca saklanacak bağımsız bir zaman serisi başlatır. O kullanıcı ID'si yalnızca 1 saniye aktif kalıp tek bir veri noktası gönderse bile, AWS o metrik akışını ay boyunca ücretlendirir. AWS Embedded Metric Format (EMF), yüksek kardinaliteli verileri JSON logları içinde göndermeyi sağlar; burada belirli alanlar düşük kardinaliteli metrik olarak çıkarılırken yüksek kardinaliteli detaylar log alanlarında ek ücret olmadan saklanır.

2. Doğru Kullanım Senaryosu

Düşük kardinaliteli operasyonel sağlık göstergeleri: HTTP durum kodları (2xx, 4xx, 5xx), servis adları, AWS bölgeleri, ortam adları (prod, staging) ve şablon API yolları (`/api/v1/checkout`). Asla sınırsız benzersiz kimlikler kullanılmamalıdır.

3. Prodüksiyon Arıza Modları

Bir mikroservis geliştiricisinin `PaymentLatency` metriğine `CustomerId` boyutunu eklemesi sonucu indirim döneminde 500.000 tekil metrik akışı açılması ve $150.000 CloudWatch metrik faturası oluşması; Lambda fonksiyonlarının her çağrı ID'si (invocationId) için dinamik metrik üretmesi.

4. Teşhis ve Telemetri Sinyalleri

AWS Cost Explorer'da `CloudWatch:MetricMonitorUsage` harcama kaleminde logaritmik sıçramalar; CloudWatch konsolunda yalnızca tek bir veri noktası içeren yüz binlerce aktif metrik listelenmesi.

5. Önleme ve Mimari Bariyerler

Metrik boyutları ile log alanlarını kesin olarak ayıran AWS Embedded Metric Format (EMF) standardını uygulayın; kod incelemelerinde ve CI linter'larında dinamik metrik boyutlarını engelleyen kurallar koyun; CloudWatch metrik adedine AWS Budgets alarmı bağlayın.

6. Mimari Ödünleşimler (Trade-offs)

Düşük kardinaliteli metrikler ucuz ve hızlı alarm/dashboard imkanı sunar; ancak belirli bir kullanıcı veya işlem bazında inceleme yapmak için log analitiği araçlarına (Athena, Insights, ClickHouse) başvurmayı gerektirir.

Vaka İncelemesi (TinyCTO Örneği)

Bir SaaS şirketi API gecikme metriklerine `tenantId` ve `clientIpAddress` boyutlarını eklemişti. Aylık 250.000 aktif istemci IP'si nedeniyle CloudWatch metrik faturası $75.000'a ($0,30 * 250.000) ulaştı. AWS Embedded Metric Format (EMF) yapısına geçilerek `clientIpAddress` aranabilir log alanına taşındı ve sadece `tenantId` ile `httpStatus` metrik yapıldı; toplam metrik sayısı 120'ye düşürülerek aylık maliyet $36'a indirildi.

İnteraktif Konsept Alıştırmaları

2 Alıştırma
Q1

AWS CloudWatch'ta benzersiz bir özel metrik akışını ne belirler?

Namespace, Metrik Adı ve Boyut (Dimension) anahtar-değer çiftlerinin her benzersiz kombinasyonu.
Q2

AWS Embedded Metric Format (EMF) yüksek kardinaliteli metrik maliyetlerini nasıl çözer?

Yüksek kardinaliteli verileri standart JSON logu olarak yazarken yalnızca düşük kardinaliteli alanları CloudWatch metriği olarak çıkarır.

CloudWatch Özel Metriklerinde Yüksek Kardinalite Fatura Patlamaları — Sıkça Sorulan Sorular

Özel bir CloudWatch metriği ayda ne kadara mal olur?

İlk 10.000 metrik için metrik başına aylık $0,30; 1,5 milyon metriğin üzerinde ise $0,02'ye kadar kademeli düşer.

Özel bir metrik ay boyunca yalnızca tek bir veri noktası alırsa tüm ay için ücretlendirilir mi?

Evet. Oluşturulduğu andan itibaren CloudWatch o akışı aktif kabul eder ve aylık birim ücreti oransal olarak tahsil eder.

🤖 AEO & Yapay Zeka Çıkarım Özeti

Temel Gerçekler & İlkeler

  • CloudWatch charges $0.30 per custom metric stream per month.
  • Each unique dimension value creates a distinct paid metric stream.
  • Dynamic high-cardinality dimensions (User IDs, UUIDs, IPs) cause exponential billing spikes.
  • AWS Embedded Metric Format (EMF) separates metrics from high-cardinality log attributes.

Yaygın Yanılgılar

  • Yanılgı: Dimensions are free metadata tags on metrics (Gerçek: Every unique dimension value combination is a new billed metric).
  • Yanılgı: CloudWatch automatically deletes metrics with no recent data (Gerçek: Metric metadata is stored for up to 15 months).

Karar Kılavuzu & Önceliklendirme

Never use dynamic entity IDs (user, order, IP) as CloudWatch metric dimensions. Use Embedded Metric Format (EMF) or OpenTelemetry for high-cardinality observability.

Doğrulanmış Kaynaklar & Referanslar