diff --git a/public/app/features/explore/Explore.tsx b/public/app/features/explore/Explore.tsx index fcbbea177b5..6faeb125642 100644 --- a/public/app/features/explore/Explore.tsx +++ b/public/app/features/explore/Explore.tsx @@ -288,14 +288,18 @@ export class Explore extends React.PureComponent { }); renderTraceViewPanel() { - const { queryResponse, splitOpen } = this.props; + const { queryResponse, splitOpen, exploreId } = this.props; const dataFrames = queryResponse.series.filter((series) => series.meta?.preferredVisualisationType === 'trace'); return ( // We expect only one trace at the moment to be in the dataframe // If there is no data (like 404) we show a separate error so no need to show anything here dataFrames[0] && ( - + ) ); } diff --git a/public/app/features/explore/TraceView/TraceView.test.tsx b/public/app/features/explore/TraceView/TraceView.test.tsx index 90adc42b71d..e9913b56e9d 100644 --- a/public/app/features/explore/TraceView/TraceView.test.tsx +++ b/public/app/features/explore/TraceView/TraceView.test.tsx @@ -5,13 +5,14 @@ import { TraceView } from './TraceView'; import { TracePageHeader, TraceTimelineViewer } from '@jaegertracing/jaeger-ui-components'; import { TraceSpanData, TraceData } from '@grafana/data'; import { setDataSourceSrv } from '@grafana/runtime'; +import { ExploreId } from 'app/types'; jest.mock('react-redux', () => ({ useSelector: jest.fn(() => undefined), })); function renderTraceView() { - const wrapper = shallow( {}} />); + const wrapper = shallow( {}} />); return { timeline: wrapper.find(TraceTimelineViewer), header: wrapper.find(TracePageHeader), @@ -37,7 +38,7 @@ describe('TraceView', () => { it('does not render anything on missing trace', () => { // Simulating Explore's access to empty response data const trace = [][0]; - const { container } = render( {}} />); + const { container } = render( {}} />); expect(container.hasChildNodes()).toBeFalsy(); }); diff --git a/public/app/features/explore/TraceView/TraceView.tsx b/public/app/features/explore/TraceView/TraceView.tsx index 4a5a22b6310..e70bcb4c61a 100644 --- a/public/app/features/explore/TraceView/TraceView.tsx +++ b/public/app/features/explore/TraceView/TraceView.tsx @@ -20,13 +20,14 @@ import { TraceViewData, Trace, TraceSpan, TraceKeyValuePair, TraceLink } from '@ import { createSpanLinkFactory } from './createSpanLink'; import { useSelector } from 'react-redux'; import { StoreState } from 'app/types'; -import { SplitOpen } from 'app/types/explore'; +import { ExploreId, SplitOpen } from 'app/types/explore'; import { getDatasourceSrv } from 'app/features/plugins/datasource_srv'; import { TraceToLogsData } from 'app/core/components/TraceToLogsSettings'; type Props = { trace?: TraceViewData; splitOpenFn: SplitOpen; + exploreId: ExploreId; }; export function TraceView(props: Props) { @@ -59,7 +60,7 @@ export function TraceView(props: Props) { const traceProp = useMemo(() => transformTraceData(props.trace), [props.trace]); const { search, setSearch, spanFindMatches } = useSearch(traceProp?.spans); - const dataSourceName = useSelector((state: StoreState) => state.explore.left.datasourceInstance?.name); + const dataSourceName = useSelector((state: StoreState) => state.explore[props.exploreId]?.datasourceInstance?.name); const traceToLogsOptions = (getDatasourceSrv().getInstanceSettings(dataSourceName)?.jsonData as TraceToLogsData) ?.tracesToLogs;