Ana içeriğe geç

Buton Yapılandırması

Butonlar, Graytool'un çekirdek özelliğidir. Her buton, log satırındaki alanları kullanarak dinamik URL'ler oluşturur ve kullanıcıyı ilgili sayfaya yönlendirir.

Buton Yapısı

interface ButtonConfig {
id: string; // Benzersiz kimlik (otomatik)
label: string; // Buton üzerindeki metin
url: string; // URL şablonu: "https://admin.com/users/{userId}"
fieldBindings: FieldBinding[]; // Alan bağlamaları
conditions: ButtonCondition[]; // Görünürlük koşulları
openInNewTab: boolean; // Yeni sekmede aç
enabled: boolean; // Aktif/pasif
color: ButtonColor; // Renk
icon?: string; // Opsiyonel SVG ikon
urlPatternIds?: string[]; // Hangi pattern'lerde görüneceği
}

Buton Renkleri

RenkKullanım AlanıGörünüm
primaryAna aksiyon (mavi)Graylog birincil renk
defaultGenel amaçlı (gri)Nötr
successBaşarılı işlem (yeşil)Onay/doğrulama
warningDikkat gerektiren (sarı)Uyarı
dangerTehlikeli işlem (kırmızı)Silme/risk

URL Template Sözdizimi

URL template'leri süslü parantez ({...}) ile placeholder tanımlar:

https://admin.company.com/users/{userId}
https://dashboard.company.com/orders/{orderId}?tab=details
https://kibana.company.com/app/discover#/{index}?q={searchQuery}

Çoklu Placeholder

https://admin.com/users/{userId}/orders/{orderId}

URL Encoding

Placeholder değerleri otomatik olarak URL encode edilir:

userId = "john doe"
→ https://admin.com/users/john%20doe

Buton Görünürlüğü

Bir butonu görmek için tüm koşulların sağlanması gerekir:

  1. ✅ Buton enabled: true olmalı
  2. ✅ URL pattern filtresi geçmeli (veya tüm pattern'lere atanmış olmalı)
  3. ✅ Tüm conditions doğru olmalı (AND mantığı)
  4. ✅ URL template'deki tüm placeholder'lar çözülmeli

Herhangi biri başarısız olursa buton o satırda görünmez.

URL Pattern Atama

Butonlar belirli Graylog instance'larına atanabilir:

  • Boş bırakılırsa → Tüm pattern'lerde görünür
  • Seçim yapılırsa → Yalnızca seçilen pattern'lerde görünür

Bu özellik, farklı ortamlar (production, staging) için farklı butonlar tanımlamak istediğinizde kullanışlıdır.

Örnek

ButonURL Patterns
View UserProduction, Staging
Debug PanelYalnızca Staging
Admin ConsoleYalnızca Production
View LogsTümü (boş)

Yeni Sekmede Açma

openInNewTab: true ayarlandığında, buton tıklandığında URL yeni bir sekmede açılır. Varsayılan olarak true'dur.

İkon Desteği

Butonlara opsiyonel SVG ikon eklenebilir. İkon, buton metninin solunda görünür.

Buton Sırası

Butonlar, yapılandırma dosyasındaki sıraya göre log satırlarında gösterilir. Ayarlar sayfasında butonların sırasını değiştirebilirsiniz.

Örnekler

Basit Kullanıcı Butonu

{
"label": "View User",
"url": "https://admin.company.com/users/{userId}",
"color": "primary",
"fieldBindings": [
{ "placeholder": "userId", "fieldPath": "userId" }
],
"conditions": [
{ "field": "userId", "operator": "exists" }
]
}

Koşullu Hata Paneli Butonu

{
"label": "Error Details",
"url": "https://sentry.company.com/issues/{errorId}",
"color": "danger",
"fieldBindings": [
{ "placeholder": "errorId", "fieldPath": "exception.id" }
],
"conditions": [
{ "field": "level", "operator": "equals", "value": "ERROR" },
{ "field": "exception.id", "operator": "exists" }
]
}

Çoklu Ortam Butonu

{
"label": "Kibana Logs",
"url": "https://kibana-{env}.company.com/app/discover?q={traceId}",
"color": "default",
"fieldBindings": [
{ "placeholder": "env", "fieldPath": "environment" },
{ "placeholder": "traceId", "fieldPath": "trace_id" }
],
"conditions": [
{ "field": "trace_id", "operator": "exists" }
]
}