<?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: KUNTAL GHOSH</title>
    <description>The latest articles on DEV Community by KUNTAL GHOSH (@kuntal22tech).</description>
    <link>https://dev.to/kuntal22tech</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%2F4027258%2F53caad3c-e09f-4598-b55a-bf3c21d5264b.jpg</url>
      <title>DEV Community: KUNTAL GHOSH</title>
      <link>https://dev.to/kuntal22tech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kuntal22tech"/>
    <language>en</language>
    <item>
      <title>First Time I Self-Hosted SigNoz and Found the Observability Feature I Didn’t Know I Needed</title>
      <dc:creator>KUNTAL GHOSH</dc:creator>
      <pubDate>Sat, 18 Jul 2026 10:02:33 +0000</pubDate>
      <link>https://dev.to/kuntal22tech/first-time-i-self-hosted-signoz-and-found-the-observability-feature-i-didnt-know-i-needed-2im0</link>
      <guid>https://dev.to/kuntal22tech/first-time-i-self-hosted-signoz-and-found-the-observability-feature-i-didnt-know-i-needed-2im0</guid>
      <description>&lt;p&gt;I started this project expecting to explore observability. I ended up discovering how much easier debugging becomes when traces, metrics, and logs are connected in one place.&lt;br&gt;
Observability is one of those topics that can sound complicated when you first encounter it.&lt;br&gt;
You hear terms like:&lt;br&gt;
• Traces&lt;br&gt;
• Metrics&lt;br&gt;
• Logs&lt;br&gt;
• Dashboards&lt;br&gt;
• Alerts&lt;br&gt;
• Open Telemetry&lt;br&gt;
But the real understanding comes when you actually set up an observability platform and send real application data to it.&lt;br&gt;
For this project, I decided to self-host SigNoz and use it as my observability backend.&lt;br&gt;
After exploring its features, one feature stood out to me more than the others:&lt;/p&gt;

&lt;p&gt;"Distributed Tracing".&lt;/p&gt;

&lt;p&gt;And I quickly understood why.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started with SigNoz
&lt;/h2&gt;




&lt;p&gt;The first step was to self-host SigNoz instead of simply using a managed observability service.&lt;br&gt;
I wanted to understand what was actually happening behind the scenes.&lt;/p&gt;

&lt;p&gt;After setting up SigNoz, I connected my application and started sending telemetry data to the platform.&lt;br&gt;
The overall observability workflow looked something like this:&lt;br&gt;
                         Application&lt;br&gt;
                              |&lt;br&gt;
                         Open Telemetry&lt;br&gt;
                              |&lt;br&gt;
                            SigNoz&lt;br&gt;
                              |&lt;br&gt;
                              +----------&amp;gt; Traces&lt;br&gt;
                              |&lt;br&gt;
                              +----------&amp;gt; Metrics&lt;br&gt;
                              |&lt;br&gt;
                              +-----------&amp;gt; Logs&lt;br&gt;
                              |&lt;br&gt;
                              +-----------&amp;gt; Dashboards&lt;br&gt;
                              |&lt;br&gt;
                              +------------&amp;gt; Alerts&lt;/p&gt;

&lt;p&gt;Once data started appearing in the SigNoz interface, the project became much more interesting.&lt;/p&gt;

&lt;p&gt;I was no longer just reading about observability.&lt;/p&gt;

&lt;p&gt;I was actually looking at data generated by an application.&lt;/p&gt;




&lt;h2&gt;
  
  
  Exploring the Main Features
&lt;/h2&gt;




&lt;p&gt;SigNoz brings several important observability features together in one platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;METRICS&lt;/strong&gt;&lt;br&gt;
Metrics provide a high-level view of application performance.&lt;/p&gt;

&lt;p&gt;For example, I could look at information such as:&lt;br&gt;
• Request counts&lt;br&gt;
• Response times&lt;br&gt;
• Error rates&lt;br&gt;
• Resource usage&lt;br&gt;
• Performance trends&lt;br&gt;
Metrics are useful when I want to understand the overall health of an application.&lt;br&gt;
However, metrics alone do not always tell me exactly what caused a problem.&lt;br&gt;
That is where traces became especially useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOGS&lt;/strong&gt;&lt;br&gt;
Logs provide detailed information about what happened inside an application.&lt;/p&gt;

&lt;p&gt;When something fails, logs can contain useful information such as:&lt;/p&gt;

&lt;p&gt;"Request received"&lt;br&gt;
"Database connection started"&lt;br&gt;
"External API called"&lt;br&gt;
"Request failed"&lt;/p&gt;

&lt;p&gt;Logs are extremely useful for investigating specific events.&lt;/p&gt;

&lt;p&gt;But when an application contains multiple services, reading logs alone can sometimes feel like trying to reconstruct a story from individual pages.&lt;/p&gt;

&lt;p&gt;This is where tracing becomes powerful.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Feature I Liked Most: Distributed Tracing
&lt;/h2&gt;




&lt;p&gt;The feature that impressed me the most was the trace view.&lt;/p&gt;

&lt;p&gt;A trace shows the complete journey of a request through an application.&lt;/p&gt;

&lt;p&gt;Instead of seeing only:&lt;br&gt;
"Request: 500 ms"&lt;/p&gt;

&lt;p&gt;I can investigate what happened during those 500 milliseconds.&lt;/p&gt;

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

&lt;p&gt;Total Request: 500 ms&lt;br&gt;
│&lt;br&gt;
├──&amp;gt; API Request: 500 ms&lt;br&gt;
│    │&lt;br&gt;
│    ├──&amp;gt; Authentication: 20 ms&lt;br&gt;
│    │&lt;br&gt;
│    ├──&amp;gt; Database Query: 80 ms&lt;br&gt;
│    │&lt;br&gt;
│    └──&amp;gt; External API Call: 400 ms&lt;/p&gt;

&lt;p&gt;Now the problem becomes obvious.&lt;/p&gt;

&lt;p&gt;The external API call is responsible for most of the delay.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Without tracing, I might only know that the application is slow.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With tracing, I can see where the time was actually spent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;That difference is incredibly important.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Traces Changed My Debugging Experience
&lt;/h2&gt;




&lt;p&gt;Before exploring tracing, my mental model of debugging was something like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    Something is slow
                            |
                     Check the logs
                            |
                     Check the code
                            |
                    Check the database
                            |
                   Check external services
                            |
                   Try to find the problem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With distributed tracing:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                       Something is slow
                                |
                         Open the trace
                                |
                    Find the slow operation
                                |
                 Investigate the exact component
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The second approach is much more efficient.&lt;/p&gt;

&lt;p&gt;The trace gives me a timeline of what happened during a request.&lt;/p&gt;

&lt;p&gt;I can see:&lt;/p&gt;

&lt;p&gt;• When the request started.&lt;br&gt;
• Which operations were called.&lt;br&gt;
• How long each operation took.&lt;br&gt;
• Where errors occurred.&lt;br&gt;
• Which part of the system created a bottleneck.&lt;/p&gt;

&lt;p&gt;This makes debugging much less dependent on guessing.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Small Experiment
&lt;/h2&gt;




&lt;p&gt;To better understand how tracing works, I tested my application while introducing a delay in one operation.&lt;/p&gt;

&lt;p&gt;The application became slower.&lt;/p&gt;

&lt;p&gt;Instead of trying to guess the reason, I opened the trace in SigNoz.&lt;/p&gt;

&lt;p&gt;The slow operation was immediately visible.&lt;/p&gt;

&lt;p&gt;That was the moment when the value of distributed tracing became clear to me.&lt;/p&gt;

&lt;p&gt;The most important lesson was:&lt;br&gt;
"A slow application response is only a symptom. A trace helps identify the cause."&lt;/p&gt;

&lt;p&gt;This is particularly useful for applications that communicate with multiple services, databases, or external APIs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Traces, Metrics and Logs Together
&lt;/h2&gt;




&lt;p&gt;The real strength of SigNoz is not just one feature.&lt;/p&gt;

&lt;p&gt;It is the connection between different types of observability data.&lt;/p&gt;

&lt;p&gt;A simplified debugging workflow can look like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                              Metric
                                |
                        Something is wrong
                                |
                              Trace
                                |
                   Find the slow or failing operation
                                |
                               Logs
                                |
                      Understand what happened
                                |
                         Dashboard / Alert
                                |
                   Monitor the problem continuously
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Each type of data answers a different question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;METRICS&lt;/strong&gt;&lt;br&gt;
    Is something wrong?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TRACES&lt;/strong&gt;&lt;br&gt;
    Where is the problem happening?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOGS&lt;/strong&gt;&lt;br&gt;
      What exactly happened?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ALERTS&lt;/strong&gt;&lt;br&gt;
      When should someone be notified?&lt;/p&gt;

&lt;p&gt;Together, they create a much clearer picture of an application.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned from Self-Hosting SigNoz
&lt;/h2&gt;




&lt;p&gt;The most valuable part of this experience was not simply clicking through the interface.&lt;/p&gt;

&lt;p&gt;Self-hosting SigNoz helped me understand the complete flow:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                   Application
                        |
                  Telemetry Data
                        |
               Observability Backend
                        |
                   Visualization
                        |
                     Analysis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I also understood that observability is not just about collecting data.&lt;/p&gt;

&lt;p&gt;The real value comes from being able to connect different pieces of information and use them to understand system behavior.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Favorite Feature: A Final Verdict
&lt;/h2&gt;




&lt;p&gt;After exploring traces, metrics, logs, dashboards, and alerts, my favorite feature is still Distributed Tracing.&lt;/p&gt;

&lt;p&gt;The reason is simple:&lt;br&gt;
"It changes debugging from guessing into investigation."&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;br&gt;
“Why is my application slow?”&lt;/p&gt;

&lt;p&gt;I can ask:&lt;br&gt;
“Which exact operation is causing the delay?”&lt;/p&gt;

&lt;p&gt;That is a much better question.&lt;/p&gt;

&lt;p&gt;For me, &lt;strong&gt;the trace view was the feature that made SigNoz feel different from simply looking at application logs or basic monitoring metrics.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;




&lt;p&gt;Self-hosting SigNoz and connecting it to an application gave me a practical introduction to observability.&lt;/p&gt;

&lt;p&gt;I started with the goal of exploring a monitoring platform.&lt;/p&gt;

&lt;p&gt;I finished with a better understanding of how modern applications can be investigated when something goes wrong.&lt;/p&gt;

&lt;p&gt;The feature I liked most was distributed tracing because it provides a visual timeline of a request and helps identify the exact source of delays and failures.&lt;/p&gt;

&lt;p&gt;For anyone learning about observability, I think the best way to understand it is not just by reading about traces and metrics.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         Set up a tool.
                               |
                       Send it real data.
                               |
                  Break something intentionally.
                               |
                Then try to find out why it broke.

     That is when observability really starts to make sense.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is your favorite observability feature — traces, metrics, logs, dashboards, or alerts??&lt;/em&gt;&lt;/strong&gt;*&lt;/p&gt;

&lt;p&gt;== &lt;a href="https://dev.tourl"&gt;&lt;/a&gt;I would love to hear what other developers find most useful.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>devops</category>
      <category>monitoring</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
