<?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: AjAy</title>
    <description>The latest articles on DEV Community by AjAy (@ajay_73b10838dd4d9d98b316).</description>
    <link>https://dev.to/ajay_73b10838dd4d9d98b316</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%2F4048128%2Fb6b6aa23-a054-4b5b-80c7-323b0579ff29.png</url>
      <title>DEV Community: AjAy</title>
      <link>https://dev.to/ajay_73b10838dd4d9d98b316</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ajay_73b10838dd4d9d98b316"/>
    <language>en</language>
    <item>
      <title>Observability AI Project Using SigNoz</title>
      <dc:creator>AjAy</dc:creator>
      <pubDate>Sun, 26 Jul 2026 16:04:35 +0000</pubDate>
      <link>https://dev.to/ajay_73b10838dd4d9d98b316/observability-ai-project-using-signoz-1c8c</link>
      <guid>https://dev.to/ajay_73b10838dd4d9d98b316/observability-ai-project-using-signoz-1c8c</guid>
      <description>&lt;p&gt;I Built My Observability AI Project Using SigNoz&lt;/p&gt;

&lt;p&gt;Before this project, I honestly didn't understand observability.&lt;/p&gt;

&lt;p&gt;I thought it was just dashboards and logs.&lt;/p&gt;

&lt;p&gt;After building an AI project from scratch, I realized I had no idea what was happening inside my application after it started running. If something failed, I could only print variables or add more logging.&lt;/p&gt;

&lt;p&gt;That became really frustrating.&lt;/p&gt;

&lt;p&gt;So I decided to try SigNoz.&lt;/p&gt;

&lt;p&gt;What I was building&lt;/p&gt;

&lt;p&gt;I built a small AI system that learns from repeated SQL requests. It keeps track of user behavior, increases confidence over time, and eventually starts applying learned rules to future requests.&lt;/p&gt;

&lt;p&gt;The important part wasn't the AI logic.&lt;/p&gt;

&lt;p&gt;The important part was answering questions like:&lt;/p&gt;

&lt;p&gt;What happened during this request?&lt;br&gt;
Which component took the most time?&lt;br&gt;
Was a rule retrieved?&lt;br&gt;
How did confidence change?&lt;br&gt;
What spans were created?&lt;br&gt;
Can I replay exactly what happened?&lt;/p&gt;

&lt;p&gt;I couldn't answer those questions with print statements.&lt;/p&gt;

&lt;p&gt;Adding OpenTelemetry&lt;/p&gt;

&lt;p&gt;I added OpenTelemetry instrumentation to my FastAPI application.&lt;/p&gt;

&lt;p&gt;Instead of only logging messages, I started creating spans for every important operation.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;request received&lt;br&gt;
SQL evaluation&lt;br&gt;
rule retrieval&lt;br&gt;
guidance injection&lt;br&gt;
evidence creation&lt;br&gt;
confidence update&lt;br&gt;
lifecycle completion&lt;/p&gt;

&lt;p&gt;Each request generated its own trace.&lt;/p&gt;

&lt;p&gt;Seeing the entire request as one timeline was much easier than scrolling through logs.&lt;/p&gt;

&lt;p&gt;Custom Metrics&lt;/p&gt;

&lt;p&gt;I also exported my own metrics.&lt;/p&gt;

&lt;p&gt;Some examples:&lt;/p&gt;

&lt;p&gt;total requests&lt;br&gt;
rule confidence&lt;br&gt;
evidence count&lt;br&gt;
SQL safety ratio&lt;/p&gt;

&lt;p&gt;These metrics appeared automatically inside SigNoz.&lt;/p&gt;

&lt;p&gt;Watching confidence change after multiple requests was much more interesting than looking at static logs.&lt;/p&gt;

&lt;p&gt;The most useful feature&lt;/p&gt;

&lt;p&gt;The trace explorer became my favorite part.&lt;/p&gt;

&lt;p&gt;When I clicked a trace, I could see every span and every attribute attached to it.&lt;/p&gt;

&lt;p&gt;Things like:&lt;/p&gt;

&lt;p&gt;classification&lt;br&gt;
confidence&lt;br&gt;
detected SQL patterns&lt;br&gt;
duration&lt;br&gt;
service name&lt;/p&gt;

&lt;p&gt;Instead of guessing what happened, I could actually inspect the request.&lt;/p&gt;

&lt;p&gt;That saved me a lot of debugging time.&lt;/p&gt;

&lt;p&gt;What surprised me&lt;/p&gt;

&lt;p&gt;I expected observability to be something you add after finishing a project.&lt;/p&gt;

&lt;p&gt;Instead, I found it much more useful while building.&lt;/p&gt;

&lt;p&gt;Whenever something looked wrong, the traces usually told me where to start looking.&lt;/p&gt;

&lt;p&gt;I also realized that dashboards are only a small part of observability.&lt;/p&gt;

&lt;p&gt;The traces were where I spent most of my time.&lt;/p&gt;

&lt;p&gt;What I'd do differently&lt;/p&gt;

&lt;p&gt;If I started again, I'd add OpenTelemetry from the first day instead of waiting until the project was mostly complete.&lt;/p&gt;

&lt;p&gt;Adding observability later meant I had to revisit many parts of the code to instrument them properly.&lt;/p&gt;

&lt;p&gt;Doing it early would have made development easier.&lt;/p&gt;

&lt;p&gt;Final thoughts&lt;/p&gt;

&lt;p&gt;This project changed how I think about debugging.&lt;/p&gt;

&lt;p&gt;Instead of asking "Why did my code fail?", I can now ask "What exactly happened during this request?"&lt;/p&gt;

&lt;p&gt;That small change made debugging much less frustrating.&lt;/p&gt;

&lt;p&gt;If you're building anything more than a simple API, I'd recommend trying observability much earlier than I did.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>backend</category>
      <category>monitoring</category>
      <category>software</category>
    </item>
  </channel>
</rss>
