Mövzunu Açan #1
Gecikme raporları, ağ, iş akışı veya hizmet süreçlerinde yaşanan gecikmeleri hızlı bir şekilde tespit etmek için kritiktir. Burada, AWK ile log dosyalarını parse ederek anlamlı bir rapor oluşturmanın temel hatlarını paylaşacağım. Örnekler genel amaçlıdır ve kendi ortamınıza göre uyarlamanız gerekir.


Giriş: neden awk?
  • Log dosyaları genelde satır satır, sütunlar halinde iletilir. AWK, satırları alanlara ayırıp her alan üzerinde koşullu işlem yapmayı kolaylaştırır.
  • Zaman damgası, işlem tipi, kullanıcı kimliği gibi alanlar üzerinden filtreleme ve hesaplama yapabilirsiniz.
  • Tek bir komutla filtreleme, hesaplama ve çıktı formatı hazırlama imkanı verir.


Adım adım yaklaşım:
1) Log yapısını inceleme
  • Örneğin bir HTTP gecikme kaydı şu biçimde olabilir: [timestamp] [method] [endpoint] [status] [response_time_ms]
  • Gerçek dünyada alan sırası ve ayracı değişebilir; önce kendi log formatınızı tanımlayın.


2) Basit filtre ve çıktı
  • Amacınız hangi gecikme aralığındaki olayları görmek? Örneğin 100ms üzerinde olanlar.
  • AWK ile temel filtre şu şekilde olabilir:

KOD
12
awk '$5 > 100 {print $1" " $2" "$3" " $4" " $5"ms"}' log.txt

Bu örnek, 5. sütun gecikmesi 100 ms’den büyük olan satırları ilk iki sütun dahil olmak üzere yazdırır.

3) Ortalama ve maksimum gecikme hesaplama
  • Bir günlük için ortalama gecikmeyi hesaplamak istiyorsanız:

KOD
12
awk '{sum+=$5; if($5>max) max=$5} END {printf "Ortalama: %.2f ms\nMaks: %.0f ms\n", sum/NR, max}' log.txt

Not: sütun numaraları log formatınıza göre değişecektir. Zaman damgası ile filtrelemek için birden fazla koşul ekleyebilirsiniz.

4) Zaman aralıklarına göre gruplanmış rapor
  • Belirli bir saat dilimindeki gecikmeleri toplamak için:

[code]
awk '$1 >= "2026-11-01 08:00:00" && $1

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi