Pano Verisi ve Yenileme
Pano widget'lari birden fazla calisma alani koleksiyonundan toplanan verileri goruntulur. Bu sayfa, verinin veritabanindan ekraniniza nasil aktigi, onbelleklemenin nasil calistigi ve buyuk calisma alanlari icin performansin nasil optimize edildigi aciklar.
Veri akisi genel bakisi
Pano widget'lari icin veri hatti su yolu izler:
- Kullanici bir pano acar -- on yuz, API'den widget verisini ister.
- API onbellegi kontrol eder -- Redis'te yakin zamanda hesaplanmis bir sonuc aranir.
- Onbellek isabeti -- onbelleklenmis sonuc hemen dondurulur.
- Onbellek iskalamasi -- API, MongoDB'ye karsi bir toplama sorgusu calistirir.
- Sonuc onbelleklenir -- yeni sonuc bir TTL ile Redis'te depolanir.
- Veri dondurulur -- on yuz widget'i isler.
| Adim | Bilesen | Gecikme (tipik) |
|---|---|---|
| Onbellek kontrolu | Redis | < 1ms |
| Onbellek isabeti yaniti | API'den on yuze | 5-20ms |
| Toplama sorgusu | MongoDB | Veri hacmine bagli olarak 50-500ms |
| Onbellek yazma | Redis | < 1ms |
| Tam gidis-donus (onbellek iskalamasi) | Uctan uca | 100-600ms |
Veri kaynaklari
Her widget turu belirli MongoDB koleksiyonlarindan veri ceker:
| Widget kategorisi | Birincil koleksiyonlar | Ikincil koleksiyonlar |
|---|---|---|
| Gorev dagilimi (durum, oncelik, etiket, atanan kisi) | issues | states, labels, workspace_memberships |
| Aktivite widget'lari (isi haritasi, zaman cizelgesi) | activity_log | issues, workspace_memberships |
| Dongu widget'lari (risk kartlari, aktif donguler) | cycles, cycle_issues | issues |
| Modul widget'lari | modules, module_issues | issues |
| Zaman takibi widget'lari | time_logs | issues, workspace_memberships |
| Saglik ve risk widget'lari | issues | activity_log, cycles |
| Calisma alani ozeti | projects, cycles, workspace_memberships, pages, modules, issues | Yok |
| Kullaniciya ozel (hosgeldiniz, son ogeler) | activity_log, Redis son ogeler onbellegi | issues |
Calisma alani genelinde toplama
Varsayilan olarak, pano widget'lari tum calisma alani genelinde veri toplar. Bu su anlama gelir:
- Kullanicinin erisimi olan tum projeler dahil edilir.
- Misafir kullanicilar yalnizca davet edildikleri projelerin verilerini gorur.
- Arsivelenmis projeler, widget yapilandirmasinda acikca dahil edilmedikce haric tutulur.
Bir widget belirli bir proje veya donguye kapsamlandirildiginda, toplama hatti sonuclari o kapsamla sinirlandiran bir filtre asamasi ekler.
Yenileme davranisi
Sayfa yuklemesinde otomatik yenileme
Bir kullanici her pano actiginda, tum gorunen widget'lar taze veri alir. Onbelleklenmis veri mevcutsa ve TTL penceresi icindeyse, onbellek kullanilir.
Manuel yenileme
Tum widget'lari onbellegi atlayarak yeni veri almaya zorlamak icin pano arac cubugundaki Yenile simgesine tiklayin.
| Islem | Onbellek davranisi |
|---|---|
| Sayfa yukleme | Mevcutsa onbellegi kullanir |
| Manuel yenileme | Onbellegi atlar, taze veri alir |
| Otomatik yenileme araligi | Her tikte onbellegi atlar |
| Widget yapilandirma degisikligi | O widget icin taze veri alir |
Otomatik yenileme araliklari
Bir monitorde acik kalan panolar icin otomatik yenileme araligi yapilandirin:
| Aralik | Kullanim alani |
|---|---|
| Kapali | Varsayilan. Veri yalnizca sayfa yuklemesinde veya manuel yenilemede yenilenir |
| 1 dakika | Yuksek frekanslı izleme (gunluk toplanti ekranlari) |
| 5 dakika | Sprint sirasinda aktif izleme |
| 15 dakika | Arka plan farkindaliği |
| 30 dakika | Dusuk oncelikli genel bakis ekranlari |
Araligi pano arac cubugundan ... menu > Otomatik yenileme ile ayarlayin.
TIP
Otomatik yenileme API yukunu orantili olarak arttirir. 10 widget'li ve her dakika yenilenen bir pano dakikada 10 API cagrisi olusturur. Cok widget'li panolar icin daha uzun araliklar kullanin.
Onbellekleme stratejisi
Redis onbellek yapisi
Pano verisi Redis'te su anahtar deseni ile onbelleklenir:
setget:dashboard:{workspace_id}:{widget_type}:{config_hash}| Bilesen | Aciklama |
|---|---|
workspace_id | Bu verinin ait oldugu calisma alani |
widget_type | Widget tur tanimlayicisi |
config_hash | Widget'in filtre ve kapsam yapilandirmasinin SHA-256 ozeti |
Bu, ayni turde farkli yapilandirmalara sahip iki widget'in ayri onbellekler tutmasini saglar.
Onbellek TTL
| Veri turu | Varsayilan TTL | Gerekce |
|---|---|---|
| Gorev sayilari ve dagilimlari | 5 dakika | Tazelik ile sorgu maliyetini dengeler |
| Aktivite verisi (isi haritasi, zaman cizelgesi) | 10 dakika | Aktivite kaliplari yavas degisir |
| Dongu ve modul ilerlemesi | 5 dakika | Sprint verisi makul olcude guncel olmali |
| Saglik puanlari | 15 dakika | Bilesik puanlar daha az sik guncelleme gerektirir |
| Calisma alani ozet sayilari | 10 dakika | Belge sayimlari buyuk calisma alanlarinda maliyetlidir |
| Kullaniciya ozel veri (hosgeldiniz, son ogeler) | 2 dakika | Kisisel veri taze hissettirmeli |
Onbellek gecersiz kilma
Onbellek su senaryolarda otomatik olarak gecersiz kilinir:
| Tetikleyici | Kapsam |
|---|---|
| Gorev durum degisikligi | O projeye filtrelenmis widget'lar |
| Gorev olusturma veya silme | Calisma alanindaki tum gorev tabanli widget'lar |
| Dongu baslama veya bitme | Donguyle ilgili widget'lar |
| Manuel yenileme dugmesine tiklanma | Mevcut panodaki tum widget'lar |
| Widget yapilandirma degisikligi | Ilgili widget |
Gercek zamanli ve onbelleklenmis veri karsilastirmasi
SetGet panolari gercek zamanli kesinlik yerine guvenilirligi onceliklendirir:
| Boyut | Davranis |
|---|---|
| Veri gunceliligi | Widget'lar en fazla TTL kadar eski veri gosterir (tipik olarak 5-15 dakika) |
| Tutarlilik | Bir panodaki tum widget'lar biraz farkli zaman noktalarindan veri gosterebilir |
| Gercek zamanli guncellemeler | Panolara WebSocket uzerinden iletilmez (bildirimlerden farkli olarak) |
| Zamanlayici widget'i | Zaman takibi zamanlayicisi Redis uzerinden gercek zamanlidir, ancak zaman kaydi toplamalari onbelleklenir |
WARNING
Iki takim uyesi ayni panoya biraz farkli zamanlarda bakarsa, farkli sayilar gorebilir. Bu beklenen bir durumdur ve bir sonraki yenileme dongusunde cozulur.
Performans degerlendirmeleri
Buyuk calisma alanlari
50.000'den fazla gorevi olan calisma alanlari daha yavas toplama sorgulari yasayabilir. Azaltma stratejileri:
| Strateji | Aciklama |
|---|---|
| Widget'lari projelere kapsamlandirin | Her sorgu icin veri kumesini azaltir |
| Daha uzun yenileme araliklari kullanin | Sorgu sikligini azaltir |
| Liste widget'larini sinirlayin | Yaklasan Teslim Tarihli Gorevler, Sicak Gorevler, Durmus Gorevler'de daha dusuk maks oge ayarlayin |
| Cok sayida ozel sorgu widget'indan kacinin | Ozel sorgular onceden optimize edilmis toplama hatlarini atlar |
MongoDB dizinleri
Pano toplama sorgulari performans icin su dizinlere dayanir:
| Koleksiyon | Dizin | Kullanan |
|---|---|---|
issues | { workspace_id: 1, state_id: 1 } | Durum dagilimi, istatistik cubugu |
issues | { workspace_id: 1, priority: 1 } | Oncelik dagilimi |
issues | { workspace_id: 1, assignee_id: 1 } | Atanan kisi dagilimi, is yuku |
issues | { workspace_id: 1, due_date: 1 } | Yaklasan teslim tarihli gorevler, teslim tarihi takvimi |
activity_log | { workspace_id: 1, created_at: -1 } | Aktivite zaman cizelgesi, isi haritasi |
time_logs | { workspace_id: 1, logged_date: 1 } | Zaman takibi widget'lari |
cycle_issues | { cycle_id: 1 } | Dongu ilerlemesi, risk kartlari |
module_issues | { module_id: 1 } | Modul ilerlemesi |
API hiz sinirlamasi
Pano API uc noktalari kotuye kullanimi onlemek icin hiz sinirlidir:
| Uc nokta deseni | Hiz siniri |
|---|---|
GET /api/workspaces/{slug}/dashboards/{id}/widgets | Dakikada 60 istek |
GET /api/workspaces/{slug}/dashboards/{id}/widgets/{widget_id}/data | Dakikada 120 istek |
POST /api/workspaces/{slug}/dashboards/{id}/refresh | Dakikada 10 istek |
API uc noktalari
| Metod | Uc nokta | Aciklama |
|---|---|---|
GET | /api/workspaces/{slug}/dashboards/ | Tum panolari listele |
POST | /api/workspaces/{slug}/dashboards/ | Pano olustur |
GET | /api/workspaces/{slug}/dashboards/{id}/ | Pano detaylarini al |
PATCH | /api/workspaces/{slug}/dashboards/{id}/ | Pano ayarlarini guncelle |
DELETE | /api/workspaces/{slug}/dashboards/{id}/ | Panoyu sil |
GET | /api/workspaces/{slug}/dashboards/{id}/widgets/ | Panodaki widget'lari listele |
POST | /api/workspaces/{slug}/dashboards/{id}/widgets/ | Widget ekle |
PATCH | /api/workspaces/{slug}/dashboards/{id}/widgets/{widget_id}/ | Widget yapilandirmasini guncelle |
DELETE | /api/workspaces/{slug}/dashboards/{id}/widgets/{widget_id}/ | Widget'i kaldir |
GET | /api/workspaces/{slug}/dashboards/{id}/widgets/{widget_id}/data/ | Widget verisini al |
POST | /api/workspaces/{slug}/dashboards/{id}/refresh/ | Tum widget'lari zorla yenile |
Sorun giderme
| Belirti | Olasi neden | Cozum |
|---|---|---|
| Widget eski veri gosteriyor | Onbellek TTL'i henuz dolmadi | Manuel Yenile dugmesine tiklayin |
| Widget "Veri yok" gosteriyor | Kapsam filtresi tum sonuclari haric tutuyor | Widget yapilandirma kapsamini kontrol edin |
| Widget yavas yukleniyor | Proje kapsami olmadan buyuk veri kumesi | Widget'i belirli bir projeye kapsamlandirin |
| Pano yuklemesi uzun suruyor | Cok fazla widget ayni anda veri aliyor | Widget sayisini azaltin veya yenileme araligini artirin |
| Widget'lar arasi sayilar farkli | Widget'lar farkli zamanlarda onbelleklenmis | Onbellek zaman damgalarini hizalamak icin panoyu yenileyin |