+ {dynamicFilters?.map((f, i) => (
+
+
+ {i === dynamicFilters.length - 1 && (
+
+ )}
+
+ ))}
+
);
};
diff --git a/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.test.tsx b/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.test.tsx
index d97517f788b..212e5e61000 100644
--- a/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.test.tsx
+++ b/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.test.tsx
@@ -2,6 +2,7 @@ import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import React from 'react';
+import { TraceqlSearchScope } from '../dataquery.gen';
import { TempoDatasource } from '../datasource';
import { TempoQuery } from '../types';
@@ -101,7 +102,8 @@ describe('TraceQLSearch', () => {
expect(nameFilter).not.toBeNull();
expect(nameFilter?.operator).toBe('=');
expect(nameFilter?.value).toStrictEqual(['customer']);
- expect(nameFilter?.tag).toBe('.service.name');
+ expect(nameFilter?.tag).toBe('service.name');
+ expect(nameFilter?.scope).toBe(TraceqlSearchScope.Resource);
}
});
diff --git a/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.tsx b/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.tsx
index 0e2047caae2..8d775d898ca 100644
--- a/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.tsx
+++ b/public/app/plugins/datasource/tempo/SearchTraceQLEditor/TraceQLSearch.tsx
@@ -1,5 +1,5 @@
import { css } from '@emotion/css';
-import React, { useState, useEffect } from 'react';
+import React, { useEffect, useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { EditorRow } from '@grafana/experimental';
@@ -10,7 +10,7 @@ import { createErrorNotification } from '../../../../core/copy/appNotification';
import { notifyApp } from '../../../../core/reducers/appNotification';
import { dispatch } from '../../../../store/store';
import { RawQuery } from '../../prometheus/querybuilder/shared/RawQuery';
-import { TraceqlFilter } from '../dataquery.gen';
+import { TraceqlFilter, TraceqlSearchScope } from '../dataquery.gen';
import { TempoDatasource } from '../datasource';
import { TempoQueryBuilderOptions } from '../traceql/TempoQueryBuilderOptions';
import { CompletionProvider } from '../traceql/autocomplete';
@@ -73,8 +73,7 @@ const TraceQLSearch = ({ datasource, query, onChange }: Props) => {
if (!tags.find((t) => t === 'status')) {
tags.push('status');
}
- const tagsWithDot = tags.sort().map((t) => `.${t}`);
- setTags(tagsWithDot);
+ setTags(tags);
setIsTagsLoading(false);
}
} catch (error) {
@@ -96,15 +95,15 @@ const TraceQLSearch = ({ datasource, query, onChange }: Props) => {
findFilter('service-name') || {
id: 'service-name',
type: 'static',
- tag: '.service.name',
+ tag: 'service.name',
operator: '=',
+ scope: TraceqlSearchScope.Resource,
}
}
datasource={datasource}
setError={setError}
updateFilter={updateFilter}
tags={[]}
- operators={['=', '!=', '=~']}
/>