Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-21.03

Logs, metrics ve traces

Logs, metrics ve traces’ı operation sonucu ve observation pipeline’dan ayrı değerlendir.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Signal production

  1. Public operation

    Public business service Tea note girdisini bilir. Instrumentation, yerel exporter ve observer henüz completion record almamıştır; bütün işlemler yerel adapter kapsamındadır.

    Public business service
    Public input known
    Local instrumentation
    Signals not recorded
    Local export adapter
    Local sink empty
    Observer projection
    Observer has no record
  2. Business result

    Own public-read adapter status200 ve Tea title üretir; telemetry delivery business completion ile aynı olay değildir.

    Public business service
    Tea result completed
    Local instrumentation
    Signals not recorded
    Local export adapter
    Local sink empty
    Observer projection
    Observer has no record
  3. Metric increment

    Selected operation/status counter local input’tan artar; metric aggregate individual log record’un yerine geçmez.

    Public business service
    Tea result completed
    Local instrumentation
    Counter incremented
    Local export adapter
    Local sink empty
    Observer projection
    Observer has no record
  4. Context relation

    Supplied logical spans shared traceAlias ve exact parentAlias relation taşır; measured network trace değildir.

    Public business service
    Tea result completed
    Local instrumentation
    Root / child recorded
    Local export adapter
    Local sink empty
    Observer projection
    Observer has no record
  5. Redact / project

    Known fake authorization/session aliases output allowlist dışında bırakılır; source dictionary değişmez.

    Public business service
    Tea result completed
    Local instrumentation
    Allowlisted log ready
    Local export adapter
    Local sink empty
    Observer projection
    Observer has no record
  6. Local stream write

    Own structured record StringIO stream’e yazılır; gerçek collector veya remote telemetry packet gönderilmez.

    Public business service
    Tea result completed
    Local instrumentation
    Allowlisted log ready
    Local export adapter
    Own stream written
    Observer projection
    Observer has no record
  7. Independent observe

    Independent JSON parser event/operation/correlation fields’ı okur; seed aliases output’ta bulunmaz.

    Public business service
    Tea result completed
    Local instrumentation
    Allowlisted log ready
    Local export adapter
    Own stream written
    Observer projection
    Parsed public record

Unsampled trace

  1. Sampling decision

    Bu dalda sampled=false girdisi seçilmiştir. Bu karar business operation’ın yapılmadığını söylemez; completion ve metric ayrıca izlenir.

    Public business service
    Public input known
    Local instrumentation
    sampled=false supplied
    Local export adapter
    Local sink unchanged
    Observer projection
    No request trace
  2. Read completes

    Public-read adapter normal status200 üretir; trace selection bu finite result’u değiştirmez.

    Public business service
    Tea result completed
    Local instrumentation
    sampled=false supplied
    Local export adapter
    Local sink unchanged
    Observer projection
    No request trace
  3. Counter still counts

    Own request counter sampled=false operation’ı da sayar; metrics and trace inclusion ayrı decisions’dır.

    Public business service
    Tea result completed
    Local instrumentation
    Metric +1 recorded
    Local export adapter
    Local sink unchanged
    Observer projection
    No request trace
  4. Trace omitted

    Declared sampling nedeniyle retained trace0 kalır; omitted trace synthetic failure event’i değildir.

    Public business service
    Tea result completed
    Local instrumentation
    Trace deliberately absent
    Local export adapter
    Local sink unchanged
    Observer projection
    No request trace
  5. Knowledge boundary

    Observer no-trace ile no-event’i eşitlemez; verified sampling reason business completion’ın yanında tutulur.

    Public business service
    Tea result completed
    Local instrumentation
    Trace deliberately absent
    Local export adapter
    Local sink unchanged
    Observer projection
    No trace; event occurred

Exporter failure

  1. Read input known

    Bu dal public read ve best-effort diagnostics policy ile başlar. Mandatory audit için aynı devam kararı verilmiş sayılmaz.

    Public business service
    Public input known
    Local instrumentation
    Record not produced
    Local export adapter
    Failing sink supplied
    Observer projection
    Observer empty
  2. Business completes

    Public note read successful result üretir; logging sink failure business data mutation veya permission verdict değildir.

    Public business service
    Business success200
    Local instrumentation
    Record not produced
    Local export adapter
    Failing sink supplied
    Observer projection
    Observer empty
  3. Record projection

    Only public allowlisted fields local record’a bağlanır; raw seeded aliases sensitive output’a dahil edilmez.

    Public business service
    Business success200
    Local instrumentation
    Public record ready
    Local export adapter
    Failing sink supplied
    Observer projection
    Observer empty
  4. Exporter failure

    Own failing sink OSError üretir; actual local exception gözlenir ama remote exporter outage iddia edilmez.

    Public business service
    Business success200
    Local instrumentation
    Public record ready
    Local export adapter
    Own OSError observed
    Observer projection
    Observer empty
  5. Visibility missing

    Observer exported record0 ve visibilityConfirmed=false taşır; business success sağlık garantisine çevrilmez.

    Public business service
    Business success200
    Local instrumentation
    Public record ready
    Local export adapter
    Own OSError observed
    Observer projection
    export0 / visibility gap
  6. Scope / policy

    Seçilen public-read policy business sonucunu korur. Bu karar compliance audit’in eksiksizliği için genel garanti sağlamaz.

    Public business service
    Success / diagnostic gap
    Local instrumentation
    Public record ready
    Local export adapter
    Own OSError observed
    Observer projection
    export0 / visibility gap

Missing signal

  1. No observation

    Bu dal application event, exporter sonucu ve güncel counter sample hakkında kanıt sağlamaz. Observer bu alanları unknown tutar.

    Public business service
    Operation unobserved
    Local instrumentation
    No observation supplied
    Local export adapter
    Sink state unknown
    Observer projection
    Observer has no evidence
  2. Window undefined

    Empty measurement window’da error fraction undefined kalır; observation yokluğunu rate0 diye yazmayız.

    Public business service
    Operation unobserved
    Local instrumentation
    No observation supplied
    Local export adapter
    Sink state unknown
    Observer projection
    Denominator0 / undefined
  3. Health unknown

    Health unknown sonucu application’ın down veya healthy olduğunu ispatlamaz; yalnız evidence boundary’sini bildirir.

    Public business service
    Operation unobserved
    Local instrumentation
    No observation supplied
    Local export adapter
    Sink state unknown
    Observer projection
    Health unknown
  4. No event inference

    Observer no-event veya no-failure assertion üretmez; missing record authorization ve business success sağlayamaz.

    Public business service
    Operation unobserved
    Local instrumentation
    No observation supplied
    Local export adapter
    Sink state unknown
    Observer projection
    No absence proof

ROLLER · STATE · VERİ AKIŞI

Observability, instrumentation sayısından büyük bir sorudur

Observability, dışarıdan görülen signals ile sistemin içinde ne olduğunu ve belirli davranışın nedenini anlayabilmektir. Çok log satırı veya güzel dashboard tek başına yeterli değildir. Önce soru seçilir: public note okuması tamamlandı mı, hangi dependency bekledi, error hangi aşamada oluştu, observation pipeline gerçekten data aldı mı? Instrumented operation, signal semantics ve correlation bu soruya bağlanır. Telemetry sonucu authoritative business state’in yerine geçmez.

Log belirli event’in structured veya unstructured kaydıdır; timestamp, event type ve sınırlı context taşıyabilir. Metric ölçümlerin aggregate görünümünü sağlar. Request counter, error counter ve histogram aynı tür değildir. Counter cumulative artabilir; process restart ve exporter temporality’si yorumu etkiler. Gauge mevcut değeri, histogram ise değer dağılımını anlatabilir. Her raw URL veya user identifier’ı metric label yapmak cardinality maliyetini artırır. Örnekte sınırlı operation/status boyutları kullanılır; vendor tuning değeri önerilmez.

Trace operation’ları span ve parent/context ilişkileriyle bağlar. Public-read root span’ine local-note-read child span’i bağlanabilir; ortak trace context ve doğru parent ilişkisi bu bağı anlatır. Correlation identifier credential veya authorization grant değildir. trace-demo ve span-root öğretim alias’larıdır, geçerli trace wire ID’si olarak sunulmaz. Root için 10–14 aralığı 4, child için 11–13 aralığı 2 logical tick sürer. Bunlar verilen clock değerleridir; ölçülmüş latency veya production trace capture değildir.

Bir event oluşması bütün signals’da görünmesini garanti etmez

Instrumentation, sampling, local buffer, exporter ve collector/backend ayrı aşamalardır. Request gerçekleşmişken sampling kararı nedeniyle trace tutulmamış olabilir. Metrics ayrı instrumentation yolu üzerinden aynı request’i sayabilir. Head sampling erken karar verdiği için sonradan oluşan her error’ı seçme garantisi vermez. Tail sampling tamamlanmış span bilgisine daha geniş bakabilir, fakat kendi buffer ve availability sınırları vardır. Örnek verilen sampled boolean’ını kullanır; gerçek OpenTelemetry sampler veya collector çalıştırmaz.

Sınırlı window üç yerel public call içerir: iki success ve bir unavailable. Metric request total 3, error total 1 olur; trace seçilen iki request için tutulur. Her request’in trace’inin görünmemesi metric total’un yanlış olduğu anlamına gelmez. Error fraction 1/3 yalnız bu denominator içindir; window, reset ve label kapsamı olmadan global error rate söylenmez. Boş window’da denominator 0 olduğunda rate tanımsız kalır. Ölçülmüş sıfır error ile hiç measurement olmaması farklıdır.

Log record’un üretilmesi, redaction’dan geçmesi, exporter’a verilmesi ve observer store’da bulunması ayrı gözlemlerdir. Normal yerel stream sonucunda public record bağımsız JSON parser ile okunur. Export failure’da yerel sink OSError verir; business success korunur ama exported record sayısı 0, visibility ise doğrulanmamış kalır. Bu public-read policy her compliance veya audit sistemi için genel izin değildir; zorunlu audit event’lerinin retention ve durability sözleşmesi ayrıca tasarlanır.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Trace yokluğu

  1. Unsampled başarılı call

    Unsampled status 200 ve businessCompleted true; metricIncrement 1, sampled false ve retainedTraces 0. Trace bulunmaması bu normal request’in gerçekleşmediğini söylemiyor.

    Diagnostic ledger
    Business complete / metric+1 / trace0
    Observation policy
    Henüz değerlendirilmedi
    Observer sonucu
    Henüz değerlendirilmedi
  2. Window denominator

    Status penceresi 200/503/200 için requestTotal 3, errorTotal 1. RetainedRequestTraces 2 sayısını denominator yaparsak scope değişir; sampling metric’ten call silmez.

    Diagnostic ledger
    Business complete / metric+1 / trace0
    Observation policy
    Error fraction1/3 / retained traces2
    Observer sonucu
    Henüz değerlendirilmedi
  3. Boş input oran değil

    Missing denominator 0 için windowRate null. Zero observation’dan error fraction 0 çıkarılmıyor; signal coverage bilinmeden healthy sonucu üretilemiyor.

    Diagnostic ledger
    Business complete / metric+1 / trace0
    Observation policy
    Error fraction1/3 / retained traces2
    Observer sonucu
    No denominator / rate null / health unknown
  4. Span ilişkisini oku

    span-child parentAlias span-root ile aynı trace-demo’ya bağlı. Logical interval 11–13, root 10–14; authored duration gerçek milliseconds veya latency değildir.

    Diagnostic ledger
    Logical parent relation / no wall-clock latency
    Observation policy
    Error fraction1/3 / retained traces2
    Observer sonucu
    No denominator / rate null / health unknown
  5. Causal iddiayı sınırlı tut

    Aynı operation adı veya timestamp yakınlığı parent context’i oluşturmaz. Trace alias ve exact parent relation kapsamı korunur; logical duration’dan production bottleneck teşhisi çıkarılmaz.

    Diagnostic ledger
    Logical parent relation / no wall-clock latency
    Observation policy
    Correlation relation ≠ full causal diagnosis
    Observer sonucu
    No denominator / rate null / health unknown
  6. Yokluğu doğru adlandır

    Verified sampling kararı known trace absence nedeni; missing observation’da böyle açıklama yok. No signal, no event veya health-success diye tek sonuca çevrilmiyor.

    Diagnostic ledger
    Logical parent relation / no wall-clock latency
    Observation policy
    Correlation relation ≠ full causal diagnosis
    Observer sonucu
    Sampling absence ≠ unexplained visibility gap

Export ve privacy

  1. Public log projection

    Fake input demo-token-alias ve demo-session-alias içeriyor. Allowlist yalnız event, operation ve correlationAlias çıkarır; raw source object değişmez.

    Diagnostic ledger
    Three exported fields / fake aliases excluded
    Observation policy
    Henüz değerlendirilmedi
    Observer sonucu
    Henüz değerlendirilmedi
  2. Redaction’ın dar kapsamı

    Known field projection bütün nested log format’ları için secret detector değildir. Trace attributes veya metric dimensions aynı filter’dan otomatik geçmez; her signal kendi data policy’sini ister.

    Diagnostic ledger
    Three exported fields / fake aliases excluded
    Observation policy
    Known-field projection / other signals separate
    Observer sonucu
    Henüz değerlendirilmedi
  3. Export sink failure

    ExportFailure businessCompleted true ve status 200 tutarken exportOk false, exportedRecords 0. Başarılı public read visibilityConfirmed true yapmaz; signal gap ayrı korunur.

    Diagnostic ledger
    Three exported fields / fake aliases excluded
    Observation policy
    Known-field projection / other signals separate
    Observer sonucu
    Business200 / export false / visibility false
  4. Policy sınırlaması

    Bu public diagnostic explicit best-effort policy kullanıyor. Mandatory security audit varsa aynı export error’ın business action’a etkisi ayrı tasarlanmalı; örnek universal fail-open kuralı değildir.

    Diagnostic ledger
    Best-effort public diagnostics only
    Observation policy
    Known-field projection / other signals separate
    Observer sonucu
    Business200 / export false / visibility false
  5. Secret toplamayı gerekçelendirme

    Correlation boşluğunu kapatmak için Authorization, session veya private body toplamak gerekmez. Fake seed values gerçek credential değildir; minimum public comparison alanları yeterli.

    Diagnostic ledger
    Best-effort public diagnostics only
    Observation policy
    Minimum fields / no raw credential collection
    Observer sonucu
    Business200 / export false / visibility false
  6. İki sonucu ayrı bildir

    Public result tamamlandı, diagnostic export başarısız. Bu kayıt server authorization veya telemetry backend teslimi üretmez; local sink error yalnız observer kapsamını daraltır.

    Diagnostic ledger
    Best-effort public diagnostics only
    Observation policy
    Minimum fields / no raw credential collection
    Observer sonucu
    Business result known / diagnostic gap retained

VARSAYIM · SINIR · KONTROL

No signal’ı no event veya healthy diye okumak

Trace bulunmamasından operation’ın gerçekleşmediği çıkarılamaz. Sampling false, eksik context, exporter failure veya retention window farklı açıklamalar olabilir. Unsampled dalında business response tamamlanır, metric artar ve retained trace sayısı 0 kalır. Request sonucu ile recording kararı ayrı tutulur; tutulmamış trace için gerçekleşmemiş failure veya success event’i üretilmez.

Metric değeri 0, instrumentation yolunun aktif ve observation window’un kapsamlı olduğu bilinmeden no-error kanıtı değildir. Boş input’tan error fraction 0 üretmek denominator bilgisini siler. Health değerlendirmesi beklenen sinyal üretimini, güncel observation’ı ve user-flow sonucunu birlikte kullanır. Missing case observer state’ini unknown tutar; dashboard veya tamamlanmış sahne işareti gerçek application health ya da caller yetkisi sağlamaz.

Daha fazla data toplamak her zaman daha iyi değildir

Request body, Authorization, session identifier veya private attribute’ları bütünüyle log’a taşımak secrets ve personal data exposure yaratabilir. Örnekte yalnız demo-token-alias ve demo-session-alias sahte değerleri vardır. Allowlist output’ta event, operation ve correlationAlias bırakırken source dictionary değişmez. Bu kontrol gerçek secret keşfi veya bütün nested log formatlarını tarayan detector değildir; yalnız verilen alanların sink’e gitmediği bağımsız olarak okunur.

Span attribute ve metric dimension da data toplar; log filter’ın diğer sinyallere otomatik uygulandığı varsayılmaz. High-cardinality identifier’lar memory, maliyet ve investigation kapsamını etkiler. Operational telemetry ile authoritative security audit aynı completeness ve retention garantilerine sahip olmayabilir. Export failure ile business sonucunu ayırmak mandatory audit gap’ini yok saymak değildir. Burada yalnız public read için açıkça seçilmiş best-effort diagnostic policy vardır.

3. Blue · Güvenli geliştirme ve savunma

Hareket olmadan bütün senaryoları oku

Signal controls

  1. Üç call envanteri

    Adapter status listesi 200/503/200; totals 3 request, 2 success ve 1 error. Counter scope bu finite window’dur; global service oranı veya SLA diye gösterilmiyor.

    Public telemetry records
    Window3 / success2 / error1
    Signal comparison
    Henüz değerlendirilmedi
    Coverage sonucu
    Henüz değerlendirilmedi
  2. Sampling karşılaştırması

    Sampled true/true/false iki trace bırakırken üçüncü call metricIncrement 1 taşır. Request outcome ile record retention ayrı tutulur; trace count request denominator’ı değildir.

    Public telemetry records
    Window3 / success2 / error1
    Signal comparison
    Calls3 / retained traces2
    Coverage sonucu
    Henüz değerlendirilmedi
  3. Structured field kontrolü

    Exported record yalnız üç allowed field içerir. Fake authorization/session aliases output’ta yok, sourceMutated false; daha geniş anonymization başarısı eklenmez.

    Public telemetry records
    Window3 / success2 / error1
    Signal comparison
    Calls3 / retained traces2
    Coverage sonucu
    Allowed fields only / source unchanged
  4. Span context kontrolü

    Root parent null, child parent span-root ve trace-demo aynı. Duration end-start ile 4/2 logical unit; unit ve clock scope gerçek timing iddiasından ayrı.

    Public telemetry records
    Exact parent relation / logical durations4,2
    Signal comparison
    Calls3 / retained traces2
    Coverage sonucu
    Allowed fields only / source unchanged
  5. Üç visibility durumu

    Unsampled verified recording decision, exportFailure observed sink OSError, missing ise hiç observation yok. Aynı record count 0 farklı knowledge taşır; nedenler tek missing etiketiyle birleşmez.

    Public telemetry records
    Exact parent relation / logical durations4,2
    Signal comparison
    Sampling / observed export error / unknown
    Coverage sonucu
    Allowed fields only / source unchanged
  6. Observer health sınırı

    Finite log/count karşılaştırması local adapter scope’unda kalır. Collector, remote exporter ve SDK çalıştığı veya production logs yakalandığı iddiası yok; visibility ile business outcome ayrı bildirilir.

    Public telemetry records
    Exact parent relation / logical durations4,2
    Signal comparison
    Sampling / observed export error / unknown
    Coverage sonucu
    Local signal evidence / remote coverage unmeasured

Observation eksik

  1. Boş observer görünümü

    Missing observationPresent false ve health unknown. Observer’da record yokken source event’in gerçekleşmediği veya service’in healthy olduğu çıkarılamaz.

    Public telemetry records
    No observation / health unknown
    Signal comparison
    Henüz değerlendirilmedi
    Coverage sonucu
    Henüz değerlendirilmedi
  2. Coverage koşulu eksik

    Sampling, export success ve retained window bilinmiyor. Normal exporter veya unsampled açıklamasını bu olaya eklemek missing state’i doğrulanmış bir nedeni varmış gibi gösterir.

    Public telemetry records
    No observation / health unknown
    Signal comparison
    Sampling/export/window missing
    Coverage sonucu
    Henüz değerlendirilmedi
  3. Oranı hesaplama

    Denominator 0 ve windowRate null korunur. Empty data için error0 yazmak instrumentation completeness varsayımı ekler; businessEventAbsenceProved false kalır.

    Public telemetry records
    No observation / health unknown
    Signal comparison
    Sampling/export/window missing
    Coverage sonucu
    No fraction / event absence unproved
  4. Gerekli observation bağı

    Signal purpose, active instrumentation, sample decision, export outcome ve observation window gerekli. Public correlation alias aynı action’a bağlanır; secret veya private body gerekmez.

    Public telemetry records
    Needed: instrumentation/sampling/export/window
    Signal comparison
    Sampling/export/window missing
    Coverage sonucu
    No fraction / event absence unproved
  5. Causal sonucu sınırlı tut

    Clock yakınlığı veya aynı title event’in tamamlandığını kanıtlamaz. Business result kendi receiver’ından, telemetry receipt kendi sink’inden doğrulanmalı; biri diğerinin boşluğunu doldurmaz.

    Public telemetry records
    Needed: instrumentation/sampling/export/window
    Signal comparison
    Business and telemetry recipients distinct
    Coverage sonucu
    No fraction / event absence unproved
  6. Unknown’u dürüst koru

    Bu inceleme visibility gap kaydeder, yeni event veya health başarı üretmez. Yeni evidence window ve receiver sınırını açıklayınca rate veya outcome tekrar değerlendirilebilir.

    Public telemetry records
    Needed: instrumentation/sampling/export/window
    Signal comparison
    Business and telemetry recipients distinct
    Coverage sonucu
    Visibility unknown / collect scoped signal evidence

UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA

Sinyalin neyi saydığını ve neyi taşıdığını tanımla

Log schema’sında event’in amacını, output’a uygun alanları ve correlation alias’ını tanımla; raw secrets veya upstream object’in tamamını ekleme. Metric counter’ın reset kapsamını ve operation/status boyutlarını kaydet. Histogram ve duration yorumu unit, window ve source clock ister; verilen logical tick’i millisecond veya benchmark sanma. Root/child span ilişkisini ortak traceAlias ve doğru parentAlias ile göster. İsim eşitliği tek başına parent context kurmaz.

Yerel kontrol public-call adapter kararlarından cumulative counts türetir ve bağımsız parse edilmiş request sonuçlarıyla toplamları karşılaştırır. Sampled=false request metric toplamından düşmez. Structured log StringIO sink’te üretilir; bağımsız JSON parser yalnız seçilen alanları kontrol eder. Sahte seed değerleri output’a gitmez ve source object korunur. Bu observation Python ve yerel writer kapsamındadır; SDK exporter/backend veya gerçek production log capture değildir.

Visibility gap ve business outcome’u birlikte göster

Exporter error, unsampled trace ve eksik observation’ı ayrı dallarla göster. Export error sırasında public read tamamlanabilir ama signal store eksik kalır; bunu health success saymadan visibility gap olarak kaydet. Unsampled dalında sıfır trace için açık sampling kararı vardır; missing observation’da aynı açıklama bulunmayabilir. Best-effort policy yalnız operational public-read diagnostics içindir. Security-sensitive audit retention ve access policy ayrıca belirlenmelidir.

Selector exportOk=false iken visibilityConfirmed=true yazılmış tutarsız kaydı arar. Normal degraded-visibility row’da count=0, positive inconsistent row’da count=1 bulunur; missing row yine yetersiz kanıttır. Business response’un tamamlanması instrumentation’ın record ürettiğini veya observer’ın remote telemetry aldığını söylemez. Request outcome, recording ve export receipt aynı iş için ayrı izlenir.

ŞİMDİ VAKAYA UYGULA

Trace yoksa request de yok mu?

Üç public call’ın status’ları 200, 503 ve 200; sadece ilk iki trace saklanıyor. Export sink hata verse de bir public read 200 ile tamamlanabiliyor. Counter, sampled trace ve exported record farklı kapsamları sayıyor; correlation alias gerçek wire trace ID’si değil.

Vakadaki data journey’yi environment, dependency ve telemetry context’iyle birlikte değerlendir. Bir operational success etiketi bütün application sonuçlarını kanıtlar mı?

Bağlı vaka dosyasını aç ↗

ÖRNEĞİ BİRLİKTE OKUYALIM

Public telemetry ve visibility karar defteri

Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.

Ham kaydı ve alan açıklamalarını oku
{
  "schema": {
    "fields": [
      "event",
      "operation",
      "correlationAlias"
    ],
    "classification": "public synthetic diagnostic only",
    "recordIsVendorFormat": false,
    "traceAliasesAreWireIds": false
  },
  "normal": {
    "rawFakeInput": {
      "event": "public-read-completed",
      "operation": "read-public-note",
      "correlationAlias": "request-demo",
      "authorizationAlias": "demo-token-alias",
      "sessionAlias": "demo-session-alias"
    },
    "exported": {
      "event": "public-read-completed",
      "operation": "read-public-note",
      "correlationAlias": "request-demo"
    },
    "businessResult": {
      "status": 200,
      "title": "Tea note"
    },
    "exportedRecords": 1,
    "sourceMutated": false
  },
  "window": {
    "adapterStatuses": [
      200,
      503,
      200
    ],
    "sampled": [
      true,
      true,
      false
    ],
    "requestTotal": 3,
    "successTotal": 2,
    "errorTotal": 1,
    "retainedRequestTraces": 2,
    "errorFraction": {
      "numerator": 1,
      "denominator": 3
    },
    "scope": "finite own adapter window; not global service rate"
  },
  "spans": [
    {
      "traceAlias": "trace-demo",
      "spanAlias": "span-root",
      "parentAlias": null,
      "operation": "read-public-note",
      "logicalStart": 10,
      "logicalEnd": 14,
      "logicalDuration": 4
    },
    {
      "traceAlias": "trace-demo",
      "spanAlias": "span-child",
      "parentAlias": "span-root",
      "operation": "local-note-read",
      "logicalStart": 11,
      "logicalEnd": 13,
      "logicalDuration": 2
    }
  ],
  "unsampled": {
    "status": 200,
    "metricIncrement": 1,
    "sampled": false,
    "retainedTraces": 0,
    "businessCompleted": true
  },
  "exportFailure": {
    "status": 200,
    "businessCompleted": true,
    "exportOk": false,
    "exportedRecords": 0,
    "visibilityConfirmed": false,
    "observedFailure": "own sink OSError",
    "policy": "explicit best-effort public diagnostics; not mandatory audit"
  },
  "missing": {
    "observationPresent": false,
    "health": "unknown",
    "businessEventAbsenceProved": false,
    "windowRate": null,
    "denominator": 0
  },
  "limits": {
    "actualProductionLogsRead": false,
    "otelSdkExecuted": false,
    "collectorExecuted": false,
    "remoteExporterExecuted": false,
    "realSecretsRead": false,
    "realLatencyMeasured": false,
    "authorizationVerified": false
  },
  "selector": {
    "language": "XPath",
    "xml": "<audit><telemetry exportOk=\"false\" visibilityConfirmed=\"false\"/></audit>",
    "xpath": "count(/audit/telemetry[@exportOk='false' and @visibilityConfirmed='true'])",
    "expected": 0,
    "positiveFixtureXml": "<audit><telemetry exportOk=\"false\" visibilityConfirmed=\"true\"/></audit>",
    "positiveExpected": 1,
    "scope": "Own inert decision observations, not vendor log fields.",
    "missingFieldBehavior": "Missing observation is insufficient evidence; zero matches alone proves no healthy runtime/control."
  }
}
normal/schema
Yalnız örneğin public output schema’sı; sahte hassas alias’lar dışarıda bırakılır.
window/spans
Sınırlı counter window’u ile verilen logical span aralıkları farklı kapsam taşır.
unsampled/exportFailure/missing
Recording kararı, sink hatası ve eksik evidence farklı sonuçlardır.
selector/limits
Production capture, gerçek SDK/backend, secret veya latency ölçümü yok.

Yerel adapter, structured stream ve counter ölçümleriyle sınırlıdır; span’ler verilen logical context örnekleridir. Gerçek log veya secret okunmaz; OpenTelemetry SDK, collector/backend, remote exporter ya da latency capture çalıştırılmaz.

İki yanlış kanı

Trace veya error log yoksa request ya da error da olmamıştır.

Sampling, export, retention veya observation gap sinyali eksiltebilir; sinyal yokluğu event yokluğunu kanıtlamaz.

Correlation ID ve log success, yetki veya business commit kanıtıdır.

Correlation context’i bağlar; permission ve authoritative business sonucu ilgili owner’da ayrıca doğrulanır.

SIRA SENDE

Bu hikâyeyi sen çöz.

Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.

Bir request 200 ile tamamlandı, fakat sampled=false ve retainedTraces=0. Metrics’e de hiç eklenmediği çıkarılabilir mi?

  1. Evet. Trace tutulmadıysa request gerçekleşmemiştir.
  2. Hayır. metricIncrement=1; businessCompleted=true.
Gerekçeli cevabı oku

Hayır. metricIncrement=1; businessCompleted=true. — Bu request için trace tutulmaz, fakat metric sayacı artar. Trace sayısı bütün request sayısı değildir.

Public diagnostic export’u başarısız. Kullanıcıya response verilmesi ile log’un görünür olması aynı başarı mı?

Dersten seçilen artifact alanları; öğretim örneği

exportFailure.status
200
exportFailure.businessCompleted
true
exportFailure.exportOk
false
exportFailure.visibilityConfirmed
false
exportFailure.policy
explicit best-effort public diagnostics; not mandatory audit
  1. Hayır. Business işlem tamamlanır; export görünürlüğü doğrulanmaz.
  2. Response 200 ise bütün log sink’leri kaydı kesin almıştır.
Gerekçeli cevabı oku

Hayır. Business işlem tamamlanır; export görünürlüğü doğrulanmaz. — status=200 ve businessCompleted=true olsa da exportOk=false ve visibilityConfirmed=false. Bu policy response’u durdurmaz, fakat log delivery kanıtı da üretmez.

Window’da 3 request, 1 error ve 2 retained trace var. Missing observation ve denominator=0 için neden error rate 0 diyemeyiz?

Gerekçeli cevabı oku

Verilen window için errorFraction=1/3 hesaplanır. Sampling nedeniyle retained trace sayısı 2’dir; metric denominator 3’tür. Missing branch’inde observationPresent=false ve windowRate=null; denominator=0 sıfır hata oranı kanıtı değildir. Trace alias’ları logical correlation içindir, kullanıcı kimliği veya wire ID doğrulaması değildir. Public allowlist dışındaki fake session/authorization alias’ları export edilmez; bu işlem tam anonimleştirme garantisi de değildir.

□ Trace sayısını metric denominator yerine kullanmadım.

□ Eksik gözlemi sıfır hata oranına veya sağlıklı service sonucuna çevirmedim.

Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç

Kaynaklar ve kapsam