SLA zamanlayıcılarını izleyen, ihlalleri anında tespit eden, ekipleri uyaran ve uyumluluğu gerçek zamanlı görselleştiren bir web uygulamasının pratik bir yol haritasını öğrenin.

Ekranları tasarlamadan veya tespit mantığını yazmadan önce, uygulamanızın neyi önlemeye çalıştığına net olun. “SLA izleme” günlük rapordan saniye saniye ihlal tahminine kadar her şeyi ifade edebilir—bunlar çok farklı ürünlerdir ve mimari ihtiyaçları da çok farklıdır.
Başlangıç olarak ekibinizin gerçekçi bir şekilde uygulayabileceği tepki penceresinde uzlaşın.
Destek organizasyonunuz 5–10 dakikalık döngülerde çalışıyorsa (triaj kuyrukları, paging rotasyonları), “gerçek zaman” pano güncellemelerinin her dakika ve uyarıların 2 dakika içinde olması anlamına gelebilir. Yüksek şiddetli olaylarla uğraşıyorsanız ve dakikalar kritikse, 10–30 saniyelik tespit ve uyarı döngüsüne ihtiyaç duyabilirsiniz.
Bunu ölçülebilir bir hedef olarak yazın, örneğin: “Potansiyel ihlalleri 60 saniye içinde tespit et ve nöbetçiyi 2 dakika içinde bilgilendir.” Bu, daha sonra mimari ve maliyetle ilgili kararlar için bir kılavuz olur.
İzlediğiniz özel taahhütleri listeleyin ve her birini sade bir dille tanımlayın:
Ayrıca bunların kuruluşunuzdaki SLO ve SLA tanımlarıyla nasıl ilişkili olduğunu not edin. İçsel SLO müşteri SLA’sından farklıysa, uygulamanızın her ikisini de izlemesi gerekebilir: operasyonel iyileşme için biri, sözleşmesel risk için diğeri.
Sistemi kullanacak veya ona güvenecek grupları adlandırın: destek, mühendislik, müşteri başarı, ekip liderleri/yonetici ve olay müdahale/nöbetçi.
Her grup için “bu anda ne karara varmalılar?” sorusunu yakalayın: “Bu ticket risk altında mı?”, “Kimin sorumluluğunda?”, “Eskalasyona ihtiyaç var mı?” Bu, panonuzu, uyarı yönlendirmesini ve izinleri şekillendirecektir.
Amacınız sadece görünürlük değil—zamanında harekettir. Risk yükseldiğinde veya bir ihlal olduğunda neler olması gerektiğine karar verin:
İyi bir sonuç bildirimi: “Anlaşılmış tepki penceremiz içinde ihlal tespiti ve olay müdahalesini mümkün kılarak SLA ihlallerini azaltmak.”
Tespit mantığını inşa etmeden önce, servisinize göre “iyi” ve “kötü”nün tam olarak ne olduğunu yazın. Çoğu SLA izleme problemi teknik değil—tanım problemidir.
Bir SLA (Service Level Agreement) müşteriye verilen bir vaat olup genellikle sonuçları (kredi, ceza, sözleşme maddeleri) içerir. Bir SLO (Service Level Objective), SLA’nın üstünde güvenle kalmak için hedeflenen içsel bir hedeftir. Bir KPI (Key Performance Indicator) ise izlediğiniz herhangi bir metriktir (faydalı, ama her zaman bir vaadet bağlı değildir).
Örnek: SLA = “1 saat içinde yanıt ver.” SLO = “30 dakika içinde yanıt ver.” KPI = “ortalama ilk yanıt süresi.”
Tespit etmeniz gereken her ihlal türünü ve zamanlayıcıyı başlatan olayı listeleyin.
Yaygın ihlal kategorileri:
“Yanıt”ın ne sayıldığı (kamuya açık yanıt vs iç not) ve “çözüm”ün ne olduğu (resolved vs closed) ile yeniden açmanın zamanlayıcıyı sıfırlayıp sıfırlamadığını açıkça belirtin.
Birçok SLA sadece mesai saatleri içinde sayılır. Takvimi tanımlayın: çalışma günleri, tatiller, başlangıç/bitiş saatleri ve hesaplama için kullanılacak zaman dilimi (müşterinin, sözleşmenin veya ekibin). İş sınırlarını aşan durumlarda ne olacağına da karar verin (ör. 16:55'te gelen ve 30 dakikalık yanıt SLA'sı olan bir bilet).
SLA saatinin durduğu durumları belgeleyin, örneğin:
Bunları uygulamanızın tutarlı şekilde uygulayabileceği kurallar olarak yazın ve zor durum örneklerini daha sonra test için saklayın.
SLA monitörünüzü besleyen veriler ne kadar iyi olursa, sonuçlar da o kadar güvenilir olur. Her SLA saatinin “kayıt sistemi” olarak hangi sistemleri kullandığını belirleyin. Birçok ekip için bilet aracı yaşam döngüsü zaman damgalarında tek kaynaktır; izleme ve log araçları ise neden olduğunu açıklar.
Çoğu gerçek zamanlı SLA kurulumu küçük bir çekirdek sistem setinden çekim yapar:
Eğer iki sistem uyuşmazsa, hangi alan için hangi sistemin galip geleceğini önceden kararlaştırın (ör. “bilet durumu ServiceNow’dan, müşteri seviyesi CRM’den alınır”).
En azından SLA zamanlayıcısını başlatan, durduran veya değiştiren olayları izleyin:
Ayrıca operasyonel olayları düşünün: mesai takvimi değişiklikleri, müşteri zaman dilimi güncellemeleri ve tatil takvimi değişiklikleri.
Yakın gerçek zamanlı güncellemeler için webhook tercih edin. Webhook yoksa veya güvenilmezse polling kullanın. Uzlaştırma için API dışa aktarımları/backfill saklayın (ör. açık boşlukları dolduran gece işi). Birçok ekip hibrit bir yol kullanır: hız için webhook, güvenlik için periyodik polling.
Gerçek sistemler karmaşıktır. Bekleyin:
Bunları “kenar durum” değil, ürün gereksinimleri olarak görün—ihlal tespitiniz bunlara bağlıdır.
İyi bir SLA izleme uygulaması, mimari açık ve kasıtlı olduğunda inşa etmesi ve bakım yapması daha kolaydır. Yüksek seviyede ham operasyon sinyallerini “SLA durumu”na çeviren, sonra bunu insanları uyarmak ve pano beslemek için kullanan bir boru hattı kuruyorsunuz.
Beş blok olarak düşünün:
Bu ayrım sorumlulukları temiz tutar: ingest SLA mantığı içermemeli, panolar ağır hesaplamalar yapmamalıdır.
Gerçekten ne kadar "gerçek zaman"a ihtiyaç duyduğunuza erken karar verin.
Pragmatik bir yaklaşım: birkaç SLA kuralı için sık yeniden hesaplama ile başlayın, sonra yüksek etkili kuralları akışa taşıyın.
İlk etapta çok bölge ve çok ortam karmaşıklığından kaçının. Tek bölge, bir üretim ortamı ve minimal bir staging genellikle veri kalitesi ve uyarı faydasını doğrulayana kadar yeterlidir. “Daha sonra ölçeklendir” bir tasarım kısıtlaması olsun, başlangıç gereksinimi değil.
Eğer panoyu ve iş akışlarını hızla çalışır hale getirmek istiyorsanız, sohbet tabanlı bir spesifikasyondan React tabanlı bir UI ve Go + PostgreSQL backend iskeleti oluşturmanıza yardımcı olabilecek Koder.ai gibi bir platform ilk sürümü hızlandırabilir.
Bunları uygulamadan önce yazın:
Olay alımı, SLA izleme sisteminizin ya güvenilir ya da gürültülü ve kafa karıştırıcı olmasını belirler. Amaç: birçok araçtan olay kabul etmek, bunları tek bir “gerçek” formata dönüştürmek ve her SLA kararını açıklayabilecek kadar bağlam saklamaktır.
“SLA-ilişkili olay”ın nasıl göründüğünü standartlaştırarak başlayın. Pratik bir temel şema şunları içerir:
ticket_id (veya vaka/iş öğesi ID'si)timestamp (değişikliğin olduğu an, alındığı an değil)status (opened, assigned, waiting_on_customer, resolved, vb.)priority (P1–P4 veya eşdeğeri)customer (hesap/tenant tanımlayıcısı)sla_plan (hangi SLA kuralları geçerli)Şemayı versiyonlayın (ör. schema_version) ki alanları evriltirken eski üreticileri kırmayın.
Farklı sistemler aynı şeyi farklı isimlendirebilir: “Solved” vs “Resolved”, “Urgent” vs “P1”, zaman dilimi farklılıkları veya eksik öncelikler. Küçük bir normalizasyon katmanı kurun:
is_customer_wait, is_pause gibi)Entegrasyonlar tekrar dener. Ingest idempotent olmalı. Yöntemler:
event_id isteyin ve çiftleri reddedinticket_id + timestamp + status) upsert yapın“Niye uyardık?” sorusuna cevap verebilmek için her kabul edilen ham olayı ve her normalize edileni saklayın, ayrıca kim/ne tarafından değiştirildiğini kaydedin. Bu denetim geçmişi müşteri görüşmeleri ve iç incelemeler için gereklidir.
Bazı olaylar ayrıştırma veya doğrulamada başarısız olur. Bunları sessizce atmayın. Orijinal yükü, hata nedenini ve yeniden deneme sayısını içeren bir dead-letter kuyruğuna/tablosuna yönlendirin ki eşlemeleri düzeltebilin ve güvenle yeniden oynatabilesiniz.
SLA uygulamanızın iki farklı “hafızaya” ihtiyacı vardır: şu anda ne doğru (uyarı tetiklemek için) ve zaman içinde ne oldu (neden uyarı verildiğini açıklamak için).
Güncel durum her iş öğesinin (bilet/olay/sipariş) en son bilinen durumu ve aktif SLA zamanlayıcılarını içerir (başlama zamanı, duraklama süresi, vade zamanı, kalan dakika, mevcut sahip).
ID ile hızlı okuma/yazma ve basit filtreler için optimize edilmiş bir depo seçin. Yaygın seçenekler: ilişkisel veritabanı (Postgres/MySQL) veya anahtar-değer (Redis/DynamoDB). Birçok ekip için Postgres yeterlidir ve raporlamayı basit tutar.
Durum modelini küçük ve sorgu-dostu tutun. “Çok yakında ihlal olacaklar” gibi görünümler için sık okunur.
Geçmiş her değişikliği değişmez bir kayıt olarak yakalamalı: oluşturuldu, atandı, öncelik değişti, durum güncellendi, müşteri cevap verdi, on-hold başladı/bitti vb.
Bir ekleme-yalnızca olay tablosu (veya event store) denetimler ve yeniden oynatma için gereklidir. Mantık hatası keşfederseniz, olayları yeniden işleyip durumu yeniden oluşturabilirsiniz.
Pratik desen: başlangıçta aynı veritabanında state table + events table; hacim büyürse analitik depolamaya taşıyın.
Amaçlara göre saklama belirleyin:
Arşiv ve silmeleri öngörülebilir kılmak için bölümlendirme (ay/çeyrek) kullanın.
Panonuzun en sık soracağı sorulara göre plan yapın:
due_at ve status üzerinde indeks (ve gerekirse queue/team).breached_at veya hesaplanmış ihlal bayrağı ve tarih üzerinde indeks.(customer_id, due_at) gibi birleşik indeksler.Performans burada kazanılır: depolamayı en çok kullanılan 3–5 görünüm etrafında yapılandırın.
Gerçek zamanlı ihlal tespiti büyük ölçüde şuna dayanır: dağınık, insan süreçlerini (atanma, müşteri beklemesi, yeniden açma, transfer) güvenilir SLA zamanlayıcılarına dönüştürmek.
Hangi olayların SLA saatini kontrol ettiğini tanımlayarak başlayın. Yaygın desenler:
Bu olaylardan bir vade zamanı hesaplayın. Katı SLA'lar için bu “created_at + 2 saat” olabilir. Mesai saatlerini dikkate alan SLA'lar için “2 iş saati” gerekir; bu da bir takvim gerektirir.
Her SLA kuralının tutarlı şekilde cevaplayabileceği küçük bir takvim modülü oluşturun:
Tüm tatilleri, çalışma saatlerini ve zaman dilimlerini tek bir yerde tutun ki her kural aynı mantığı kullansın.
Bir vade zamanınız olduğunda, kalan süreyi hesaplamak basittir: due_time - now (uygulamaya göre iş dakikasıysa iş dakikası olarak). Sonra “15 dakika içinde vade”, “SLA’nın %10’undan az kaldı” gibi ihlal riski eşikleri tanımlayın. Bu, aciliyet rozeti ve uyarı yönlendirmesini besler.
Şunlardan birini seçebilirsiniz:
Pratik hibrit: doğruluk için olay odaklı güncellemeler + zaman bazlı eşik geçişlerini yakalamak için dakikalık tick.
Uyarılar SLA izlemeyi operasyonel hale getirir. Amaç “daha fazla bildirim” değil—doğru kişiyi doğru eylemi almaya yönlendirmektir.
Küçük bir uyarı seti kullanın ve her birinin amacı net olsun:
Her türü farklı aciliyet ve teslim kanalına eşleyin (sohbet uyarıları risk için, paging onaylanmış ihlaller için vb.).
Yönlendirme veri odaklı olmalı, sabit kodlanmış değil. Basit bir kurallar tablosu kullanın: servis → sahip ekip, sonra modifiye edin:
Bu, herkesi bilgilendirmek yerine sahipliği görünür kılar.
Olay müdahalesi sırasında SLA durumu hızlıca değişebilir. Şu anahtarlarla deduplike yapın: (ticket_id, sla_rule_id, alert_type) ve şunları uygulayın:
Ayrıca birden fazla uyarıyı periyodik özet halinde paketlemeyi düşünün.
Her bildirim “ne, ne zaman, kim, şimdi ne yapmalı” sorusunu yanıtlamalı:
Eğer bir kişi bunu okuyup 30 saniye içinde harekete geçemiyorsa, uyarının daha iyi bir bağlama ihtiyacı vardır.
İyi bir SLA panosu grafiklerden çok bir kişinin bir dakika içinde ne yapması gerektiğine karar vermesine yardımcı olur. UI’yı üç sorunun etrafında tasarlayın: Ne risk altında? Neden? Hangi eylem?
Dört basit görünümle başlayın, her birinin net bir amacı olsun:
Varsayılan görünümü yakında ihlal olacaklara odaklı tutun; önleme burada gerçekleşir.
Kullanıcılara gerçek sahiplik ve triaj kararlarına denk gelen küçük bir filtre seti verin:
Filtreleri kullanıcı başına yapışkan (sticky) tutun ki her ziyaret yeniden yapılandırmasınlar.
“Yakında ihlal olacaklar” listesindeki her satır kısa, sade bir açıklama içermeli, örneğin:
Bir “Detaylar” çekmecesi ekleyin; SLA durum değişikliklerinin zaman çizelgesini (başladı, duraklatıldı, devam etti, ihlal) göstererek kullanıcının hesaplamaya güvenmesini sağlayın.
Varsayılan iş akışını şu şekilde tasarlayın: incele → aç → işlem yap → onayla.
Her öğe, kaynağa atlayan eylem butonlarına sahip olmalı:
Hızlı eylemler (ata, öncelik değiştir, not ekle) sunacaksanız, bunları yalnızca tutarlı şekilde uygulayabileceğiniz yerlerde gösterin ve değişiklikleri denetleyin.
Gerçek zamanlı bir SLA izleme uygulaması hızla performans, olaylar ve müşteri etkisi için bir kayıt sistemi haline gelir. İlk günden üretim sınıfı yazılım gibi davranın: kim ne yapabilir sınırlandırın, müşteri verilerini koruyun ve verinin nasıl saklandığını/silindiğini belgelendirin.
Küçük, net bir izin modeliyle başlayın ve gerektiğinde genişletin. Yaygın bir kurulum:
İzinleri iş akışlarıyla hizalayın. Örneğin, bir operator olay durumunu güncelleyebilir, ama sadece admin SLA zamanlayıcılarını veya eskalasyon kurallarını değiştirebilir.
SLA izleme genellikle müşteri tanımlayıcıları, sözleşme seviyeleri ve bilet içeriği içerir. Maruziyeti azaltın:
Entegrasyonlar sıkça zayıf nokta olur:
Ay başında çok tarih birikmeden önce kuralları koyun:
Bu kuralları yazılı hale getirin ve UI’da yansıtın ki ekip sistemin neyi tuttuğunu ve ne kadar süre tuttuğunu bilsin.
SLA izleme uygulamasını test etmek “UI yükleniyor mu”dan çok “zamanlayıcılar, duraklamalar ve eşikler sözleşmenizin beklediği gibi her seferinde tam olarak hesaplanıyor mu” sorusudur. Küçük bir hata (zaman dilimleri, mesai saatleri, eksik olaylar) gürültülü uyarılara veya daha kötüsü kaçırılmış ihlallere yol açabilir.
SLA kurallarınızı uçtan uca simüle edilebilecek somut senaryolara çevirin. Normal akışların yanında rahatsız edici kenar durumlarını da dahil edin:
Hesaplama mantığınızın gerçek operasyonel karmaşıklık altında stabil olduğunu kanıtlayın.
Yeniden oynatılabilir olay fişekleri oluşturun: mantık değiştiğinde ingest ve hesaplama üzerinden yeniden çalıştırılabilen küçük bir “olay zaman çizelgeleri” kitaplığı. Bu, hesaplamayı zaman içinde doğrulamaya ve regresyonları önlemeye yardımcı olur.
Fişekleri Git’te versiyonlayın ve beklenen çıktıları (kalan süre, ihlal anı, duraklama pencereleri, uyarı tetiklemeleri) dahil edin.
SLA monitörünü diğer üretim sistemleri gibi ele alın ve kendi sağlık sinyallerini ekleyin:
Panonuz “yeşil” gösterirken olaylar takılı kalıyorsa güven hızla gider.
Yinelenen hata modları için kısa, net bir runbook yazın: takılı tüketiciler, şema değişiklikleri, üst sistem kesintileri ve backfill. Olayları güvenle yeniden oynatma ve zamanlayıcıları yeniden hesaplama adımlarını (hangi dönem, hangi tenantlar, çift uyarı riskini nasıl önlersiniz) ekleyin. Bunu dahili doküman hub'ınıza veya /runbooks/sla-monitoring benzeri basit bir sayfaya bağlayın.
Bir SLA izleme uygulamasını teslim etmek, onu bir ürün gibi ele aldığınızda en kolaydır. Minimum uygun sürüm (MVP) ile başlayın: ingest → değerlendirme → uyarı → birinin gerçekten harekete geçtiğini doğrulama döngüsünü kanıtlayın.
Bir veri kaynağı, bir SLA türü ve temel uyarılar seçin. Örneğin, tek bir biletleme sisteminden “ilk yanıt süresi”ni izleyin ve saat dolmadan önce uyarı gönderin. Bu, kapsamı dar tutar ve zaman damgaları, zaman pencereleri ve sahiplik gibi zor kısımları doğrular.
MVP stabil olduğunda küçük adımlarla genişleyin: önce ikinci bir SLA türü ekleyin (çözüm süresi), sonra ikinci veri kaynağı, sonra daha zengin iş akışları.
Erken dev, staging ve production ortamlarını kurun. Staging, prod konfigürasyonlarını (entegrasyonlar, planlar, eskalasyon yolları) gerçekçi şekilde yansıtmalı ama gerçek yanıtlayıcıları bildirmemeli.
Feature flag kullanın:
Koder.ai gibi bir platformla hızlı inşa ediyorsanız, snapshot ve rollback özellikleri pilot aşamasında faydalı olur.
Kısa, pratik kurulum dökümanları yazın: “Veri kaynağını bağla”, “Bir SLA oluştur”, “Bir uyarıyı test et”, “Bildirim aldığınızda ne yapmalı?”. Bu dokümanları ürünün yanında, ör. /docs/sla-monitoring benzeri bir yerde bulun.
İlk benimsemeden sonra güveni artıran ve gürültüyü azaltan iyileştirmeleri önceliklendirin:
İterasyonları gerçek olaylara göre yapın: her uyarı size otomatikleştirecek, netleştirecek veya kaldıracak bir şey öğretmeli.
Bir SLA izleme hedefi şuna benzer ölçülebilir bir ifadedir:
Bunu test edilebilir bir hedef olarak yazın: “Potansiyel ihlalleri X saniye içinde tespit et ve nöbetçi Y dakika içinde bilgilendir.”
“Gerçek zaman” tanımını teknikten çok ekibinizin yanıt verebilme kapasitesine göre yapın.
Anahtar nokta: bir (event → hesaplama → uyarı/pano) belirleyin ve tasarımı buna göre yapın.
Öncelikle müşteriyle sözleşme gereği gerçekten ihlal edilebilecek taahhütleri izleyin (ve gerekirse kredi/ceza riski olanları):
Birçok ekip ayrıca SLA'dan daha sıkı bir iç izler. Hem operasyonel erken uyarı hem de sözleşmesel raporlama için her ikisini de saklayıp gösterin.
SLA hatalarının çoğu tanım hatalarından gelir. Açıkça belirleyin:
Bu kuralları deterministik şekilde kodlayın ve test etmek için örnek zaman çizelgeleri koleksiyonu tutun.
Tutarlı bir takvim kural seti belirleyin:
Tek bir takvim modülü uygulayın ve şu soruları cevaplayabilsin:
Alan adı olarak her alan için bir “kayıt sistemi” seçin ve sistemler çeliştiğinde hangisinin galip geleceğini belgeleyin.
Tipik kaynaklar:
Gerçek zamanlı için tercih edin; eksik olayları telafi için kullanın.
En azından SLA saatini başlatan, durduran veya değiştiren olayları yakalayın:
Ayrıca iş takvimindeki değişiklikler, zaman dilimi güncellemeleri ve tatil takvimi gibi “insanların unutabileceği” olayları da planlayın—bunlar herhangi bir aktivite olmadan vade zamanını değiştirebilir.
Basit beş bloklu bir boru hattı kullanın:
Aciliyete göre her ikisini birden kullanın:
Güçlü bir hibrit: doğruluk için olay tabanlı güncellemeler + eşik geçişlerini yakalamak için dakikada bir tick.
Uyarıları bir iş akışı olarak yönetin, yayın değil:
Ingest katmanına SLA mantığı koymayın ve panolarda ağır hesaplamalar yapmayın. İlk başta tek bölge, minimum ortamla başlayın; ölçeği sonra ekleyin.
(work_item_id, sla_rule_id, alert_type) ile çoğaltmayı engelleyin ve sadece durum geçişlerinde, kısa bir soğuma penceresiyle gönderin.Her uyarı, sahibi/nöbetçi, vade zamanı/kalan süre, sonraki eylem ve /tickets/{id} ile /sla/tickets/{id} gibi referanslar içermelidir.