File size: 14,132 Bytes
48f7db7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Explore AI Observability across LLMs, agents, tools, memory, retrieval, cost and evaluation.">
<title>Observability Explorer</title>
<style>
:root{
  --bg:#f6fbff;--panel:#fff;--line:#d2e3ee;--text:#102033;--muted:#667b90;
  --cyan:#00b7e4;--blue:#3477ff;--violet:#735cff;
}
*{box-sizing:border-box}
body{
  margin:0;
  background:
    radial-gradient(circle at 14% 0,rgba(0,183,228,.14),transparent 28%),
    radial-gradient(circle at 88% 0,rgba(115,92,255,.10),transparent 24%),
    var(--bg);
  color:var(--text);
  font:15px/1.55 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.wrap{max-width:1180px;margin:auto;padding:0 22px}
.hero{text-align:center;padding:62px 0 28px}
.kicker{display:inline-block;border:1px solid #bddce8;border-radius:999px;padding:7px 12px;background:#ffffffdc;color:#1687a8;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
h1{font-size:clamp(44px,8vw,76px);line-height:1;margin:18px 0 12px;letter-spacing:-.055em}
.grad{background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet));background-clip:text;-webkit-background-clip:text;color:transparent}
.hero p{max-width:820px;margin:auto;color:var(--muted);font-size:18px}

.controls{display:flex;gap:8px;flex-wrap:wrap;padding:18px 0 22px}
.controls button{
  border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);
  padding:9px 12px;cursor:pointer;font-size:11px;font-weight:800
}
.controls button.on{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,183,228,.1);background:#f2fbff}

.layout{display:grid;grid-template-columns:1.1fr .9fr;gap:15px;padding-bottom:50px}
.panel{border:1px solid var(--line);border-radius:18px;background:#ffffffef;padding:18px;box-shadow:0 18px 44px rgba(38,76,112,.08)}
.ey{font-size:10px;color:#1687a8;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
h2{margin:3px 0 7px;font-size:25px;letter-spacing:-.03em}
.desc{color:var(--muted);font-size:13px}

.trace{
  margin:16px 0;padding:15px;border:1px solid #d6e6ef;border-radius:14px;background:#f9fcff;
  display:flex;align-items:center;gap:7px;flex-wrap:wrap
}
.node{border:1px solid #bfd9e6;border-radius:9px;background:#fff;padding:8px 10px;font-size:10px;font-weight:900}
.node.focus{border-color:var(--violet);background:#f4f1ff}
.arrow{color:var(--cyan);font-weight:900}

.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.card{border:1px solid #d5e4ed;border-radius:12px;background:#fbfdff;padding:11px}
.card b{display:block;font-size:11px}.card span{font-size:10px;color:var(--muted)}

.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{border:1px solid #cfe0eb;border-radius:999px;background:#f6fbff;padding:5px 7px;font-size:10px;color:#50697d}

.metric{margin:11px 0}
.mt{display:flex;justify-content:space-between;font-size:11px;font-weight:800}
.bar{height:7px;background:#e6eef4;border-radius:99px;overflow:hidden;margin-top:5px}
.fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet))}

.failure{margin-top:14px;padding:12px;border:1px solid #e3d9f6;border-radius:12px;background:#fbf8ff}
.failure b{display:block;font-size:11px}.failure span{font-size:10px;color:var(--muted)}

.note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
footer{border-top:1px solid var(--line);padding:28px 0 44px;color:var(--muted);font-size:13px}
footer strong{color:var(--text)}
@media(max-width:900px){.layout{grid-template-columns:1fr}}
@media(max-width:560px){.cards{grid-template-columns:1fr}}
</style>
</head>
<body>

<header class="hero">
<div class="wrap">
  <span class="kicker">AI Observability · Tracing · Telemetry</span>
  <h1>Observability <span class="grad">Explorer</span></h1>
  <p>Explore the signals that make modern AI systems traceable, measurable and debuggable.</p>
</div>
</header>

<main class="wrap">
  <section class="controls" id="controls"></section>

  <section class="layout">
    <div class="panel">
      <div class="ey" id="category"></div>
      <h2 id="name"></h2>
      <div class="desc" id="desc"></div>

      <div class="trace" id="trace"></div>
      <div class="cards" id="cards"></div>

      <div class="ey" style="margin-top:16px">Capture these signals</div>
      <div class="tags" id="signals"></div>
    </div>

    <aside class="panel">
      <div class="ey">Operational profile</div>
      <h2 style="font-size:21px">Why it matters</h2>
      <div class="desc">Conceptual importance for production AI systems.</div>

      <div id="metrics"></div>

      <div class="failure">
        <b>Typical failure mode</b>
        <span id="failure"></span>
      </div>

      <div class="note">
        Scores are educational and conceptual, not benchmark results.
      </div>
    </aside>
  </section>
</main>

<footer>
<div class="wrap">
  <strong>Observability Explorer</strong> — an independent Hugging Face Space.<br>
  Collaboration and partnerships: <strong>agenten@magenta.de</strong>
</div>
</footer>

<script>
const topics=[
{
 n:"Traces",cat:"Core Signal",
 d:"Connect the full execution path of a request across models, tools, retrieval, memory and verification.",
 flow:["Request","Router","Model","Tool","Verifier","Response"],
 cards:[
  ["Primary use","End-to-end debugging and root-cause analysis."],
  ["Best for","Distributed AI workflows and agents."],
  ["Key question","What happened, in what order, and where did it fail?"],
  ["Related","Spans, correlation IDs, context propagation."]
 ],
 signals:["trace_id","span_id","duration","status","component","error"],
 m:{ProductionImportance:100,DebugValue:100,CorrelationValue:100,ImplementationComplexity:72},
 fail:"Important components are not attached to the same trace, so the execution path cannot be reconstructed."
},
{
 n:"Logs",cat:"Core Signal",
 d:"Record discrete runtime events such as failures, retries, routing decisions and policy outcomes.",
 flow:["Event","Record","Store","Search","Investigate"],
 cards:[
  ["Primary use","Event-level debugging and incident analysis."],
  ["Best for","Errors, retries, policy events and state changes."],
  ["Key question","Which discrete event occurred at this moment?"],
  ["Related","Structured logging, audit logs, event streams."]
 ],
 signals:["timestamp","event","severity","component","message","metadata"],
 m:{ProductionImportance:94,DebugValue:96,CorrelationValue:78,ImplementationComplexity:52},
 fail:"Logs exist, but they are unstructured or cannot be correlated with the request that caused them."
},
{
 n:"Metrics",cat:"Core Signal",
 d:"Aggregate numerical signals for latency, usage, cost, reliability and system health.",
 flow:["Measure","Aggregate","Trend","Alert","Investigate"],
 cards:[
  ["Primary use","Operational monitoring and trend detection."],
  ["Best for","Latency, cost, error rate and throughput."],
  ["Key question","How is the system behaving over time?"],
  ["Related","Dashboards, alerts, SLOs, capacity planning."]
 ],
 signals:["latency","errors","tokens","cost","throughput","success_rate"],
 m:{ProductionImportance:96,DebugValue:72,CorrelationValue:62,ImplementationComplexity:45},
 fail:"Metrics show a regression, but there is no trace or event context to explain its cause."
},
{
 n:"LLM Observability",cat:"Model",
 d:"Tracks model calls, prompts, outputs, latency, token usage, cost and provider behavior.",
 flow:["Prompt","Model Call","Output","Evaluate","Store"],
 cards:[
  ["Primary use","Inspect model behavior and regressions."],
  ["Best for","Prompt changes, provider changes and model comparisons."],
  ["Key question","Which model and prompt produced this result?"],
  ["Related","Prompt management, cost tracking, evaluation."]
 ],
 signals:["model","provider","prompt_version","input_tokens","output_tokens","latency","cost"],
 m:{ProductionImportance:98,DebugValue:94,CorrelationValue:88,ImplementationComplexity:58},
 fail:"A quality regression occurs, but prompt version, model version or provider metadata was not recorded."
},
{
 n:"Agent Observability",cat:"Agent",
 d:"Tracks agent steps, tools, memory, planning, retries, recovery and long-horizon execution.",
 flow:["Goal","Plan","Tool","Observe","Memory","Verify","Replan"],
 cards:[
  ["Primary use","Understand agent behavior across many steps."],
  ["Best for","Long-horizon and autonomous workflows."],
  ["Key question","Why did the agent choose this sequence of actions?"],
  ["Related","Tool tracing, memory tracing, checkpointing."]
 ],
 signals:["step","tool","memory_read","memory_write","retry","replan","human_intervention"],
 m:{ProductionImportance:100,DebugValue:100,CorrelationValue:98,ImplementationComplexity:88},
 fail:"The final agent result is wrong, but intermediate actions, memory changes and replanning decisions are missing."
},
{
 n:"Retrieval Observability",cat:"Knowledge",
 d:"Makes retrieval queries, candidate documents, reranking and selected context visible.",
 flow:["Query","Retrieve","Rerank","Select Context","Generate"],
 cards:[
  ["Primary use","Separate retrieval failures from model failures."],
  ["Best for","RAG and knowledge-grounded applications."],
  ["Key question","Did the model receive the right context?"],
  ["Related","Reranking, source attribution, relevance scoring."]
 ],
 signals:["query","documents","scores","reranker","selected_chunks","latency"],
 m:{ProductionImportance:92,DebugValue:96,CorrelationValue:86,ImplementationComplexity:65},
 fail:"The answer is poor because weak context was retrieved, but only the final model response was logged."
},
{
 n:"Tool Observability",cat:"Action",
 d:"Tracks tool selection, arguments, execution, results, errors and permission checks.",
 flow:["Select Tool","Authorize","Call","Result","Validate"],
 cards:[
  ["Primary use","Inspect external actions performed by agents."],
  ["Best for","APIs, code execution, databases and enterprise tools."],
  ["Key question","What action did the agent actually take?"],
  ["Related","Permissions, schemas, retries, audit logs."]
 ],
 signals:["tool_name","arguments","duration","result","error","permission","retry"],
 m:{ProductionImportance:100,DebugValue:98,CorrelationValue:94,ImplementationComplexity:70},
 fail:"A tool modifies an external system, but the arguments and authorization decision were not captured."
},
{
 n:"Memory Observability",cat:"State",
 d:"Tracks memory reads, writes, freshness, provenance and conflicts in persistent agents.",
 flow:["Read","Use","Update","Validate","Persist"],
 cards:[
  ["Primary use","Diagnose stale or incorrect agent state."],
  ["Best for","Persistent and long-horizon agents."],
  ["Key question","Which stored information influenced this decision?"],
  ["Related","State management, provenance, checkpoints."]
 ],
 signals:["memory_id","operation","freshness","provenance","confidence","conflict"],
 m:{ProductionImportance:94,DebugValue:97,CorrelationValue:91,ImplementationComplexity:78},
 fail:"The agent acts on stale memory, but there is no record of what was read or when it was last updated."
},
{
 n:"Cost Observability",cat:"Operations",
 d:"Tracks the cost contribution of models, tools, retrieval, embeddings, retries and agent steps.",
 flow:["Call","Meter","Attribute","Aggregate","Optimize"],
 cards:[
  ["Primary use","Understand where AI spend originates."],
  ["Best for","Multi-model and agentic applications."],
  ["Key question","Which part of the workflow drives cost?"],
  ["Related","Budgets, routing, model selection, optimization."]
 ],
 signals:["model_cost","tool_cost","retrieval_cost","retry_cost","task_cost","budget"],
 m:{ProductionImportance:91,DebugValue:70,CorrelationValue:84,ImplementationComplexity:60},
 fail:"Total spend increases, but costs cannot be attributed to individual models, tools or retries."
},
{
 n:"Evaluation-Aware Observability",cat:"Quality",
 d:"Links runtime execution data with quality, validation and verification signals.",
 flow:["Execute","Trace","Evaluate","Diagnose","Improve"],
 cards:[
  ["Primary use","Connect quality changes to concrete runtime causes."],
  ["Best for","Continuous AI system improvement."],
  ["Key question","Which execution pattern correlates with better or worse quality?"],
  ["Related","Validation, verification, benchmarks, feedback."]
 ],
 signals:["quality_score","verifier_result","task_success","policy_status","trace_id","feedback"],
 m:{ProductionImportance:97,DebugValue:98,CorrelationValue:100,ImplementationComplexity:84},
 fail:"Quality metrics exist separately from runtime telemetry, so regressions cannot be traced back to specific execution behavior."
}
];

let selected=0;
const controls=document.getElementById("controls");

function buildButtons(){
 controls.innerHTML=topics.map((x,i)=>`<button class="${i===selected?'on':''}" data-i="${i}">${x.n}</button>`).join("");
 controls.querySelectorAll("button").forEach(b=>b.onclick=()=>{
   selected=Number(b.dataset.i);buildButtons();render();
 });
}
function render(){
 const x=topics[selected];
 category.textContent=x.cat;
 name.textContent=x.n;
 desc.textContent=x.d;
 trace.innerHTML=x.flow.map((v,i)=>`<span class="node ${i===x.flow.length-1?'focus':''}">${v}</span>${i<x.flow.length-1?'<span class="arrow">→</span>':''}`).join("");
 cards.innerHTML=x.cards.map(v=>`<div class="card"><b>${v[0]}</b><span>${v[1]}</span></div>`).join("");
 signals.innerHTML=x.signals.map(v=>`<span class="tag">${v}</span>`).join("");
 const labels={ProductionImportance:"Production importance",DebugValue:"Debug value",CorrelationValue:"Correlation value",ImplementationComplexity:"Implementation complexity"};
 metrics.innerHTML=Object.entries(x.m).map(([k,v])=>`
   <div class="metric">
     <div class="mt"><span>${labels[k]}</span><span>${v}</span></div>
     <div class="bar"><div class="fill" style="width:${v}%"></div></div>
   </div>`).join("");
 failure.textContent=x.fail;
}
buildButtons();render();
</script>
</body>
</html>