From f1e99d18063fd2f6cea5da6c01c6c60e36cd2b9c Mon Sep 17 00:00:00 2001 From: Joey <90795735+joey-grafana@users.noreply.github.com> Date: Wed, 25 Sep 2024 14:17:57 +0100 Subject: [PATCH] [v11.0.x] TraceView: Fix for toString() usage in span filters (#93684) TraceView: Fix for toString() usage in span filters (#93648) Fix for toString() usage (cherry picked from commit d30dc3ad50026284b9d9c07474bceb62ef6bb201) --- .../explore/TraceView/components/utils/filter-spans.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 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 c141ca43ce7..ca3482f63bd 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; @@ -157,13 +157,17 @@ 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 getReturnValue = (operator: string, found: boolean) => { return operator === '=' ? found : !found; }; +const getStringValue = (value: string | number | boolean | undefined) => { + return value ? value.toString() : ''; +}; + const getServiceNameMatches = (spans: TraceSpan[], searchProps: SearchProps) => { return spans.filter((span: TraceSpan) => { return searchProps.serviceNameOperator === '='