Ana içeriğe geç

Alan Yapılandırması (Field Config)

Global alan yapılandırması, Graytool'un log satırlarından alanları nasıl keşfedeceğini ve JSON parsing davranışını kontrol eder.

Yapı​

interface GlobalFieldConfig {
defaultMessageField?: string | null; // JSON viewer varsayılan alan
rowFieldPrefixes: string[]; // Aranacak alan prefix'leri
searchPrefixes?: string[]; // Yapılandırma UI alias'ı
parseJsonStrings?: boolean; // JSON string'leri parse et
jsonParseMaxDepth?: number; // Maksimum parse derinliği
}

Ayarlar​

Default Message Field​

JSON viewer açıldığında hangi alanın otomatik seçileceğini belirler.

DeğerDavranış
null / undefinedAlan seçici diyalogu gösterilir
"full_message"Doğrudan full_message alanı açılır
"message"Doğrudan message alanı açılır
ipucu

İlk kez JSON viewer kullandığınızda, "Save as default" seçeneğini işaretleyerek varsayılan alanı kolayca ayarlayabilirsiniz.

Row Field Prefixes​

Graylog'un farklı yapılandırmaları, alanları farklı prefix'lerle saklar. Bu ayar, hangi prefix'lerin aranacağını belirler.

Varsayılan: ["msg.", "context.", ""]

Log verisi: { "msg.userId": "123", "context.env": "prod" }

Arama sırası:
"msg.userId" → ✅ Bulundu ("msg." prefix'i)
"context.env" → ✅ Bulundu ("context." prefix'i)
"userId" → ✅ Bulundu ("" boş prefix)

Özelleştirme​

Kendi Graylog yapılandırmanıza göre prefix'leri ayarlayın:

Graylog yapılandırmanız "app." prefix'i kullanıyorsa:
→ ["app.", "msg.", "context.", ""]

Parse JSON Strings​

JSON alanlarının string değerlerinde gömülü JSON'u parse eder.

Varsayılan: true

// parseJsonStrings: true
{
"details": "{\"userId\": \"123\", \"action\": \"login\"}"
}
// ↓ Parse edilir:
{
"details.userId": "123",
"details.action": "login"
}
// parseJsonStrings: false
{
"details": "{\"userId\": \"123\", \"action\": \"login\"}"
}
// ↓ String olarak kalır (parse edilmez)
bilgi

Bu özellik, iç içe JSON string'leri olan log yapılarında çok kullanışlıdır. Ancak performans sorunları yaşarsanız kapatabilirsiniz.

JSON Parse Max Depth​

Maksimum JSON parse derinliğini belirler. Derin iç içe yapıları sınırlandırır.

Varsayılan: 5 Aralık: 1 - 10

Derinlik 1: { "a": "..." }
Derinlik 2: { "a": { "b": "..." } }
Derinlik 3: { "a": { "b": { "c": "..." } } }
...
Derinlik 5: a.b.c.d.e → Bu noktadan sonra düzleştirme durur
warning

Çok yüksek derinlik değerleri (8-10), büyük JSON nesnelerinde performans sorunlarına neden olabilir. Çoğu kullanım durumu için 5 yeterlidir.

Varsayılan Yapılandırma​

{
defaultMessageField: null, // Otomatik algıla
rowFieldPrefixes: ["msg.", "context.", ""],
parseJsonStrings: true,
jsonParseMaxDepth: 5,
}

Ayarlar Sayfasından Yapılandırma​

  1. Options → "Field Config" sekmesine gidin
  2. Her ayar için ilgili alanı düzenleyin:
    • Default Message Field: Metin kutusu (boş bırakılabilir)
    • Row Field Prefixes: Virgülle ayrılmış liste
    • Parse JSON Strings: Onay kutusu
    • JSON Parse Max Depth: 1-10 arası sayı