fix(api): query correct SigNoz traces table (v3 not v2)

The SignOz trace data is stored in distributed_signoz_index_v3,
not v2. This fixes GlobalPulse showing all zeros.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-03-23 00:50:15 +08:00
parent b00f318450
commit 7f2adab78b

View File

@@ -252,7 +252,7 @@ class SignOzClient:
# =====================================================================
# Query 1: RPS & Error Rate (從 traces 表直接計算)
# =====================================================================
# 使用 signoz_traces.distributed_signoz_index_v2
# 使用 signoz_traces.distributed_signoz_index_v3
# statusCode: 0=Unset, 1=Ok, 2=Error
# 計算 Unix 納秒時間戳 (ClickHouse DateTime64(9) 格式)
start_ns = int(start_time.timestamp() * 1_000_000_000)
@@ -262,7 +262,7 @@ class SignOzClient:
SELECT
count() as total_requests,
countIf(statusCode = 2) as error_count
FROM signoz_traces.distributed_signoz_index_v2
FROM signoz_traces.distributed_signoz_index_v3
WHERE
timestamp BETWEEN toDateTime64({start_ns}, 9) AND toDateTime64({end_ns}, 9)
AND serviceName LIKE '%{service_name}%'
@@ -288,7 +288,7 @@ class SignOzClient:
quantile(0.50)(durationNano / 1000000.0) as p50,
quantile(0.95)(durationNano / 1000000.0) as p95,
quantile(0.99)(durationNano / 1000000.0) as p99
FROM signoz_traces.distributed_signoz_index_v2
FROM signoz_traces.distributed_signoz_index_v3
WHERE
timestamp BETWEEN toDateTime64({start_ns}, 9) AND toDateTime64({end_ns}, 9)
AND serviceName LIKE '%{service_name}%'
@@ -310,7 +310,7 @@ class SignOzClient:
trend_query = f"""
SELECT count() as prev_requests
FROM signoz_traces.distributed_signoz_index_v2
FROM signoz_traces.distributed_signoz_index_v3
WHERE
timestamp BETWEEN toDateTime64({prev_start_ns}, 9) AND toDateTime64({prev_end_ns}, 9)
AND serviceName LIKE '%{service_name}%'