import{c as e,Q as t,j as i,m as s}from"./chunks/framework.BPKcPtvA.js";const b=JSON.parse('{"title":"L5a: Observability","description":"","frontmatter":{},"headers":[],"relativePath":"labs/l5-observability.md","filePath":"labs/l5-observability.md","lastUpdated":1780488246000}'),l={name:"labs/l5-observability.md"};function o(r,a,n,c,h,p){return t(),i("div",null,[...a[0]||(a[0]=[s(`<h1 id="l5a-observability" tabindex="-1">L5a: Observability <a class="header-anchor" href="#l5a-observability" aria-label="Permalink to &quot;L5a: Observability&quot;">​</a></h1><p><strong>Module</strong>: M5 Production<br><strong>Files</strong>: starter.py, solution.py</p><h2 id="objective" tabindex="-1">Objective <a class="header-anchor" href="#objective" aria-label="Permalink to &quot;Objective&quot;">​</a></h2><p>Trace every tool call + LLM completion to SQLite.</p><h2 id="concepts" tabindex="-1">Concepts <a class="header-anchor" href="#concepts" aria-label="Permalink to &quot;Concepts&quot;">​</a></h2><p>Refer to the corresponding module for full concept explanations.</p><h2 id="starter" tabindex="-1">Starter <a class="header-anchor" href="#starter" aria-label="Permalink to &quot;Starter&quot;">​</a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> course/labs/l5-observability/</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Open starter file and fill in the TODOs</span></span></code></pre></div><h2 id="checkpoints" tabindex="-1">Checkpoints <a class="header-anchor" href="#checkpoints" aria-label="Permalink to &quot;Checkpoints&quot;">​</a></h2><ol><li>Define SQLite schema for tool_calls and llm_completions</li><li>Implement ObservabilityTracker class</li><li>Log tool calls with params, result, duration</li><li>Log LLM completions with token counts and cost</li><li>Generate session summary report</li></ol><h2 id="solution" tabindex="-1">Solution <a class="header-anchor" href="#solution" aria-label="Permalink to &quot;Solution&quot;">​</a></h2><p>Compare against the solution file after attempting the starter.</p>`,12)])])}const u=e(l,[["render",o]]);export{b as __pageData,u as default};
