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..942a13a476b 100644 --- a/public/app/features/explore/TraceView/components/utils/filter-spans.tsx +++ b/public/app/features/explore/TraceView/components/utils/filter-spans.tsx @@ -109,17 +109,15 @@ const getTagMatches = (spans: TraceSpan[], tags: Tag[]) => { // match against every tag filter return tags.every((tag: Tag) => { if (tag.key && tag.value) { - if (tag.operator === '=' && checkKeyValConditionForMatch(tag, span)) { - return getReturnValue(tag.operator, true); - } else if (tag.operator === '=~' && checkKeyValConditionForRegex(tag, span)) { - return getReturnValue(tag.operator, false); - } else if (tag.operator === '!=' && !checkKeyValConditionForMatch(tag, span)) { - return getReturnValue(tag.operator, false); - } else if (tag.operator === '!~' && !checkKeyValConditionForRegex(tag, span)) { - return getReturnValue(tag.operator, false); - } else { - return false; + if ( + (tag.operator === '=' && checkKeyValConditionForMatch(tag, span)) || + (tag.operator === '=~' && checkKeyValConditionForRegex(tag, span)) || + (tag.operator === '!=' && !checkKeyValConditionForMatch(tag, span)) || + (tag.operator === '!~' && !checkKeyValConditionForRegex(tag, span)) + ) { + return true; } + return false; } else if (tag.key) { if ( span.tags.some((kv) => checkKeyForMatch(tag.key!, kv.key)) || @@ -133,10 +131,11 @@ const getTagMatches = (spans: TraceSpan[], tags: Tag[]) => { (span.traceState && tag.key === TRACE_STATE) || tag.key === ID ) { - return getReturnValue(tag.operator, true); + return tag.operator === '=' || tag.operator === '=~' ? true : false; } + return tag.operator === '=' || tag.operator === '=~' ? false : true; } - return getReturnValue(tag.operator, false); + return false; }); }); } @@ -184,30 +183,15 @@ const checkKeyValConditionForMatch = (tag: Tag, span: TraceSpan) => { }; const checkKeyForMatch = (tagKey: string, key: string) => { - return tagKey === key.toString() ? true : false; + return tagKey === key.toString(); }; const checkKeyAndValueForMatch = (tag: Tag, kv: TraceKeyValuePair) => { - return tag.key === kv.key.toString() && tag.value === kv.value.toString() ? true : false; + return tag.key === kv.key.toString() && tag.value === kv.value.toString(); }; const checkKeyAndValueForRegex = (tag: Tag, kv: TraceKeyValuePair) => { - return kv.key.toString().includes(tag.key || '') && kv.value.toString().includes(tag.value || '') ? true : false; -}; - -const getReturnValue = (operator: string, found: boolean) => { - switch (operator) { - case '=': - return found; - case '!=': - return !found; - case '~=': - return !found; - case '!~': - return !found; - default: - return !found; - } + return kv.key.toString().includes(tag.key || '') && kv.value.toString().includes(tag.value || ''); }; const getServiceNameMatches = (spans: TraceSpan[], searchProps: SearchProps) => {