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 9c4e8d93f2 Record entity context in signal evidence payloads
9c4e8d93f2 is described below
commit 9c4e8d93f2a8253991c692df1eafbee153c9f8ba
Author: Logic <[email protected]>
AuthorDate: Tue Jun 9 19:57:56 2026 +0800
Record entity context in signal evidence payloads
---
web-next/lib/signal-dashboards.test.ts | 39 ++++++++++++++++++++++++++++++++--
web-next/lib/signal-dashboards.ts | 32 +++++++++++++++++++---------
2 files changed, 59 insertions(+), 12 deletions(-)
diff --git a/web-next/lib/signal-dashboards.test.ts
b/web-next/lib/signal-dashboards.test.ts
index 7556770168..b16c77b707 100644
--- a/web-next/lib/signal-dashboards.test.ts
+++ b/web-next/lib/signal-dashboards.test.ts
@@ -2411,9 +2411,19 @@ describe('signal dashboards API client', () => {
traceId: 'trace-1',
spanId: 'span-log',
operationName: 'POST /checkout',
+ serviceNamespace: 'payments',
resourceFilter: 'service.version=1.2.3',
attributeFilter: 'region:us',
- relatedSignal: 'traces'
+ relatedSignal: 'traces',
+ breakoutAttributes: [
+ { key: 'resource:deployment.environment.name:prod', name:
'resource:deployment.environment.name', value: 'prod' },
+ { key: 'resource:hertzbeat.entity_id:4200', name:
'resource:hertzbeat.entity_id', value: '4200' },
+ { key: 'resource:hertzbeat.entity_type:service', name:
'resource:hertzbeat.entity_type', value: 'service' },
+ { key: 'resource:hertzbeat.entity_name:Checkout API', name:
'resource:hertzbeat.entity_name', value: 'Checkout API' },
+ { key: 'resource:hertzbeat.source:otlp', name:
'resource:hertzbeat.source', value: 'otlp' },
+ { key: 'resource:hertzbeat.collector:collector-a', name:
'resource:hertzbeat.collector', value: 'collector-a' },
+ { key: 'resource:hertzbeat.template:spring-boot', name:
'resource:hertzbeat.template', value: 'spring-boot' }
+ ]
},
route:
'/log/manage?view=table&traceId=trace-1&spanId=span-log&serviceName=checkout&start=1000&end=3000',
titlePrefix: 'Evidence panel'
@@ -2434,6 +2444,15 @@ describe('signal dashboards API client', () => {
evidenceSource: 'table-row',
evidenceLabel: 'checkout',
evidenceValue: 'checkout timeout',
+ serviceName: 'checkout',
+ serviceNamespace: 'payments',
+ environment: 'prod',
+ entityId: '4200',
+ entityType: 'service',
+ entityName: 'Checkout API',
+ signalSource: 'otlp',
+ collector: 'collector-a',
+ template: 'spring-boot',
traceId: 'trace-1',
spanId: 'span-log',
operationName: 'POST /checkout',
@@ -2486,7 +2505,16 @@ describe('signal dashboards API client', () => {
label: 'signoz_db_latency_count',
value: '7',
meta: '2000',
- resourceFilter: 'db.system=postgresql'
+ serviceName: 'checkout',
+ serviceNamespace: 'payments',
+ resourceFilter: 'db.system=postgresql',
+ breakoutAttributes: [
+ { key: 'label:deployment.environment.name:prod', name:
'deployment.environment.name', value: 'prod' },
+ { key: 'label:hertzbeat.entity_id:4200', name:
'hertzbeat.entity_id', value: '4200' },
+ { key: 'label:hertzbeat.entity_type:service', name:
'hertzbeat.entity_type', value: 'service' },
+ { key: 'label:hertzbeat.entity_name:Checkout API', name:
'hertzbeat.entity_name', value: 'Checkout API' },
+ { key: 'label:hertzbeat.source:otlp', name: 'hertzbeat.source',
value: 'otlp' }
+ ]
},
route:
'/ingestion/otlp/metrics?query=signoz_db_latency_count&serviceName=checkout&series=postgresql&inspector=graph&start=1000&end=3000',
attribute: {
@@ -2512,6 +2540,13 @@ describe('signal dashboards API client', () => {
evidenceSource: 'metrics-point',
evidenceLabel: 'signoz_db_latency_count',
evidenceValue: '7',
+ serviceName: 'checkout',
+ serviceNamespace: 'payments',
+ environment: 'prod',
+ entityId: '4200',
+ entityType: 'service',
+ entityName: 'Checkout API',
+ signalSource: 'otlp',
resourceFilter: 'db.system=postgresql',
breakoutAttribute: 'db.system',
breakoutAttributeValue: 'postgresql'
diff --git a/web-next/lib/signal-dashboards.ts
b/web-next/lib/signal-dashboards.ts
index 83c3502386..6491d57bbd 100644
--- a/web-next/lib/signal-dashboards.ts
+++ b/web-next/lib/signal-dashboards.ts
@@ -1224,6 +1224,26 @@ function runtimeEvidencePanelLabel(
return row.label || row.signal;
}
+function runtimeEvidencePayloadContext(row:
SignalDashboardRuntimeSyncTooltipRow) {
+ const values = evidenceFilterValues(row);
+ return {
+ ...(values.service ? { serviceName: values.service } : {}),
+ ...(values.serviceNamespace ? { serviceNamespace: values.serviceNamespace
} : {}),
+ ...(values.environment ? { environment: values.environment } : {}),
+ ...(values.entityId ? { entityId: values.entityId } : {}),
+ ...(values.entityType ? { entityType: values.entityType } : {}),
+ ...(values.entityName ? { entityName: values.entityName } : {}),
+ ...(values.signalSource ? { signalSource: values.signalSource } : {}),
+ ...(values.collector ? { collector: values.collector } : {}),
+ ...(values.template ? { template: values.template } : {}),
+ ...(values.operation ? { operationName: values.operation } : {}),
+ ...(values.resourceFilter ? { resourceFilter: values.resourceFilter } :
{}),
+ ...(values.attributeFilter ? { attributeFilter: values.attributeFilter } :
{}),
+ ...(values.traceId ? { traceId: values.traceId } : {}),
+ ...(values.spanId ? { spanId: values.spanId } : {})
+ };
+}
+
export function createSignalDashboardPanelDraftFromRuntimeEvidence(input: {
row: SignalDashboardRuntimeSyncTooltipRow;
route: string;
@@ -1252,11 +1272,7 @@ export function
createSignalDashboardPanelDraftFromRuntimeEvidence(input: {
evidenceLabel,
evidenceSeriesLabel: input.row.label,
evidenceValue: input.row.value,
- ...(input.row.traceId ? { traceId: input.row.traceId } : {}),
- ...(input.row.spanId ? { spanId: input.row.spanId } : {}),
- ...(input.row.operationName ? { operationName: input.row.operationName }
: {}),
- ...(input.row.resourceFilter ? { resourceFilter:
input.row.resourceFilter } : {}),
- ...(input.row.attributeFilter ? { attributeFilter:
input.row.attributeFilter } : {}),
+ ...runtimeEvidencePayloadContext(input.row),
...(input.row.relatedSignal ? { relatedSignal: input.row.relatedSignal }
: {})
}
});
@@ -1314,11 +1330,7 @@ export function
createSignalDashboardPanelDraftFromRuntimeBreakout(input: {
evidenceSource: input.row.source,
evidenceLabel,
evidenceValue: input.row.value,
- ...(input.row.traceId ? { traceId: input.row.traceId } : {}),
- ...(input.row.spanId ? { spanId: input.row.spanId } : {}),
- ...(input.row.operationName ? { operationName: input.row.operationName }
: {}),
- ...(input.row.resourceFilter ? { resourceFilter:
input.row.resourceFilter } : {}),
- ...(input.row.attributeFilter ? { attributeFilter:
input.row.attributeFilter } : {}),
+ ...runtimeEvidencePayloadContext(input.row),
breakoutAttribute: attributeName,
...(attributeValue ? { breakoutAttributeValue: attributeValue } : {})
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]