<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj" -->

---
title: What happens after you click Run in SigNoz Traces Explorer
description: A deep-dive code walkthrough tracing exactly what happens when you click Run in SigNoz Traces Explorer. Starting from the React ListView component, the request...
canonical: https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: What happens after you click Run in SigNoz Traces Explorer | daily.dev
og:description: A deep-dive code walkthrough tracing exactly what happens when you click Run in SigNoz Traces Explorer. Starting from the React ListView component, the request...
og:url: https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj
og:image: https://api.daily.dev/og/posts/4rS46QAPJ.png
og:image:alt: What happens after you click Run in SigNoz Traces Explorer
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# What happens after you click Run in SigNoz Traces Explorer

**[Medium](https://daily.dev/sources/medium_js)** · 7 min read · 1 upvotes · 0 comments

## Summary

A deep-dive code walkthrough tracing exactly what happens when you click Run in SigNoz Traces Explorer. Starting from the React ListView component, the request flows through a TypeScript payload converter (prepareQueryRangePayloadV5), a shared Go V5 endpoint (/api/v5/query_range), an authenticated handler, a query dispatcher that branches by telemetry signal, a trace-specific SQL statement builder targeting ClickHouse's distributed_signoz_index_v3 table, and finally a compatibility conversion that translates the V5 response back into a legacy shape for existing UI components. Key gotchas include a millisecond-to-nanosecond unit conversion at the statement builder boundary, a shared endpoint handling traces/logs/metrics/PromQL, and a handwritten API client marked for replacement. The author also shares how they used Graphify to map the 6,000+ file repository and ran focused Go tests to verify the SQL-building behavior.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@raj315920/what-happens-after-you-click-run-in-signoz-traces-explorer-0627f374aa3c>

## Questions this post answers

### How does SigNoz's Traces Explorer turn a UI query into ClickHouse SQL?

A UI action in Traces Explorer's List View calls useGetQueryRange, which invokes prepareQueryRangePayloadV5 to build a composite V5 query envelope, POSTed to /api/v5/query_range. A Go handler validates and dispatches it through buildQueries to a trace-specific statement builder, which generates SQL against signoz_traces.distributed_signoz_index_v3 in ClickHouse, then the V5 response is converted back into a legacy shape for existing UI components.

_Engineers debugging tracing pipelines can find deep architecture walkthroughs like this one on daily.dev._

### Why does the same SigNoz function named GetMetricQueryRange handle trace queries too?

Despite the name referencing metrics, GetMetricQueryRange is shared across traces, logs, and metrics because SigNoz's Query Builder uses one composite request format for all telemetry signals rather than a separate endpoint per explorer. The server opens the envelope and dispatches to the implementation matching the signal type, in this case a trace-specific statement builder.

_Developers untangling shared query abstractions across signal types often compare notes on daily.dev._

### Why might a time-range filter cause a trace query to return no results in SigNoz?

Time values pass through unit conversions at each layer: the frontend creates millisecond timestamps, the Go querier normalizes them to epoch milliseconds at its boundary, and the trace statement builder converts milliseconds to nanoseconds before building the ClickHouse query. A mismatch or bug at any of these conversion points is a likely place to look first if a trace query disappears at a time boundary.

_Anyone chasing timestamp-unit bugs in tracing systems can dig into deep dives like this on daily.dev._

## Similar posts on daily.dev

- [Medium](https://daily.dev/posts/medium-cs9w1u9p6) · Medium · 0 upvotes · 0 comments
- [When AI agent traces become application data](https://daily.dev/posts/when-ai-agent-traces-become-application-data-nb2duz3uk) · The New Stack · 1 upvotes · 1 comments
- [GitHub - tracewayapp/traceway: The only tool you need to know what is happening and how to fix it.](https://daily.dev/posts/github---tracewayapp-traceway-the-only-tool-you-need-to-know-what-is-happening-and-how-to-fix-it--axcjlr6uz) · Hacker News · 3 upvotes · 0 comments
- [Observability Is Converging. Humans Aren’t the Only Ones Querying It Anymore](https://daily.dev/posts/observability-is-converging-humans-aren-t-the-only-ones-querying-it-anymore-pnf9z1wtx) · ITNEXT · 5 upvotes · 0 comments
- [How LinkedIn extended ClickHouse from distributed tracing to metric discovery and analytics](https://daily.dev/posts/how-linkedin-extended-clickhouse-from-distributed-tracing-to-metric-discovery-and-analytics-6fy7jqf46) · ClickHouse · 4 upvotes · 0 comments

---

Tags: [#devops](https://daily.dev/tags/devops), [#golang](https://daily.dev/tags/golang), [#observability](https://daily.dev/tags/observability), [#clickhouse](https://daily.dev/tags/clickhouse)

[View this post on daily.dev](https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"What happens after you click Run in SigNoz Traces Explorer","url":"https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj"},"datePublished":"2026-07-21T07:35:24.660Z","dateModified":"2026-09-13T21:18:20.106Z","description":"A deep-dive code walkthrough tracing exactly what happens when you click Run in SigNoz Traces Explorer. Starting from the React ListView component, the request...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1f58010e17d5ad85403480d8bd6ba809?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1f58010e17d5ad85403480d8bd6ba809?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"devops,golang,observability,clickhouse","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"What happens after you click Run in SigNoz Traces Explorer"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/what-happens-after-you-click-run-in-signoz-traces-explorer-4rs46qapj#faq","mainEntity":[{"@type":"Question","name":"How does SigNoz's Traces Explorer turn a UI query into ClickHouse SQL?","acceptedAnswer":{"@type":"Answer","text":"A UI action in Traces Explorer's List View calls useGetQueryRange, which invokes prepareQueryRangePayloadV5 to build a composite V5 query envelope, POSTed to /api/v5/query_range. A Go handler validates and dispatches it through buildQueries to a trace-specific statement builder, which generates SQL against signoz_traces.distributed_signoz_index_v3 in ClickHouse, then the V5 response is converted back into a legacy shape for existing UI components. Engineers debugging tracing pipelines can find deep architecture walkthroughs like this one on daily.dev."}},{"@type":"Question","name":"Why does the same SigNoz function named GetMetricQueryRange handle trace queries too?","acceptedAnswer":{"@type":"Answer","text":"Despite the name referencing metrics, GetMetricQueryRange is shared across traces, logs, and metrics because SigNoz's Query Builder uses one composite request format for all telemetry signals rather than a separate endpoint per explorer. The server opens the envelope and dispatches to the implementation matching the signal type, in this case a trace-specific statement builder. Developers untangling shared query abstractions across signal types often compare notes on daily.dev."}},{"@type":"Question","name":"Why might a time-range filter cause a trace query to return no results in SigNoz?","acceptedAnswer":{"@type":"Answer","text":"Time values pass through unit conversions at each layer: the frontend creates millisecond timestamps, the Go querier normalizes them to epoch milliseconds at its boundary, and the trace statement builder converts milliseconds to nanoseconds before building the ClickHouse query. A mismatch or bug at any of these conversion points is a likely place to look first if a trace query disappears at a time boundary. Anyone chasing timestamp-unit bugs in tracing systems can dig into deep dives like this on daily.dev."}}]}
```

