<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pravesh Pandey</title>
    <description>The latest articles on DEV Community by Pravesh Pandey (@iampraveesh).</description>
    <link>https://dev.to/iampraveesh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4031770%2F6857b668-930f-43b4-bcd1-9d652d855942.png</url>
      <title>DEV Community: Pravesh Pandey</title>
      <link>https://dev.to/iampraveesh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iampraveesh"/>
    <language>en</language>
    <item>
      <title>Observing the Observer: Building a Self-Tracing SRE Agent and Surviving ClickHouse &amp; OpenAI Bottlenecks</title>
      <dc:creator>Pravesh Pandey</dc:creator>
      <pubDate>Thu, 16 Jul 2026 09:21:25 +0000</pubDate>
      <link>https://dev.to/iampraveesh/observing-the-observer-building-a-self-tracing-sre-agent-and-surviving-clickhouse-openai-4fb7</link>
      <guid>https://dev.to/iampraveesh/observing-the-observer-building-a-self-tracing-sre-agent-and-surviving-clickhouse-openai-4fb7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe2fnkcjksflf2o3dtkyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe2fnkcjksflf2o3dtkyg.png" alt=" " width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI Agents are Black Boxes:&lt;br&gt;
Last week, I started building an AI-powered SRE Copilot for a hackathon. The goal: an autonomous agent that intercepts system alerts, queries recent traces, and runs remediation playbooks.&lt;/p&gt;

&lt;p&gt;But during my first test runs, I ran into a major roadblock. The agent would output: Agent run complete. Status: SUCCESS&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent run complete. Status: SUCCESS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Problems:&lt;br&gt;
Yet my services remained unhealthy. Because the agent dynamically chains tool calls fetching data, querying API logs, calculating refunds I had zero visibility into where the chain of reasoning broke. Traditional console.log statements are useless when the execution path is generated dynamically at runtime.&lt;/p&gt;

&lt;p&gt;I realized I needed to instrument my agent so it could observe itself.&lt;/p&gt;

&lt;p&gt;I’m currently 60% through building this system. Here is a transparent look at the engineering hurdles I’ve solved so far using SigNoz and OpenTelemetry, and the challenging roadmap I’m tackling next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📸 **The Screenshots: What I Built &amp;amp; How SigNoz Monitors It:&lt;/strong&gt;**&lt;br&gt;
To make the agent’s operations visible, I built a custom Glassmorphic Dashboard and hooked the backend directly into SigNoz. Here are the three key visuals that explain how this system works:&lt;/p&gt;

&lt;p&gt;1) The Interactive WebGL Loading Eye:&lt;br&gt;
Press enter or click to view image in full size&lt;/p&gt;

&lt;p&gt;Evil Eye Observing Everything!&lt;br&gt;
The Interactive WebGL Loading Eye:&lt;/p&gt;

&lt;p&gt;(&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6l911f1gtyma4qxcq2jn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6l911f1gtyma4qxcq2jn.png" alt=" " width="720" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;) Before the dashboard loads, this interactive WebGL “Evil Eye” loader tracks the cursor position.&lt;/p&gt;

&lt;p&gt;The Tech: Built using native browser ES Modules and esm.sh/&lt;a href="mailto:ogl@1.0.11"&gt;ogl@1.0.11&lt;/a&gt; (bypassing legacy UMD CDN 404s).&lt;br&gt;
How it works: The shader coordinates are scaled to 0.55 inside a 500px canvas, allowing the outer flame particles to expand and fade naturally without clipping.&lt;/p&gt;

&lt;p&gt;2)The Glassmorphic Observability Console&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7vjvvrvet21v2h89nwe7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7vjvvrvet21v2h89nwe7.png" alt=" " width="720" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Glassmorphic Observability Console:&lt;br&gt;
The Tech: Includes a rolling memory logger buffer of the last 50 entries exposed at /api/dashboard/logs.&lt;br&gt;
Trace-to-Log Link: Every error log links to its active OpenTelemetry traceId using a custom Winston formatter. Clicking a log line transports you directly to its telemetry trace inside SigNoz.&lt;/p&gt;

&lt;p&gt;3) The SigNoz Telemetry Traces UI&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5fjwrcvz4m9celj882a6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5fjwrcvz4m9celj882a6.png" alt=" " width="716" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The SigNoz Telemetry Traces UI:&lt;br&gt;
I get deep, nested trace spans for every LLM reasoning step.&lt;/p&gt;

&lt;p&gt;Rate &amp;amp; Latency Tracking: I ran a traffic generator (constant-load.js at 2 req/s) to populate real-time latency and operation rates.&lt;br&gt;
The 429 Fail-Safe: When the OpenAI API key hit quota limits (429), I wrote an offline agent simulator that executes the actual telemetry tools locally. This kept our success rates at 100% and generated full-trace timelines in ClickHouse.&lt;/p&gt;

&lt;p&gt;4) The Technical Hurdles Solved So Far:&lt;br&gt;
ClickHouse XML Overrides: Solved a schema migration crash (DB::Exception: Cannot parse JSON) by upgrading ClickHouse to 25.12.5-alpine and enabling the experimental JSON flag in users.xml.&lt;br&gt;
Graceful LLM Degradation: Intercepted rate limits to simulate agent reasoning while running actual instrumented backend systems, keeping the Otel collector populated.&lt;/p&gt;

&lt;p&gt;5) The 40% Roadmap: What’s Next?&lt;br&gt;
GET /api/agent/history (Medium): Persist agent runs in a DB so engineers can audit past AI remediation decisions.&lt;br&gt;
Interactive Chat Console (Hard): Build a live terminal to chat directly with the Copilot during active incident triage.&lt;br&gt;
Alert Webhook Hookup (Hard): Automatically trigger the agent whenever a SigNoz alert manager rule fires, letting the AI debug the alert before a human is paged.&lt;br&gt;
Built as part of the Agents of SigNoz Hackathon by WeMakeDevs. Follow the repository on GitHub (&lt;a href="https://github.com/praveshhh/signoz" rel="noopener noreferrer"&gt;https://github.com/praveshhh/signoz&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
