From 6522bb377e1bc4b64fe0aebd7e34ec2111859e11 Mon Sep 17 00:00:00 2001
From: Joey <90795735+joey-grafana@users.noreply.github.com>
Date: Fri, 21 Apr 2023 11:31:24 +0100
Subject: [PATCH] Tracing: Rename feature toggle (#66833)

Rename feature toggle so something more specific so new work can use older feature toggle name
---
 docs/sources/datasources/jaeger/_index.md     |   2 +-
 docs/sources/datasources/tempo/_index.md      |   2 +-
 docs/sources/datasources/zipkin/_index.md     |   2 +-
 docs/sources/explore/trace-integration.md     |   2 +-
 .../feature-toggles/index.md                  |   2 +-
 .../src/types/featureToggles.gen.ts           |   2 +-
 pkg/services/featuremgmt/registry.go          |   4 +-
 pkg/services/featuremgmt/toggles_gen.csv      |   2 +-
 pkg/services/featuremgmt/toggles_gen.go       |   6 +-
 .../features/explore/TraceView/TraceView.tsx  |  24 ++--
 .../explore/TraceView/TraceViewContainer.tsx  |   4 +-
 .../NewTracePageHeader.test.tsx               |   2 +-
 .../explore/TraceView/components/index.ts     |   2 +-
 .../components/utils/filter-spans.test.ts     | 130 ++++++++++--------
 .../components/utils/filter-spans.tsx         |   4 +-
 .../explore/TraceView/useSearch.test.ts       |  10 +-
 .../features/explore/TraceView/useSearch.ts   |  14 +-
 .../app/plugins/panel/traces/TracesPanel.tsx  |   2 +-
 18 files changed, 120 insertions(+), 96 deletions(-)

diff --git a/docs/sources/datasources/jaeger/_index.md b/docs/sources/datasources/jaeger/_index.md
index 091e8934989..7d26e429ec4 100644
--- a/docs/sources/datasources/jaeger/_index.md
+++ b/docs/sources/datasources/jaeger/_index.md
@@ -295,7 +295,7 @@ If the file has multiple traces, Grafana visualizes its first trace.
 
 ## Span Filters
 
-> **Note:** This feature is behind the `newTraceView` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
+> **Note:** This feature is behind the `newTraceViewHeader` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
 > If you use Grafana Cloud, open a [support ticket in the Cloud Portal](/profile/org#support) to access this feature.
 
 ![Screenshot of span filtering](/media/docs/tempo/screenshot-grafana-tempo-span-filters.png)
diff --git a/docs/sources/datasources/tempo/_index.md b/docs/sources/datasources/tempo/_index.md
index 820f9bbe4db..3a3dd770f96 100644
--- a/docs/sources/datasources/tempo/_index.md
+++ b/docs/sources/datasources/tempo/_index.md
@@ -359,7 +359,7 @@ To open a query in Tempo with the span name of that row automatically set in the
 
 ## Span Filters
 
-> **Note:** This feature is behind the `newTraceView` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
+> **Note:** This feature is behind the `newTraceViewHeader` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
 > If you use Grafana Cloud, open a [support ticket in the Cloud Portal](/profile/org#support) to access this feature.
 
 ![Screenshot of span filtering](/media/docs/tempo/screenshot-grafana-tempo-span-filters.png)
diff --git a/docs/sources/datasources/zipkin/_index.md b/docs/sources/datasources/zipkin/_index.md
index c3de7290d6e..308552fe7fa 100644
--- a/docs/sources/datasources/zipkin/_index.md
+++ b/docs/sources/datasources/zipkin/_index.md
@@ -264,7 +264,7 @@ If the file has multiple traces, Grafana visualizes its first trace.
 
 ## Span Filters
 
-> **Note:** This feature is behind the `newTraceView` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
+> **Note:** This feature is behind the `newTraceViewHeader` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
 > If you use Grafana Cloud, open a [support ticket in the Cloud Portal](/profile/org#support) to access this feature.
 
 ![Screenshot of span filtering](/media/docs/tempo/screenshot-grafana-tempo-span-filters.png)
diff --git a/docs/sources/explore/trace-integration.md b/docs/sources/explore/trace-integration.md
index 69b1e90231f..15f743d58ca 100644
--- a/docs/sources/explore/trace-integration.md
+++ b/docs/sources/explore/trace-integration.md
@@ -42,7 +42,7 @@ Shows condensed view or the trace timeline. Drag your mouse over the minimap to
 
 ### Span Filters
 
-> **Note:** This feature is behind the `newTraceView` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
+> **Note:** This feature is behind the `newTraceViewHeader` [feature toggle]({{< relref "../../setup-grafana/configure-grafana#feature_toggles" >}}).
 > If you use Grafana Cloud, open a [support ticket in the Cloud Portal](/profile/org#support) to access this feature.
 
 ![Screenshot of span filtering](/media/docs/tempo/screenshot-grafana-tempo-span-filters.png)
diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md
index b0cb06aab05..a4b50479e7c 100644
--- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md
+++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md
@@ -70,7 +70,7 @@ Alpha features might be changed or removed without prior notice.
 | `publicDashboardsEmailSharing`     | Enables public dashboard sharing to be restricted to only allowed emails                                                                                                                            |
 | `lokiLive`                         | Support WebSocket streaming for loki (early prototype)                                                                                                                                              |
 | `storage`                          | Configurable storage for dashboards, datasources, and resources                                                                                                                                     |
-| `newTraceView`                     | Shows the new trace view design                                                                                                                                                                     |
+| `newTraceViewHeader`               | Shows the new trace view header                                                                                                                                                                     |
 | `datasourceQueryMultiStatus`       | Introduce HTTP 207 Multi Status for api/ds/query                                                                                                                                                    |
 | `traceToMetrics`                   | Enable trace to metrics links                                                                                                                                                                       |
 | `prometheusWideSeries`             | Enable wide series responses in the Prometheus datasource                                                                                                                                           |
diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts
index e31c4cca901..9eedfbb439f 100644
--- a/packages/grafana-data/src/types/featureToggles.gen.ts
+++ b/packages/grafana-data/src/types/featureToggles.gen.ts
@@ -33,7 +33,7 @@ export interface FeatureToggles {
   storage?: boolean;
   k8s?: boolean;
   exploreMixedDatasource?: boolean;
-  newTraceView?: boolean;
+  newTraceViewHeader?: boolean;
   correlations?: boolean;
   cloudWatchDynamicLabels?: boolean;
   datasourceQueryMultiStatus?: boolean;
diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go
index ebbf9866eaf..89e93e6d614 100644
--- a/pkg/services/featuremgmt/registry.go
+++ b/pkg/services/featuremgmt/registry.go
@@ -105,8 +105,8 @@ var (
 			Owner:        grafanaExploreSquad,
 		},
 		{
-			Name:         "newTraceView",
-			Description:  "Shows the new trace view design",
+			Name:         "newTraceViewHeader",
+			Description:  "Shows the new trace view header",
 			State:        FeatureStateAlpha,
 			FrontendOnly: true,
 			Owner:        grafanaObservabilityTracesAndProfilingSquad,
diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv
index 6ff2620cad0..d9c0df0a89b 100644
--- a/pkg/services/featuremgmt/toggles_gen.csv
+++ b/pkg/services/featuremgmt/toggles_gen.csv
@@ -14,7 +14,7 @@ migrationLocking,beta,@grafana/backend-platform,false,false,false,false
 storage,alpha,@grafana/grafana-app-platform-squad,false,false,false,false
 k8s,alpha,@grafana/grafana-app-platform-squad,true,false,false,false
 exploreMixedDatasource,beta,@grafana/explore-squad,false,false,false,true
-newTraceView,alpha,@grafana/observability-traces-and-profiling,false,false,false,true
+newTraceViewHeader,alpha,@grafana/observability-traces-and-profiling,false,false,false,true
 correlations,beta,@grafana/explore-squad,false,false,false,false
 cloudWatchDynamicLabels,stable,@grafana/aws-plugins,false,false,false,false
 datasourceQueryMultiStatus,alpha,@grafana/plugins-platform-backend,false,false,false,false
diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go
index f5bcadbce47..d3defd21235 100644
--- a/pkg/services/featuremgmt/toggles_gen.go
+++ b/pkg/services/featuremgmt/toggles_gen.go
@@ -67,9 +67,9 @@ const (
 	// Enable mixed datasource in Explore
 	FlagExploreMixedDatasource = "exploreMixedDatasource"
 
-	// FlagNewTraceView
-	// Shows the new trace view design
-	FlagNewTraceView = "newTraceView"
+	// FlagNewTraceViewHeader
+	// Shows the new trace view header
+	FlagNewTraceViewHeader = "newTraceViewHeader"
 
 	// FlagCorrelations
 	// Correlations page
diff --git a/public/app/features/explore/TraceView/TraceView.tsx b/public/app/features/explore/TraceView/TraceView.tsx
index 5e9a44b5873..1d2c655f79a 100644
--- a/public/app/features/explore/TraceView/TraceView.tsx
+++ b/public/app/features/explore/TraceView/TraceView.tsx
@@ -41,7 +41,7 @@ import { createSpanLinkFactory } from './createSpanLink';
 import { useChildrenState } from './useChildrenState';
 import { useDetailState } from './useDetailState';
 import { useHoverIndentGuide } from './useHoverIndentGuide';
-import { useSearchNewTraceView } from './useSearch';
+import { useSearchNewTraceViewHeader } from './useSearch';
 import { useViewRange } from './useViewRange';
 
 const getStyles = (theme: GrafanaTheme2) => ({
@@ -94,8 +94,10 @@ export function TraceView(props: Props) {
   const { removeHoverIndentGuideId, addHoverIndentGuideId, hoverIndentGuideIds } = useHoverIndentGuide();
   const { viewRange, updateViewRangeTime, updateNextViewRangeTime } = useViewRange();
   const { expandOne, collapseOne, childrenToggle, collapseAll, childrenHiddenIDs, expandAll } = useChildrenState();
-  const { newTraceViewSearch, setNewTraceViewSearch, spanFilterMatches } = useSearchNewTraceView(traceProp?.spans);
-  const [newTraceViewFocusedSpanIdForSearch, setNewTraceViewFocusedSpanIdForSearch] = useState('');
+  const { newTraceViewHeaderSearch, setNewTraceViewHeaderSearch, spanFilterMatches } = useSearchNewTraceViewHeader(
+    traceProp?.spans
+  );
+  const [newTraceViewHeaderFocusedSpanIdForSearch, setNewTraceViewHeaderFocusedSpanIdForSearch] = useState('');
   const [showSpanFilters, setShowSpanFilters] = useToggle(false);
   const [headerHeight, setHeaderHeight] = useState(0);
 
@@ -152,17 +154,17 @@ export function TraceView(props: Props) {
     <>
       {props.dataFrames?.length && traceProp ? (
         <>
-          {config.featureToggles.newTraceView ? (
+          {config.featureToggles.newTraceViewHeader ? (
             <>
               <NewTracePageHeader
                 trace={traceProp}
                 timeZone={timeZone}
-                search={newTraceViewSearch}
-                setSearch={setNewTraceViewSearch}
+                search={newTraceViewHeaderSearch}
+                setSearch={setNewTraceViewHeaderSearch}
                 showSpanFilters={showSpanFilters}
                 setShowSpanFilters={setShowSpanFilters}
-                focusedSpanIdForSearch={newTraceViewFocusedSpanIdForSearch}
-                setFocusedSpanIdForSearch={setNewTraceViewFocusedSpanIdForSearch}
+                focusedSpanIdForSearch={newTraceViewHeaderFocusedSpanIdForSearch}
+                setFocusedSpanIdForSearch={setNewTraceViewHeaderFocusedSpanIdForSearch}
                 spanFilterMatches={spanFilterMatches}
                 datasourceType={datasourceType}
                 setHeaderHeight={setHeaderHeight}
@@ -186,7 +188,7 @@ export function TraceView(props: Props) {
           <TraceTimelineViewer
             registerAccessors={noop}
             scrollToFirstVisibleSpan={noop}
-            findMatchesIDs={config.featureToggles.newTraceView ? spanFilterMatches : spanFindMatches}
+            findMatchesIDs={config.featureToggles.newTraceViewHeader ? spanFilterMatches : spanFindMatches}
             trace={traceProp}
             datasourceType={datasourceType}
             spanBarOptions={spanBarOptions?.spanBar}
@@ -220,7 +222,9 @@ export function TraceView(props: Props) {
             scrollElement={scrollElement}
             focusedSpanId={focusedSpanId}
             focusedSpanIdForSearch={
-              config.featureToggles.newTraceView ? newTraceViewFocusedSpanIdForSearch : props.focusedSpanIdForSearch!
+              config.featureToggles.newTraceViewHeader
+                ? newTraceViewHeaderFocusedSpanIdForSearch
+                : props.focusedSpanIdForSearch!
             }
             createFocusSpanLink={createFocusSpanLink}
             topOfViewRef={topOfViewRef}
diff --git a/public/app/features/explore/TraceView/TraceViewContainer.tsx b/public/app/features/explore/TraceView/TraceViewContainer.tsx
index feb8df59faf..b11e1d4263d 100644
--- a/public/app/features/explore/TraceView/TraceViewContainer.tsx
+++ b/public/app/features/explore/TraceView/TraceViewContainer.tsx
@@ -33,7 +33,7 @@ const getStyles = (theme: GrafanaTheme2) => ({
     display: flex;
     flex-direction: column;
     flex: 1 1 0;
-    padding: ${config.featureToggles.newTraceView ? 0 : theme.spacing(theme.components.panel.padding)};
+    padding: ${config.featureToggles.newTraceViewHeader ? 0 : theme.spacing(theme.components.panel.padding)};
   `,
 });
 
@@ -57,7 +57,7 @@ export function TraceViewContainer(props: Props) {
 
   return (
     <div className={style.container}>
-      {!config.featureToggles.newTraceView && (
+      {!config.featureToggles.newTraceViewHeader && (
         <TracePageSearchBar
           navigable={true}
           searchValue={search}
diff --git a/public/app/features/explore/TraceView/components/TracePageHeader/NewTracePageHeader.test.tsx b/public/app/features/explore/TraceView/components/TracePageHeader/NewTracePageHeader.test.tsx
index d68935d294b..64db99647b1 100644
--- a/public/app/features/explore/TraceView/components/TracePageHeader/NewTracePageHeader.test.tsx
+++ b/public/app/features/explore/TraceView/components/TracePageHeader/NewTracePageHeader.test.tsx
@@ -42,7 +42,7 @@ const setup = () => {
 
 describe('NewTracePageHeader test', () => {
   it('should render the new trace header', () => {
-    config.featureToggles.newTraceView = true;
+    config.featureToggles.newTraceViewHeader = true;
     setup();
 
     const header = document.querySelector('header');
diff --git a/public/app/features/explore/TraceView/components/index.ts b/public/app/features/explore/TraceView/components/index.ts
index 334855a9ebc..5412992f8d8 100644
--- a/public/app/features/explore/TraceView/components/index.ts
+++ b/public/app/features/explore/TraceView/components/index.ts
@@ -6,5 +6,5 @@ export * from './types';
 export * from './TraceTimelineViewer/types';
 export { default as DetailState } from './TraceTimelineViewer/SpanDetail/DetailState';
 export { default as transformTraceData } from './model/transform-trace-data';
-export { filterSpansNewTraceView, filterSpans } from './utils/filter-spans';
+export { filterSpansNewTraceViewHeader, filterSpans } from './utils/filter-spans';
 export * from './Theme';
diff --git a/public/app/features/explore/TraceView/components/utils/filter-spans.test.ts b/public/app/features/explore/TraceView/components/utils/filter-spans.test.ts
index 65fe9d37d88..ed733b88a4c 100644
--- a/public/app/features/explore/TraceView/components/utils/filter-spans.test.ts
+++ b/public/app/features/explore/TraceView/components/utils/filter-spans.test.ts
@@ -15,7 +15,7 @@
 import { defaultFilters, defaultTagFilter } from '../../useSearch';
 import { TraceSpan } from '../types';
 
-import { filterSpans, filterSpansNewTraceView } from './filter-spans';
+import { filterSpans, filterSpansNewTraceViewHeader } from './filter-spans';
 
 describe('filterSpans', () => {
   // span0 contains strings that end in 0 or 1
@@ -110,46 +110,51 @@ describe('filterSpans', () => {
   const spans = [span0, span2] as TraceSpan[];
 
   it('should return `undefined` if spans is falsy', () => {
-    expect(filterSpansNewTraceView({ ...defaultFilters, spanName: 'operationName' }, null)).toBe(undefined);
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, spanName: 'operationName' }, null)).toBe(undefined);
   });
 
   // Service / span name
   it('should return spans whose serviceName match a filter', () => {
-    expect(filterSpansNewTraceView({ ...defaultFilters, serviceName: 'serviceName0' }, spans)).toEqual(
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, serviceName: 'serviceName0' }, spans)).toEqual(
       new Set([spanID0])
     );
-    expect(filterSpansNewTraceView({ ...defaultFilters, serviceName: 'serviceName2' }, spans)).toEqual(
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, serviceName: 'serviceName2' }, spans)).toEqual(
       new Set([spanID2])
     );
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, serviceName: 'serviceName2', serviceNameOperator: '!=' }, spans)
+      filterSpansNewTraceViewHeader(
+        { ...defaultFilters, serviceName: 'serviceName2', serviceNameOperator: '!=' },
+        spans
+      )
     ).toEqual(new Set([spanID0]));
   });
 
   it('should return spans whose operationName match a filter', () => {
-    expect(filterSpansNewTraceView({ ...defaultFilters, spanName: 'operationName0' }, spans)).toEqual(
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, spanName: 'operationName0' }, spans)).toEqual(
       new Set([spanID0])
     );
-    expect(filterSpansNewTraceView({ ...defaultFilters, spanName: 'operationName2' }, spans)).toEqual(
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, spanName: 'operationName2' }, spans)).toEqual(
       new Set([spanID2])
     );
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, spanName: 'operationName2', spanNameOperator: '!=' }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, spanName: 'operationName2', spanNameOperator: '!=' }, spans)
     ).toEqual(new Set([spanID0]));
   });
 
   // Durations
   it('should return spans whose duration match a filter', () => {
-    expect(filterSpansNewTraceView({ ...defaultFilters, from: '2ms' }, spans)).toEqual(new Set([spanID0, spanID2]));
-    expect(filterSpansNewTraceView({ ...defaultFilters, from: '3.05ms' }, spans)).toEqual(new Set([spanID2]));
-    expect(filterSpansNewTraceView({ ...defaultFilters, from: '3.05ms', fromOperator: '>=' }, spans)).toEqual(
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, from: '2ms' }, spans)).toEqual(
+      new Set([spanID0, spanID2])
+    );
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, from: '3.05ms' }, spans)).toEqual(new Set([spanID2]));
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, from: '3.05ms', fromOperator: '>=' }, spans)).toEqual(
       new Set([spanID0, spanID2])
     );
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, from: '3.05ms', fromOperator: '>=', to: '4ms' }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, from: '3.05ms', fromOperator: '>=', to: '4ms' }, spans)
     ).toEqual(new Set([spanID0]));
-    expect(filterSpansNewTraceView({ ...defaultFilters, to: '4ms' }, spans)).toEqual(new Set([spanID0]));
-    expect(filterSpansNewTraceView({ ...defaultFilters, to: '5ms', toOperator: '<=' }, spans)).toEqual(
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, to: '4ms' }, spans)).toEqual(new Set([spanID0]));
+    expect(filterSpansNewTraceViewHeader({ ...defaultFilters, to: '5ms', toOperator: '<=' }, spans)).toEqual(
       new Set([spanID0, spanID2])
     );
   });
@@ -157,16 +162,16 @@ describe('filterSpans', () => {
   // Tags
   it('should return spans whose tags kv.key match a filter', () => {
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey1' }] }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey1' }] }, spans)
     ).toEqual(new Set([spanID0, spanID2]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey0' }] }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey0' }] }, spans)
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey2' }] }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey2' }] }, spans)
     ).toEqual(new Set([spanID2]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey2', operator: '!=' }] },
         spans
       )
@@ -175,16 +180,25 @@ describe('filterSpans', () => {
 
   it('should return spans whose process.tags kv.key match a filter', () => {
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey1' }] }, spans)
+      filterSpansNewTraceViewHeader(
+        { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey1' }] },
+        spans
+      )
     ).toEqual(new Set([spanID0, spanID2]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey0' }] }, spans)
+      filterSpansNewTraceViewHeader(
+        { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey0' }] },
+        spans
+      )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey2' }] }, spans)
+      filterSpansNewTraceViewHeader(
+        { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey2' }] },
+        spans
+      )
     ).toEqual(new Set([spanID2]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'processTagKey2', operator: '!=' }] },
         spans
       )
@@ -193,16 +207,16 @@ describe('filterSpans', () => {
 
   it('should return spans whose logs have a field whose kv.key match a filter', () => {
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey1' }] }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey1' }] }, spans)
     ).toEqual(new Set([spanID0, spanID2]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey0' }] }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey0' }] }, spans)
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey2' }] }, spans)
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey2' }] }, spans)
     ).toEqual(new Set([spanID2]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey2', operator: '!=' }] },
         spans
       )
@@ -212,7 +226,7 @@ describe('filterSpans', () => {
   it('should return no spans when logs is null', () => {
     const nullSpan = { ...span0, logs: null };
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey1' }] }, [
+      filterSpansNewTraceViewHeader({ ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'logFieldKey1' }] }, [
         nullSpan,
       ] as unknown as TraceSpan[])
     ).toEqual(new Set([]));
@@ -220,13 +234,13 @@ describe('filterSpans', () => {
 
   it("should return spans whose tags' kv.key and kv.value match a filter", () => {
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey1', value: 'tagValue1' }] },
         spans
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey1', value: 'tagValue1', operator: '!=' }] },
         spans
       )
@@ -235,19 +249,19 @@ describe('filterSpans', () => {
 
   it("should not return spans whose tags' kv.key match a filter but kv.value/operator does not match", () => {
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey1', operator: '!=' }] },
         spans
       )
     ).toEqual(new Set());
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey2', operator: '!=' }] },
         spans
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, tags: [{ ...defaultTagFilter, key: 'tagKey1', value: 'tagValue1', operator: '!=' }] },
         spans
       )
@@ -257,7 +271,7 @@ describe('filterSpans', () => {
   it('should return spans with multiple tag filters', () => {
     // tags in same span
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -269,7 +283,7 @@ describe('filterSpans', () => {
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -281,7 +295,7 @@ describe('filterSpans', () => {
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -295,7 +309,7 @@ describe('filterSpans', () => {
 
     // tags in different spans
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -307,7 +321,7 @@ describe('filterSpans', () => {
       )
     ).toEqual(new Set());
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -321,7 +335,7 @@ describe('filterSpans', () => {
 
     // values in different spans
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -333,7 +347,7 @@ describe('filterSpans', () => {
       )
     ).toEqual(new Set());
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -345,7 +359,7 @@ describe('filterSpans', () => {
       )
     ).toEqual(new Set());
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -357,7 +371,7 @@ describe('filterSpans', () => {
       )
     ).toEqual(new Set());
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           tags: [
@@ -374,13 +388,19 @@ describe('filterSpans', () => {
   it('should return spans with multiple filters', () => {
     // service name + span name
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName0' }, spans)
+      filterSpansNewTraceViewHeader(
+        { ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName0' },
+        spans
+      )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView({ ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName2' }, spans)
+      filterSpansNewTraceViewHeader(
+        { ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName2' },
+        spans
+      )
     ).toEqual(new Set([]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName2', spanNameOperator: '!=' },
         spans
       )
@@ -388,19 +408,19 @@ describe('filterSpans', () => {
 
     // service name + span name + duration
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName0', from: '2ms' },
         spans
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName0', spanName: 'operationName0', to: '2ms' },
         spans
       )
     ).toEqual(new Set([]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName2', spanName: 'operationName2', to: '6ms' },
         spans
       )
@@ -408,31 +428,31 @@ describe('filterSpans', () => {
 
     // service name + tag key
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName0', tags: [{ ...defaultTagFilter, key: 'tagKey0' }] },
         spans
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName0', tags: [{ ...defaultTagFilter, key: 'tagKey1' }] },
         spans
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName2', tags: [{ ...defaultTagFilter, key: 'tagKey1' }] },
         spans
       )
     ).toEqual(new Set([spanID2]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, serviceName: 'serviceName2', tags: [{ ...defaultTagFilter, key: 'tagKey2' }] },
         spans
       )
     ).toEqual(new Set([spanID2]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           serviceName: 'serviceName0',
@@ -444,13 +464,13 @@ describe('filterSpans', () => {
 
     // duration + tag
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, from: '2ms', tags: [{ ...defaultTagFilter, key: 'tagKey0' }] },
         spans
       )
     ).toEqual(new Set([spanID0]));
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         { ...defaultFilters, to: '5ms', toOperator: '<=', tags: [{ ...defaultTagFilter, key: 'tagKey2' }] },
         spans
       )
@@ -458,7 +478,7 @@ describe('filterSpans', () => {
 
     // all
     expect(
-      filterSpansNewTraceView(
+      filterSpansNewTraceViewHeader(
         {
           ...defaultFilters,
           serviceName: 'serviceName0',
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 a9e5c5be92c..e3d4735c769 100644
--- a/public/app/features/explore/TraceView/components/utils/filter-spans.tsx
+++ b/public/app/features/explore/TraceView/components/utils/filter-spans.tsx
@@ -17,7 +17,7 @@ import { TNil, TraceKeyValuePair, TraceSpan } from '../types';
 
 // filter spans where all filters added need to be true for each individual span that is returned
 // i.e. the more filters added -> the more specific that the returned results are
-export function filterSpansNewTraceView(searchProps: SearchProps, spans: TraceSpan[] | TNil) {
+export function filterSpansNewTraceViewHeader(searchProps: SearchProps, spans: TraceSpan[] | TNil) {
   if (!spans) {
     return undefined;
   }
@@ -151,7 +151,7 @@ export const convertTimeFilter = (time: string) => {
   return undefined;
 };
 
-// legacy code that will be removed when the newTraceView feature flag is removed
+// legacy code that will be removed when the Header feature flag is removed
 export function filterSpans(textFilter: string, spans: TraceSpan[] | TNil) {
   if (!spans) {
     return undefined;
diff --git a/public/app/features/explore/TraceView/useSearch.test.ts b/public/app/features/explore/TraceView/useSearch.test.ts
index e144f8fa733..683de3c11fe 100644
--- a/public/app/features/explore/TraceView/useSearch.test.ts
+++ b/public/app/features/explore/TraceView/useSearch.test.ts
@@ -1,7 +1,7 @@
 import { act, renderHook } from '@testing-library/react';
 
 import { TraceSpan } from './components';
-import { defaultFilters, useSearch, useSearchNewTraceView } from './useSearch';
+import { defaultFilters, useSearch, useSearchNewTraceViewHeader } from './useSearch';
 
 describe('useSearch', () => {
   const spans = [
@@ -28,15 +28,15 @@ describe('useSearch', () => {
   ];
 
   it('returns matching span IDs', async () => {
-    const { result } = renderHook(() => useSearchNewTraceView(spans));
-    act(() => result.current.setNewTraceViewSearch({ ...defaultFilters, serviceName: 'service1' }));
+    const { result } = renderHook(() => useSearchNewTraceViewHeader(spans));
+    act(() => result.current.setNewTraceViewHeaderSearch({ ...defaultFilters, serviceName: 'service1' }));
     expect(result.current.spanFilterMatches?.size).toBe(1);
     expect(result.current.spanFilterMatches?.has('span1')).toBe(true);
   });
 
   it('works without spans', async () => {
-    const { result } = renderHook(() => useSearchNewTraceView());
-    act(() => result.current.setNewTraceViewSearch({ ...defaultFilters, serviceName: 'service1' }));
+    const { result } = renderHook(() => useSearchNewTraceViewHeader());
+    act(() => result.current.setNewTraceViewHeaderSearch({ ...defaultFilters, serviceName: 'service1' }));
     expect(result.current.spanFilterMatches).toBe(undefined);
   });
 
diff --git a/public/app/features/explore/TraceView/useSearch.ts b/public/app/features/explore/TraceView/useSearch.ts
index 2339f8a246a..a67327eb72e 100644
--- a/public/app/features/explore/TraceView/useSearch.ts
+++ b/public/app/features/explore/TraceView/useSearch.ts
@@ -1,7 +1,7 @@
 import { useMemo, useState } from 'react';
 import { v4 as uuidv4 } from 'uuid';
 
-import { filterSpansNewTraceView, filterSpans, TraceSpan } from './components';
+import { filterSpansNewTraceViewHeader, filterSpans, TraceSpan } from './components';
 
 export interface SearchProps {
   serviceName?: string;
@@ -41,16 +41,16 @@ export const defaultFilters = {
  * Controls the state of search input that highlights spans if they match the search string.
  * @param spans
  */
-export function useSearchNewTraceView(spans?: TraceSpan[]) {
-  const [newTraceViewSearch, setNewTraceViewSearch] = useState<SearchProps>(defaultFilters);
+export function useSearchNewTraceViewHeader(spans?: TraceSpan[]) {
+  const [newTraceViewHeaderSearch, setNewTraceViewHeaderSearch] = useState<SearchProps>(defaultFilters);
   const spanFilterMatches: Set<string> | undefined = useMemo(() => {
-    return spans && filterSpansNewTraceView(newTraceViewSearch, spans);
-  }, [newTraceViewSearch, spans]);
+    return spans && filterSpansNewTraceViewHeader(newTraceViewHeaderSearch, spans);
+  }, [newTraceViewHeaderSearch, spans]);
 
-  return { newTraceViewSearch, setNewTraceViewSearch, spanFilterMatches };
+  return { newTraceViewHeaderSearch, setNewTraceViewHeaderSearch, spanFilterMatches };
 }
 
-// legacy code that will be removed when the newTraceView feature flag is removed
+// legacy code that will be removed when the newTraceViewHeader feature flag is removed
 export function useSearch(spans?: TraceSpan[]) {
   const [search, setSearch] = useState('');
   const spanFindMatches: Set<string> | undefined = useMemo(() => {
diff --git a/public/app/plugins/panel/traces/TracesPanel.tsx b/public/app/plugins/panel/traces/TracesPanel.tsx
index 46ec26476d9..cd4ed2a644f 100644
--- a/public/app/plugins/panel/traces/TracesPanel.tsx
+++ b/public/app/plugins/panel/traces/TracesPanel.tsx
@@ -39,7 +39,7 @@ export const TracesPanel = ({ data }: PanelProps) => {
   return (
     <div className={styles.wrapper}>
       <div ref={topOfViewRef}></div>
-      {!config.featureToggles.newTraceView ? (
+      {!config.featureToggles.newTraceViewHeader ? (
         <TracePageSearchBar
           navigable={true}
           searchValue={search}