---
title: 'Olay Sonrası İnceleme'
source: 'https://academia.sh/tr/kurslar/devops-gozlemlenebilirlik/olay-sonrasi-inceleme'
course: 'Gözlemlenebilirlik ve İşletim'
language: tr
updated: '2026-08-17T18:09:05+00:00'
license: 'CC BY-SA 4.0'
---

# Olay Sonrası İnceleme

Eylem maddesinin izlenmesinin ölçülmesi: 18 dönemde incelemesiz koşumun 48 olay ve %90 tekrar bırakması, kök neden kişi yazıldığında 96 maddenin %84'ünün 6,9 günde kapanmasına karşılık yalnız 15'inin sistemsel düzeltme olması ve tekrarın %84'te kalması, süreç yazıldığında 75 maddenin 42'sinin sistemsel çıkıp olayın 25'e inmesi, takip bırakıldığında 61 sistemsel maddenin 46'sının hiç kapanmayıp yinelenen olay oranının %84'e ve yineleme kesintisinin 1105 dakikaya çıkması, sekiz sorudan yedisinin 76.800 baytla yanıtlanıp sekizincisinin hiçbir kayıt katmanında bulunmaması.

Önceki ders çalışma yordamının kendisini saydı: adım sayısı, karar noktası ve eskimiş adım. Yordam
yazıldı, olay kapandı, hat açıldı. Sonrasında hiç sorulmayan bir soru kaldı: aynı olay bir daha
olacak mı, olmaması için ne yapıldı ve o iş bitti mi.

Olay sonrası çözümlemenin kendisi M16/K07'de ölçüldü. Burada ölçülen incelemenin **çıktısı** değil,
çıktının **izlenmesidir**. Ölçü şudur: bir dönemde kaç eylem maddesi açıldı, kaçı kapandı, kapanma
ne kadar sürdü ve **kapanmayan madde kaç kez aynı olayı yeniden üretti**. Suçsuz incelemenin de
ölçülebilir bir karşılığı vardır: kök neden **kişi** olarak yazıldığında ve **süreç** olarak
yazıldığında kaç sistemsel düzeltme çıkıyor.

## Soru Kümesi ve Kayıt Katmanları

Örnek yine kurgu **bölgesel ölçüm ağı**dır; sayaç okuma toplayıcısı, doğrulayıcı, faturalama ve iş
emri servisleri. Olay geçmişi de inceleme kütüğü de kurgudur.

**OY19:** on sekiz dönem koşulur, dönem 30 gündür; beş neden sınıfının her birinin sabit bir günlük
olay olasılığı ve sabit bir kesinti dakikası vardır. **OY20:** her olay üç gün sonra incelenir,
inceleme beş kişi-saat tutar. **OY21:** her inceleme üç eylem maddesi açar; kök neden ya kişi ya
süreç olarak yazılır ve yazım, madde türlerinin payını belirler — kişide hatırlatma 0,55, belge
0,30, sistemsel 0,15; süreçte sistemsel 0,55, belge 0,25, hatırlatma 0,20. **OY22:** madde türü
kapanma olasılığını, kapanma süresini ve kapanan madde başına kişi-saati belirler; takip çarpanı
kapanma olasılığını ölçekler, 0,98'de tavanlanır. **OY23:** kapanan bir **sistemsel** madde, kendi
sınıfının günlük olay olasılığını 0,70 ile çarpar; belge ve hatırlatma hiçbir olasılığı
değiştirmez. **OY24:** *tekrar*, sınıfın daha önce olay üretmiş olmasıdır; *yinelenen olay*,
sınıfın hiç kapanmayacak bir sistemsel maddesi açıkta beklerken sınıfın yeniden olay üretmesidir.
Tohum 20260812'dir ve bütün zarlar baştan atılır, böylece beş koşum aynı diziyi paylaşır.

Olaylar, incelemeler ve maddeler süreç içi bir **modeldir**; gerçek bir olay kaydı yoktur.

```js
// inceleme/model.mjs — olay sonrasi inceleme modeli: gercek bir olay kaydi yok; gunler,
// olaylar ve eylem maddeleri veri yapisidir. Uretec kendi yazilir, tohum gorunur.

export const DONEM = 30, DONEM_SAY = 18, GUN = DONEM * DONEM_SAY;
export const TOHUM = 20260812, MADDE = 3, GECIKME = 3, DUSUS = 0.70;
// neden sinifi: ad, gunluk olay olasiligi, kesinti dakikasi
export const SINIF = [["yapilandirma kaymasi", 0.030, 25], ["kapasite", 0.022, 40],
  ["bagimlilik zaman asimi", 0.026, 18], ["veri kalitesi", 0.020, 55],
  ["toplu is penceresi", 0.016, 70]];
// madde turu: kapanma olasiligi, kapanma gunu, kapanan madde basina kisi-saat
export const TUR = { sistemsel: [0.55, 25, 12], belge: [0.80, 8, 3], hatirlatma: [0.95, 2, 0.5] };
// kok neden kisi ya da surec olarak yazildiginda acilan madde turlerinin paylari
export const KARISIM = { kisi: [["hatirlatma", 0.55], ["belge", 0.30], ["sistemsel", 0.15]],
  surec: [["sistemsel", 0.55], ["belge", 0.25], ["hatirlatma", 0.20]] };
export const INCELEME_SAAT = 5;                    // olay basina inceleme kisi-saati

export function uretec(tohum) {                    // dogrusal eslesmeli uretec
  let x = tohum >>> 0;
  return () => ((x = (x * 1664525 + 1013904223) >>> 0) / 2 ** 32);
}

// butun zarlar bastan atilir: kosumlar ayni olay ve madde dizisini paylasir
const Z = (() => { const z = uretec(TOHUM);
  return Array.from({ length: GUN * SINIF.length }, () => ({ olay: z(),
    madde: Array.from({ length: MADDE }, () => ({ tur: z(), kapanma: z(), sure: z() })) })); })();
const sec = (pay, p) => { let e = 0; for (const [ad, y] of pay) { e += y; if (p < e) return ad; } };

export function kos({ inceleme = true, yazim = "surec", takip = 1.0 } = {}) {
  const carpan = SINIF.map(() => 1), acikSis = SINIF.map(() => 0);   // sinif basina durum
  const oluSis = SINIF.map(() => 0), gorulen = SINIF.map(() => 0), olaylar = [], maddeler = [];
  for (let g = 0; g < GUN; g++) {
    for (const m of maddeler)                      // kapanis gunu gelen madde kapanir
      if (m.durum === "acik" && m.kapanis === g) {
        m.durum = "kapandi";
        if (m.tur === "sistemsel") { carpan[m.sinif] *= DUSUS; acikSis[m.sinif]--; }
      }
    for (let s = 0; s < SINIF.length; s++) {
      const z = Z[g * SINIF.length + s];
      if (z.olay >= SINIF[s][1] * carpan[s]) continue;
      // tekrar: sinif daha once olay uretti. yinelenen: sinifin hic kapanmayacak
      // sistemsel maddesi acikta beklerken ayni sinif yeniden olay uretti
      olaylar.push({ g, sinif: s, kesinti: SINIF[s][2],
        tekrar: gorulen[s]++ > 0, yinelenen: oluSis[s] > 0 });
      if (!inceleme) continue;
      for (const d of z.madde) {
        const tur = sec(KARISIM[yazim], d.tur), [kap, sure] = TUR[tur];
        const kapanir = d.kapanma < Math.min(0.98, kap * takip);
        const gecen = Math.round(sure * (0.6 + 0.8 * d.sure));
        maddeler.push({ sinif: s, tur, acilis: g + GECIKME, durum: "acik",
          kapanis: kapanir ? g + GECIKME + gecen : null, gecen: kapanir ? gecen : null });
        if (tur === "sistemsel") { acikSis[s]++; if (!kapanir) oluSis[s]++; }
      }
    }
  }
  return { olaylar, maddeler };
}

const ort = (a) => (a.length ? (a.reduce((s, v) => s + v, 0) / a.length).toFixed(1) : "-");
const yuz = (a, b) => (b ? (100 * a / b).toFixed(0) + "%" : "-");

export function olc(ayar) {
  const { olaylar, maddeler } = kos(ayar), M = maddeler.length;
  const kapanan = maddeler.filter((m) => m.durum === "kapandi");
  const yin = olaylar.filter((o) => o.yinelenen), tek = olaylar.filter((o) => o.tekrar);
  const dk = (a) => a.reduce((s, o) => s + o.kesinti, 0);
  const sis = maddeler.filter((m) => m.tur === "sistemsel");
  return { olay: olaylar.length, kesinti: dk(olaylar), acilan: M, kapanan: kapanan.length,
    tekrar: tek.length, tekrarOran: yuz(tek.length, olaylar.length), tekrarKesinti: dk(tek),
    yinelenen: yin.length, yinOran: yuz(yin.length, olaylar.length), yinKesinti: dk(yin),
    donemMadde: (M / DONEM_SAY).toFixed(1), kapanmaOran: yuz(kapanan.length, M),
    kapanmaSure: ort(kapanan.map((m) => m.gecen)), sis: sis.length, sisPay: yuz(sis.length, M),
    sisKapanan: sis.filter((m) => m.durum === "kapandi").length,
    saat: olaylar.length * (ayar.inceleme === false ? 0 : INCELEME_SAAT)
      + kapanan.reduce((s, m) => s + TUR[m.tur][2], 0) };
}
```

Ölçüm dosyası sekiz soruluk bir küme kurar ve her sorunun yanıtı için gereken kayıt alanlarını
yazar. Katmanlar üst üste binerek eklenir.

```js
// inceleme/olc.mjs — inceleme sorulari hangi kayit katmaniyla yanitlaniyor, eylem maddesi
// izlendiginde ne degisiyor, kapanmayan madde kac olayi yeniden uretiyor.
import { DONEM, DONEM_SAY, SINIF, TOHUM, MADDE, olc } from "./model.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const t0 = process.hrtime.bigint();

// soru kumesi: her sorunun yanitlanmasi icin gereken kayit alanlari
const SORU = [
  ["olay ne zaman oldu, ne kadar surdu", ["olay"]],
  ["kok neden ne yazildi", ["not"]],
  ["kok neden kisi mi surec mi yazildi", ["yazim"]],
  ["incelemeden kac madde acildi", ["kutuk"]],
  ["maddelerin kaci kapandi, ne surede", ["kutuk", "kapanis"]],
  ["kisi yazimi kac sistemsel duzeltme uretti", ["yazim", "kutuk"]],
  ["kapanmayan madde hangi olayi yeniden uretti", ["kutuk", "bag"]],
  ["maddenin kapanmasi hangi kesintiyi onledi", ["karsiOlgu"]],
];
// kayit katmani: ad, actigi alanlar, birim bayt, birimin sayildigi nesne
const KATMAN = [["olay kaydi", ["olay"], 240, "olay"], ["+ inceleme notu", ["not"], 1800, "olay"],
  ["+ yazim alani", ["yazim"], 24, "olay"], ["+ madde kutugu", ["kutuk", "kapanis"], 320, "madde"],
  ["+ madde-sinif bagi", ["bag"], 16, "madde"]];

const K = { "inceleme yok": { inceleme: false }, "kisi yazimi": { yazim: "kisi" },
  "surec yazimi": { yazim: "surec" }, "surec + takip yok": { yazim: "surec", takip: 0.5 },
  "surec + haftalik takip": { yazim: "surec", takip: 1.35 } };
const R = Object.fromEntries(Object.entries(K).map(([a, y]) => [a, olc(y)]));
const T = R["surec yazimi"];

console.log(`${DONEM_SAY} donem x ${DONEM} gun, ${SINIF.length} neden sinifi, ` +
  `inceleme basina ${MADDE} madde; tohum ${TOHUM}`);

console.log("\n1. hangi kayit katmani kac soruyu yanitliyor (surec yazimi kosumu)");
const A = [-21, 8, 13, 10, 12];
yaz(A, "katman", "birim", "kumul. bayt", "yanit/8", "bayt/soru");
let alan = [], bayt = 0;
for (const [ad, ac, b, birim] of KATMAN) {
  alan = alan.concat(ac);
  bayt += b * (birim === "olay" ? T.olay : T.acilan);
  const y = SORU.filter(([, g]) => g.every((f) => alan.includes(f))).length;
  yaz(A, ad, birim, bayt, `${y}/8`, Math.round(bayt / y));
}
console.log("  yanitsiz: " + SORU.filter(([, g]) => g.includes("karsiOlgu")).map(([s]) => s)
  .join("") + " — karsi olgu, hicbir katmanda yok");

console.log("\n2. eylem maddesinin izlenmesi ve madde turu");
const B = [-24, 6, 8, 10, 9, 9, 8, 11, 10];
yaz(B, "kosum", "olay", "acilan", "donem/md", "kapanan", "kapanma", "gun", "sistemsel", "sis. pay");
for (const [ad, r] of Object.entries(R))
  yaz(B, ad, r.olay, r.acilan, r.donemMadde, r.kapanan, r.kapanmaOran, r.kapanmaSure,
    `${r.sis} (${(r.sis / r.olay).toFixed(2)})`, r.sisPay);   // sistemsel: sayi (olay basina)

console.log("\n3. kapanmayan madde ve yinelenen olay");
const C = [-24, 9, 8, 11, 8, 14, 17];
yaz(C, "kosum", "tekrar", "oran", "yinelenen", "oran", "yin. kesinti", "kapanmayan sis.");
for (const [ad, r] of Object.entries(R))
  yaz(C, ad, r.tekrar, r.tekrarOran, r.yinelenen, r.yinOran, r.yinKesinti + " dk",
    `${r.sis - r.sisKapanan}/${r.sis}`);

console.log("\n4. incelemenin bedeli ve yanitsiz sorunun karsiligi");
const D = [-24, 11, 11, 11, 14];
yaz(D, "kosum", "kisi-saat", "saat/olay", "kesinti", "tekrar dk");
for (const [ad, r] of Object.entries(R))
  yaz(D, ad, r.saat.toFixed(0), (r.saat / r.olay).toFixed(1), r.kesinti + " dk",
    `${r.tekrarKesinti} (${(100 * r.tekrarKesinti / r.kesinti).toFixed(0)}%)`);

const ms = Number(process.hrtime.bigint() - t0) / 1e6;   // ham olcum basilmaz, bant denetlenir
console.log(`\nbes kosum ve katman taramasi 2000 ms bandinda: ${ms < 2000 ? "evet" : "hayir"}`);
```

```
18 donem x 30 gun, 5 neden sinifi, inceleme basina 3 madde; tohum 20260812

1. hangi kayit katmani kac soruyu yanitliyor (surec yazimi kosumu)
katman                  birim  kumul. bayt   yanit/8   bayt/soru
olay kaydi               olay         6000       1/8        6000
+ inceleme notu          olay        51000       2/8       25500
+ yazim alani            olay        51600       3/8       17200
+ madde kutugu          madde        75600       6/8       12600
+ madde-sinif bagi      madde        76800       7/8       10971
  yanitsiz: maddenin kapanmasi hangi kesintiyi onledi — karsi olgu, hicbir katmanda yok

2. eylem maddesinin izlenmesi ve madde turu
kosum                     olay  acilan  donem/md  kapanan  kapanma     gun  sistemsel  sis. pay
inceleme yok                48       0       0.0        0        -       -   0 (0.00)         -
kisi yazimi                 32      96       5.3       81      84%     6.9  15 (0.47)       16%
surec yazimi                25      75       4.2       52      69%    15.5  42 (1.68)       56%
surec + takip yok           38     114       6.3       38      33%    14.0  61 (1.61)       54%
surec + haftalik takip      23      69       3.8       60      87%    16.5  40 (1.74)       58%

3. kapanmayan madde ve yinelenen olay
kosum                      tekrar    oran  yinelenen    oran  yin. kesinti  kapanmayan sis.
inceleme yok                   43     90%          0      0%          0 dk              0/0
kisi yazimi                    27     84%          8     25%        335 dk             5/15
surec yazimi                   20     80%         14     56%        593 dk            16/42
surec + takip yok              33     87%         32     84%       1105 dk            46/61
surec + haftalik takip         18     78%          8     35%        433 dk             8/40

4. incelemenin bedeli ve yanitsiz sorunun karsiligi
kosum                     kisi-saat  saat/olay    kesinti     tekrar dk
inceleme yok                      0        0.0    1791 dk    1583 (88%)
kisi yazimi                     376       11.7    1173 dk     965 (82%)
surec yazimi                    480       19.2     966 dk     758 (78%)
surec + takip yok               404       10.6    1353 dk    1145 (85%)
surec + haftalik takip          556       24.2     878 dk     670 (76%)

bes kosum ve katman taramasi 2000 ms bandinda: evet
```

Sayılar **ölçüm** sınıfındadır; girdileri yukarıdaki varsayımlardır.

## Sekiz Sorunun Yedisi

Birinci tablo kayıt katmanlarını soruya çevirir. Yalnız olay kaydıyla 6.000 baytta sekiz sorudan
biri yanıtlanır. İnceleme notu 51.000 bayta çıkarır ve yanıt yalnız ikiye gider — not bir alan değil
bir metindir, pahalıdır ve kendi başına sayılamaz. Yazım alanı 600 bayta üçüncü soruyu, madde
kütüğü 24.000 bayta üç soru birden açar; soru başına bayt 17.200'den 12.600'e iner. Son katman,
maddeyi neden sınıfına bağlayan 16 baytlık alandır: 1.200 bayta **kapanmayan madde hangi olayı
yeniden üretti** sorusunu açar. **En ucuz katman en geç eklenendir ve en pahalı soruyu yanıtlar.**

Sekizinci soru hiçbir katmanda yoktur: bu maddenin kapanması hangi kesintiyi önledi. Karşılığı
gözlenmemiş bir durumdur, kayıt genişletilerek yanıtlanamaz. Kütüğün verdiği en yakın şey
"kapanmayan madde şu kadar olay üretti"dir — önlenen değil, önlenmeyen sayılır.

## Kapanma Oranı Neyi Ölçmez

İkinci tablo ilk bakışta kişi yazımını iyi gösterir: 96 madde açılır, 81'i kapanır (%84) ve kapanma
6,9 gün sürer — beş koşumun en hızlısı. Süreç yazımında 75 maddenin 52'si kapanır (%69), kapanma
15,5 gün sürer. Son iki sütun farkı söyler. Kişi yazımının 96 maddesinden yalnız **15'i** sistemsel düzeltmedir
(%16); geri kalanı hatırlatma ve belgedir. Süreç yazımının 75 maddesinin **42'si** sistemseldir
(%56); olay başına 0,47'ye karşı 1,68. Hatırlatma iki günde kapanır ve hiçbir olasılığı
değiştirmez; sistemsel düzeltme yirmi beş günde kapanır ve sınıfın olay olasılığını 0,70 ile çarpar.
**Kapanma oranı, kapanan şeyin ne olduğunu ölçmez.**

Sonucu üçüncü ve dördüncü tablo verir. Kişi yazımında 32 olay ve 1173 dakika kesinti ölçülür; tekrar
oranı %84'tür — incelemesiz koşumun %90'ından altı puan aşağıda. Süreç yazımında olay 25'e, kesinti
966 dakikaya, tekrar %80'e iner. Suçsuzluğun ölçülebilir karşılığı budur: kişi yazıldığında maddeler
açılır, hızla kapanır ve **sistem aynı kalır**.

## Açılan Madde ile İzlenen Madde

Üçüncü koşum takibi bırakır: kök neden yine süreç yazılır, kapanma olasılığı yarıya iner. Açılan
madde düşmez, tersine 75'ten 114'e çıkar — daha çok olay olur, daha çok inceleme yapılır. Kapanan
38'de kalır (%33). Kritik sayı sistemsel maddelerdedir: 61 düzeltme açılır, **46'sı hiç kapanmaz**.
Yinelenen olay oranı %84'e, yineleme kesintisi 1105 dakikaya çıkar, toplam kesinti 966'dan 1353
dakikaya gider.

Haftalık takip tersini yapar: 69 maddenin 60'ı kapanır (%87), 40 sistemsel maddenin 32'si kapanır,
açıkta yalnız 8 kalır. Yinelenen olay 14'ten 8'e, toplam kesinti 878 dakikaya iner. Bedeli dördüncü
tablodadır: kişi-saat 480'den 556'ya, olay başına 24,2 kişi-saate çıkar — beş koşumun en pahalısı.
**Ödenen şey inceleme değil, incelemenin izlenmesidir.**

Aynı tabloda incelemesiz koşum bedava görünür: sıfır kişi-saat. Karşılığı 1791 dakikadır ve bunun
1583 dakikası (%88) tekrar eden olaylardandır.

## Farkın Saklandığı Yer

Fark **açılan madde ile kapanan sistemsel madde arasında** saklıdır: takipsiz koşumda kütükte 114
satır görünür ve dönem başına 6,3 madde raporlanır — beş koşumun en yüksek üretimi. Aynı koşumda 61
sistemsel maddenin 46'sı hiç kapanmaz ve olayların %84'ü kapanmayan bir madde açıkta beklerken olur.
Bildirilmiş kısım açılan madde sayısı, bildirilmemiş kısım maddenin türü ve durumudur.

Kişi yazımında kapanmayan sistemsel madde yalnız 5'tir ve yinelenen olay oranı %25 ile düşük
görünür. Bu iyi bir haber değildir — açılmış sistemsel madde yalnız 15 olduğu için kapanmayan madde
yüzünden yineleyen olay da sayılamaz. **Hiç açılmamış madde, kapanmamış madde olarak da görünmez.**
Oradaki gerçek sayı tekrar oranıdır: %84.

## Özet

- Sekiz sorudan yedisi beş kayıt katmanı ve 76.800 baytla yanıtlanır (soru başına 10.971 bayt);
  maddeyi neden sınıfına bağlayan 16 baytlık son alan, 1.200 bayta en pahalı soruyu açar.
- Yanıtsız kalan soru "bu maddenin kapanması hangi kesintiyi önledi"dir; karşı olgu hiçbir
  katmanda yoktur.
- Kök neden kişi yazıldığında 96 maddenin %84'ü ve en hızlısı (6,9 gün) kapanır, ama yalnız 15'i
  sistemsel düzeltmedir (olay başına 0,47) ve tekrar oranı %84'te kalır — incelemesiz koşumun
  %90'ına yakın. Süreç yazıldığında 75 maddenin 42'si sistemseldir (1,68) ve olay 25'e iner.
- Takip bırakıldığında 114 madde açılır ama yalnız 38'i kapanır; 61 sistemsel maddenin 46'sı hiç
  kapanmaz, yinelenen olay oranı %84'e ve yineleme kesintisi 1105 dakikaya çıkar.
- Haftalık takip 556 kişi-saat karşılığında kesintiyi 878 dakikaya indirir; incelemesiz koşumun
  bedeli sıfır kişi-saat ve 1791 dakikadır.

## Sonraki Adım

Madde kapanınca olay olasılığı düştü, ama hepsi olay olduktan sonra çalıştı: sistemsel düzeltme
yirmi beş günde kapanırken aynı sınıf yeniden olay üretmeye devam etti. Değişimin hızını **olaydan
önce** düzenleyen bir kural hiç konmadı. Sonraki ders hata bütçesini böyle bir kurala çevirir: bütçe
tükendiğinde yeni dağıtım durur — dağıtım sıklığı ne olur, kuyrukta ne birikir, bütçe ne kadar
sürede geri kazanılır ve tek bir büyük olay hattı aylarca durdurduğunda kural nasıl gevşetilir.
