This is an automated email from the ASF dual-hosted git repository.

zqr10159 pushed a commit to branch 2.0.0
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/2.0.0 by this push:
     new 690700b094 Preserve evidence drilldown filters in signal handoffs
690700b094 is described below

commit 690700b094c1a86e5c7d3294330983c9ec765edc
Author: Logic <[email protected]>
AuthorDate: Tue Jun 9 19:30:06 2026 +0800

    Preserve evidence drilldown filters in signal handoffs
---
 web-next/lib/signal-dashboards.test.ts | 4 ++--
 web-next/lib/signal-dashboards.ts      | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/web-next/lib/signal-dashboards.test.ts 
b/web-next/lib/signal-dashboards.test.ts
index 410257aeed..78af0e2c9c 100644
--- a/web-next/lib/signal-dashboards.test.ts
+++ b/web-next/lib/signal-dashboards.test.ts
@@ -2198,7 +2198,7 @@ describe('signal dashboards API client', () => {
     
expect(buildSignalDashboardRuntimeEvidenceSourceHandoff('/trace/manage?view=list',
 syncTooltip.rows[4], {
       timeRange: { start: '1000', end: '3000' },
       returnTo: '/dashboard?start=1000&end=3000'
-    
})).toBe('/trace/manage?view=list&serviceName=checkout&serviceNamespace=payments&environment=prod&entityId=4200&entityType=service&entityName=Checkout+API&source=otlp&collector=collector-a&template=spring-boot&returnTo=%2Fdashboard%3Fstart%3D1000%26end%3D3000&start=1000&end=3000');
+    
})).toBe('/trace/manage?view=list&serviceName=checkout&serviceNamespace=payments&resourceFilter=db.system%3Dpostgresql&environment=prod&entityId=4200&entityType=service&entityName=Checkout+API&source=otlp&collector=collector-a&template=spring-boot&returnTo=%2Fdashboard%3Fstart%3D1000%26end%3D3000&start=1000&end=3000');
     
expect(buildSignalDashboardRuntimeEvidenceSourceHandoff('/trace/manage?serviceName=payments',
 syncTooltip.rows[2], {
       timeRange: { start: '1000', end: '3000' },
       returnTo: '/dashboard?start=1000&end=3000'
@@ -2206,7 +2206,7 @@ describe('signal dashboards API client', () => {
     
expect(buildSignalDashboardRuntimeEvidenceSourceHandoff('/trace/manage?view=list',
 syncTooltip.rows[6], {
       timeRange: { start: '1000', end: '3000' },
       returnTo: '/dashboard?start=1000&end=3000'
-    
})).toBe('/trace/manage?view=list&serviceName=checkout&serviceNamespace=payments&environment=prod&entityId=4200&entityType=service&entityName=Checkout+API&source=otlp&collector=collector-a&template=spring-boot&returnTo=%2Fdashboard%3Fstart%3D1000%26end%3D3000&start=1000&end=3000');
+    
})).toBe('/trace/manage?view=list&serviceName=checkout&serviceNamespace=payments&operationName=POST+%2Fcheckout&environment=prod&entityId=4200&entityType=service&entityName=Checkout+API&source=otlp&collector=collector-a&template=spring-boot&returnTo=%2Fdashboard%3Fstart%3D1000%26end%3D3000&start=1000&end=3000');
     
expect(buildSignalDashboardRuntimeEvidenceSourceHandoff('/ingestion/otlp/metrics?query=cpu.usage',
 syncTooltip.rows[3], {
       timeRange: { start: '1000', end: '3000' },
       returnTo: '/dashboard?start=1000&end=3000'
diff --git a/web-next/lib/signal-dashboards.ts 
b/web-next/lib/signal-dashboards.ts
index 64f7d5ba3f..9320230601 100644
--- a/web-next/lib/signal-dashboards.ts
+++ b/web-next/lib/signal-dashboards.ts
@@ -3672,6 +3672,14 @@ export function 
buildSignalDashboardRuntimeEvidenceSourceHandoff(
     if (valuesBySource.serviceNamespace && 
!url.searchParams.get('serviceNamespace')) {
       url.searchParams.set('serviceNamespace', 
valuesBySource.serviceNamespace);
     }
+    const normalizedResourceFilter = syncTooltipIdentifier(row.resourceFilter);
+    if (normalizedResourceFilter && (url.pathname === '/trace/manage' || 
url.pathname === '/log/manage') && !url.searchParams.get('resourceFilter')) {
+      url.searchParams.set('resourceFilter', normalizedResourceFilter);
+    }
+    const normalizedOperationName = syncTooltipIdentifier(row.operationName);
+    if (normalizedOperationName && url.pathname === '/trace/manage' && 
!url.searchParams.get('operationName')) {
+      url.searchParams.set('operationName', normalizedOperationName);
+    }
     if (valuesBySource.environment && !url.searchParams.get('environment')) {
       url.searchParams.set('environment', valuesBySource.environment);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to