<?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: Aadvik Krishna</title>
    <description>The latest articles on DEV Community by Aadvik Krishna (@aadvik_krishna_2d1baa4c0a).</description>
    <link>https://dev.to/aadvik_krishna_2d1baa4c0a</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%2F4044639%2Fdeb5005d-30f5-40d7-9d50-9f9515df7034.png</url>
      <title>DEV Community: Aadvik Krishna</title>
      <link>https://dev.to/aadvik_krishna_2d1baa4c0a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aadvik_krishna_2d1baa4c0a"/>
    <language>en</language>
    <item>
      <title>Building an Incident Triage Agent with Full Observability in SigNoz</title>
      <dc:creator>Aadvik Krishna</dc:creator>
      <pubDate>Fri, 24 Jul 2026 01:00:59 +0000</pubDate>
      <link>https://dev.to/aadvik_krishna_2d1baa4c0a/building-an-incident-triage-agent-with-full-observability-in-signoz-55b0</link>
      <guid>https://dev.to/aadvik_krishna_2d1baa4c0a/building-an-incident-triage-agent-with-full-observability-in-signoz-55b0</guid>
      <description>&lt;h2&gt;
  
  
  The problem: AI agents are black boxes
&lt;/h2&gt;

&lt;p&gt;AI agents chain LLM calls and tool calls together to make decisions. But&lt;br&gt;
when something goes wrong — a slow response, an unexpected answer, a&lt;br&gt;
runaway cost — you're stuck guessing. You can't debug what you can't see.&lt;/p&gt;

&lt;p&gt;For the "Agents of SigNoz" hackathon, I wanted to build something that&lt;br&gt;
addresses this directly: an AI agent whose entire decision-making process&lt;br&gt;
is fully observable, end to end.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;Incident Triage Agent&lt;/strong&gt; — a small AI agent that simulates what an&lt;br&gt;
on-call engineer's assistant might do during a production incident:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plans&lt;/strong&gt; an investigation approach (LLM call)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Searches logs&lt;/strong&gt; for relevant errors (tool call)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checks a runbook&lt;/strong&gt; for the matching incident type (tool call)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scores severity&lt;/strong&gt; based on what it found (tool call)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summarizes&lt;/strong&gt; a recommended action for the engineer (LLM call)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every one of these five steps is wrapped in its own OpenTelemetry span, so&lt;br&gt;
a single incident investigation shows up in SigNoz as one connected trace&lt;br&gt;
with all five child spans nested underneath it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; for the agent logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemini API&lt;/strong&gt; (&lt;code&gt;gemini-3.5-flash&lt;/code&gt;) for the two LLM calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenTelemetry SDK&lt;/strong&gt;, exporting spans via OTLP/gRPC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SigNoz&lt;/strong&gt;, self-hosted locally via the new Foundry installer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I used SigNoz
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Traces
&lt;/h3&gt;

&lt;p&gt;Each span carries custom attributes beyond the defaults — token counts,&lt;br&gt;
latency in seconds, an estimated cost, the severity level the agent&lt;br&gt;
assigned, and even a simple heuristic flag for potential hallucination&lt;br&gt;
(whether the final summary references something that was never in the&lt;br&gt;
logs or runbook). Opening a trace in SigNoz's flame graph view immediately&lt;br&gt;
shows where the time went — in my case, the two LLM calls consistently&lt;br&gt;
took 10-15 seconds each, while all three tool calls combined took under a&lt;br&gt;
second. That's not obvious from reading code; it's obvious from a trace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboards
&lt;/h3&gt;

&lt;p&gt;I built two dashboards directly from trace data using SigNoz's query&lt;br&gt;
builder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Latency by Step&lt;/strong&gt; — average duration grouped by span name, showing
exactly which part of the agent's pipeline is the bottleneck&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Severity Distribution&lt;/strong&gt; — count of incidents grouped by the severity
the agent assigned, useful for spotting patterns across many runs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Alerts
&lt;/h3&gt;

&lt;p&gt;I set up a threshold alert on the planning LLM call: if &lt;code&gt;agent.llm.plan&lt;/code&gt;&lt;br&gt;
takes longer than 15 seconds on average, it fires. This is the kind of&lt;br&gt;
thing you'd actually want in production — a way to know your agent is&lt;br&gt;
degrading before someone notices the user-facing symptom.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;The most interesting finding, honestly, wasn't about SigNoz — it was&lt;br&gt;
about my own agent. Once I could see the trace breakdown, it became&lt;br&gt;
obvious that essentially all the latency in this pipeline comes from the&lt;br&gt;
two LLM calls, not the tool calls. That's an unglamorous but important&lt;br&gt;
insight: if I wanted to optimize this agent, the tool calls are not&lt;br&gt;
where I'd spend my time.&lt;/p&gt;

&lt;p&gt;That's the whole pitch for agent observability — it turns "the agent&lt;br&gt;
felt slow" into "the agent's planning step specifically took 12 seconds,&lt;br&gt;
here's the trace, here's the token count, here's the cost." You can't&lt;br&gt;
have that conversation without instrumentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;Full code, setup instructions, and the Foundry deployment config are on&lt;br&gt;
GitHub: &lt;strong&gt;&lt;a href="https://github.com/aadvik93/incident-triage-agent" rel="noopener noreferrer"&gt;github.com/aadvik93/incident-triage-agent&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the &lt;a href="https://www.wemakedevs.org/hackathons/signoz" rel="noopener noreferrer"&gt;Agents of SigNoz&lt;/a&gt;&lt;br&gt;
hackathon, Track 01: AI &amp;amp; Agent Observability.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opentelemetry</category>
      <category>hackathon</category>
      <category>observability</category>
    </item>
  </channel>
</rss>
