Ana içeriğe geç

Dashboard

Consul Guardian Dashboard, Consul KV store'unu görsel olarak yönetmeni sağlayan 10 sayfalı bir web arayüzüdür. Watch süreci ile entegre çalışır -- hem değişiklikleri izler hem de web UI sunar.

Dashboard'u Başlatma

./consul-guardian dashboard \
--consul-addr http://localhost:8500 \
--prefix "config/,env/,feature-flags/" \
--git-repo ./consul-backup \
--static-dir ./frontend/dist \
--listen :9090

Tarayıcıda http://localhost:9090 adresini aç.

Docker ile

docker run -d \
-e CONSUL_GUARDIAN_CONSUL_ADDRESS=http://consul:8500 \
-v /data/consul-backup:/home/guardian/repo \
-p 9090:9090 \
ghcr.io/consul-guardian/consul-guardian:latest \
dashboard --prefix "config/" --listen :9090

Sayfalar

Dashboard 10 sayfadan oluşur. Her birinin ne yaptığına kısaca bakalım.

1. Overview (Genel Bakış)

Ana sayfa. Şu bilgileri içerir:

  • KPI kartları: Toplam key sayısı, son 24 saatteki değişiklik, drift durumu, son snapshot zamanı
  • Canlı aktivite akışı: Son değişiklikler gerçek zamanlı olarak akar (WebSocket)
  • Hızlı erişim: Sık kullanılan işlemler için kısayollar

2. KV Store (KV Deposu)

Consul'daki tüm key'leri ağaç yapısında görüntüler:

  • Prefix bazında gezinme (config/production/ gibi)
  • JSON değerler otomatik formatlanır
  • Key metadata'sı: CreateIndex, ModifyIndex, Flags

3. KV Editor (KV Düzenleyici)

Doğrudan dashboard üzerinden key oluşturma, düzenleme ve silme:

  • JSON editörü syntax highlighting ile
  • Değişiklik öncesi önizleme
  • Silme onay diyaloğu

4. Drift Detection (Sapma Tespiti)

Git ile Consul arasındaki farkları tarar:

  • MISSING: Git'te var ama Consul'da yok
  • EXTRA: Consul'da var ama Git'te yok
  • DRIFTED: Her ikisinde de var ama değerler farklı

Tek tıkla tarama başlatabilirsin. Sonuçlar detaylı tablo olarak gösterilir.

5. Diff View (Fark Görünümü)

Config versiyonlarını yan yana karşılaştırır:

  • Git geçmişinden iki farklı revizyon seç
  • Sol-sağ diff görünümü (unified veya split)
  • Değişen satırlar vurgulanır

6. Restore (Geri Yükleme)

Git geçmişinden herhangi bir noktaya geri yükleme:

  • Revizyon seçimi (commit listesi)
  • Prefix bazında filtreleme
  • Dry-run önizleme: "Şu key'ler değişecek" tablosu
  • Tek tıkla geri yükleme (CAS korumasıyla)

7. Snapshots

Cluster snapshot yönetimi:

  • Yeni snapshot al
  • Mevcut snapshot'ları listele
  • Snapshot detayları: boyut, tarih, SHA-256
  • Saklama politikasını görüntüle

8. Change History (Değişiklik Geçmişi)

Tüm değişikliklerin zaman çizelgesi görünümü:

  • Tarih aralığıyla filtreleme
  • Değişiklik tipine göre filtreleme (ekleme, güncelleme, silme)
  • Her değişiklik için diff görüntüleyebilirsin

9. Env Compare (Ortam Karşılaştırma)

Farklı ortamlardaki config'leri yan yana karşılaştırır:

  • Production vs Staging vs Development
  • Sadece farklılıkları göster modu
  • Hangi key'in hangi ortamda eksik olduğunu görsel olarak gösterir

10. Settings (Ayarlar)

Dashboard ve Guardian yapılandırması:

  • Uyarı ayarları (Slack webhook, kanal)
  • İzlenecek prefix'ler
  • Snapshot zamanlama
  • Genel tercihler

WebSocket Canlı Güncellemeler

Dashboard, WebSocket bağlantısı üzerinden canlı güncelleme alır. Consul'da bir key değiştiğinde:

  1. Watch süreci değişikliği yakalar
  2. WebSocket üzerinden dashboard'a bildirim gönder
  3. İlgili sayfalar otomatik güncellenir (sayfa yenilemesi gerekmez)

Bu özellikle Overview ve Change History sayfalarında etkilidir. Takımındaki birisi bir key değiştirdiğinde, sen dashboard'a bakarken değişikliği anında görürsün.

Yapılandırma

Dashboard'a özel yapılandırma seçenekleri:

dashboard:
listen: ":9090" # Dinlenecek adres ve port
static_dir: "./frontend/dist" # Frontend dosyalarının yolu
FlagVarsayılanAçıklama
--listen:9090HTTP sunucu adresi
--static-dir./frontend/distFrontend build dizini

Gerçek Senaryo: Takım İçi Config Yönetimi

5 kişilik bir backend takımında çalışıyorsun. Herkes Consul'daki config'leri CLI ile yönetiyor ama kimin ne değiştirdiğini takip etmek zor.

Dashboard'u açık bırak:

  • Birisi config/production/payment-service key'ini değiştirdiğinde Overview'da anında görürsün
  • Değişikliğin ne olduğunu Diff View'da karşılaştırabilirsin
  • Yanlış bir değişiklik yapıldıysa Restore ile 30 saniyede geri alabilirsin
  • Haftasonu gece 3'te yapılan değişiklikleri Change History'den inceleyebilirsin