From 466d6357be309963b6ab3202ccc674479b51053c Mon Sep 17 00:00:00 2001 From: Joey <90795735+joey-grafana@users.noreply.github.com> Date: Wed, 25 Sep 2024 13:58:36 +0100 Subject: [PATCH] [v11.2.x] TraceView: Fix for toString() usage in span filters (#93679) TraceView: Fix for toString() usage in span filters (#93648) Fix for toString() usage (cherry picked from commit d30dc3ad50026284b9d9c07474bceb62ef6bb201) --- .../TraceView/components/utils/filter-spans.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/public/app/features/explore/TraceView/components/utils/filter-spans.tsx b/public/app/features/explore/TraceView/components/utils/filter-spans.tsx index 44845220f38..d1e762c7888 100644 --- a/public/app/features/explore/TraceView/components/utils/filter-spans.tsx +++ b/public/app/features/explore/TraceView/components/utils/filter-spans.tsx @@ -76,7 +76,7 @@ export function getQueryMatches(query: string, spans: TraceSpan[] | TNil) { const isTextInKeyValues = (kvs: TraceKeyValuePair[]) => kvs ? kvs.some((kv) => { - return isTextInQuery(queryParts, kv.key) || isTextInQuery(queryParts, kv.value.toString()); + return isTextInQuery(queryParts, kv.key) || isTextInQuery(queryParts, getStringValue(kv.value)); }) : false; @@ -188,11 +188,15 @@ const checkKeyForMatch = (tagKey: string, key: string) => { }; const checkKeyAndValueForMatch = (tag: Tag, kv: TraceKeyValuePair) => { - return tag.key === kv.key.toString() && tag.value === kv.value.toString() ? true : false; + return tag.key === kv.key && tag.value === getStringValue(kv.value); }; const checkKeyAndValueForRegex = (tag: Tag, kv: TraceKeyValuePair) => { - return kv.key.toString().includes(tag.key || '') && kv.value.toString().includes(tag.value || '') ? true : false; + return kv.key.includes(tag.key || '') && getStringValue(kv.value).includes(tag.value || ''); +}; + +const getStringValue = (value: string | number | boolean | undefined) => { + return value ? value.toString() : ''; }; const getReturnValue = (operator: string, found: boolean) => {