Skip to main content

> FINOPS // BÖLÜM 08

Bölüm 8: Gözlemlenebilirlik Maliyet Yönetimi, Günlük Örnekleme ve Metrik Patlaması

Metrik etiket patlamasını önleme, OpenTelemetry Collector ile uçta günlük filtreleme ve CloudWatch saklama sınırları.

Kanonik FinOps Kılavuzu #08|TinyCTO Cloud Bill Bible

Bölüm 8: Gözlemlenebilirlik Maliyet Yönetimi, Günlük Örnekleme ve Metrik Patlaması

Metrik etiket patlamasını önleme, OpenTelemetry Collector ile uçta günlük filtreleme ve CloudWatch saklama sınırları.

#1. Yönetici Özeti ve Problem Tanımı

Gözlemlenebilirlik faturaları (Datadog, AWS CloudWatch, Splunk, New Relic), izledikleri altyapı maliyetlerini aşmalarıyla ün kazanmıştır. AWS işlemcilerine ayda `math:50.000 harcayan bir şirketin Datadog veya CloudWatch günlük alımı ve özel metrikler için ayda `70.000 harcaması sık rastlanan bir durumdur.

Başlıca sorumlular şunlardır:

  1. Yüksek verimli canlı ortamlarda yayınlanan örneklenmemiş debug/info günlükleri.
  2. Yüksek kardinaliteli metrik etiketleri (Prometheus veya Datadog metrik etiketlerine kullanıcı kimlikleri, UUID'ler veya zaman damgaları eklemek).
  3. Yük dengeleyicilerden gelen tekrarlayan sağlık kontrolü (healthcheck) günlüklerinin saklanması.

#2. Özel Metrik Patlaması Tuzağı

Telemetri platformlarında metrik maliyeti şu şekilde hesaplanır:

Maliyet∝∏Boyutların Kardinalitesi\text{Maliyet} \propto \prod \text{Boyutların Kardinalitesi}

Eğer http_requests_total metriği şu boyutlara sahipse:

  • endpoint: 20 değer
  • status_code: 5 değer
  • user_id: 1.000.000 benzersiz kullanıcı

Bu tek bir metrik 20×5×1.000.000=100.000.00020 \times 5 \times 1.000.000 = 100.000.000 benzersiz zaman serisi oluşturur ve anında altı haneli aylık telemetri faturalarını tetikler.

Metrik Kardinalitesi Altın Kuralı

Yüksek kardinaliteli değerleri (Kullanıcı Kimlikleri, Oturum Kimlikleri, Sipariş Kimlikleri, IP Adresleri, UUID'ler) ASLA metrik boyutlarına koymayın. Bunları yapılandırılmış dağıtık izleme (traces) veya günlük gövdelerine yerleştirin.


#3. OpenTelemetry Collector ile Uçta Günlük Filtreleme

Gereksiz günlükleri kümeden çıkmadan önce uçta filtrelemek, örneklemek ve bırakmak için bir OpenTelemetry Collector daemonset'i dağıtın:

# OpenTelemetry Collector İşlem Hattı Yapılandırması
processors:
  filter/drop_healthchecks:
    error_mode: ignore
    logs:
      log_record:
        - 'attributes["http.target"] == "/healthz"'
        - 'attributes["http.target"] == "/readyz"'
        - 'attributes["user_agent"] == "ELB-HealthChecker/2.0"'

  probabilistic_sampler:
    sampling_percentage: 10.0 # HTTP 200 INFO günlüklerinin yalnızca %10'unu tut; 4xx/5xx hatalarının %100'ünü sakla

service:
  pipelines:
    logs:
      receivers: [otlp]
      processors: [filter/drop_healthchecks, probabilistic_sampler]
      exporters: [datadog, cloudwatch]

#4. CloudWatch Saklama Kuralları

Varsayılan olarak, AWS CloudWatch günlük grupları günlük akışlarını Asla Sona Ermez (Never Expire) şeklinde süresiz saklar. AWS CLI veya Terraform aracılığıyla tüm hesap günlük gruplarında 30 günlük saklama tavanı uygulayın:

# Tüm CloudWatch günlük gruplarında 30 günlük saklama politikasını zorunlu kılın
aws logs describe-log-groups --query "logGroups[*].logGroupName" --output text | tr '\t' '\n' | while read group; do
  aws logs put-retention-policy --log-group-name "$group" --retention-in-days 30
done
Yapay Zekâ Özeti — Bölüm 08: Bölüm 8: Gözlemlenebilirlik Maliyet Yönetimi, Günlük Örnekleme ve Metrik Patlaması
AEO / GEO / Perplexity Indexable

Metrik etiket patlamasını önleme, OpenTelemetry Collector ile uçta günlük filtreleme ve CloudWatch saklama sınırları.

Bölüm OdağıBölüm 08 kanonik FinOps prensipleri ve birim maliyet yönergeleri.
Temel KavramlarMetric Cardinality • OpenTelemetry Filtering • Probabilistic Sampling • CloudWatch Retention
Olgunluk SeviyesiWALK (Orta Seviye)
AEO / Ajan KuralıCanlı ortamda maliyet anomalisinde P0 alarmları ve FOCUS 1.0 etiketleme zorunludur.