feat: support y axis unit in timeseries view of logs and traces explorer (#9709)

This commit is contained in:
Yunus M
2025-12-01 21:09:30 +05:30
committed by GitHub
parent 127e760b00
commit 0b0d622f6b
4 changed files with 35 additions and 7 deletions

View File

@@ -124,7 +124,7 @@
.builder-units-filter-label {
margin-bottom: 0px !important;
font-size: 13px;
font-size: 12px;
}
}
}

View File

@@ -1,10 +1,10 @@
import { Select, SelectProps, Space } from 'antd';
import { Select, SelectProps, Space, Typography } from 'antd';
import { getCategorySelectOptionByName } from 'container/NewWidget/RightContainer/alertFomatCategories';
import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
import { popupContainer } from 'utils/selectPopupContainer';
import { categoryToSupport } from './config';
import { DefaultLabel, selectStyles } from './styles';
import { selectStyles } from './styles';
import { IBuilderUnitsFilterProps } from './types';
import { filterOption } from './utils';
@@ -31,9 +31,9 @@ function BuilderUnitsFilter({
return (
<Space className="builder-units-filter">
<DefaultLabel className="builder-units-filter-label">
<Typography.Text className="builder-units-filter-label">
Y-axis unit
</DefaultLabel>
</Typography.Text>
<Select
getPopupContainer={popupContainer}
style={selectStyles}

View File

@@ -8,4 +8,13 @@
min-height: 350px;
padding: 0px 12px;
}
.time-series-view-container {
.time-series-view-container-header {
display: flex;
justify-content: flex-start;
align-items: center;
padding: 12px 0;
}
}
}

View File

@@ -11,6 +11,7 @@ import { LogsLoading } from 'container/LogsLoading/LogsLoading';
import EmptyMetricsSearch from 'container/MetricsExplorer/Explorer/EmptyMetricsSearch';
import { MetricsLoading } from 'container/MetricsExplorer/MetricsLoading/MetricsLoading';
import NoLogs from 'container/NoLogs/NoLogs';
import { BuilderUnitsFilter } from 'container/QueryBuilder/filters';
import { CustomTimeType } from 'container/TopNav/DateTimeSelectionV2/config';
import { TracesLoading } from 'container/TracesExplorer/TraceLoading/TraceLoading';
import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
@@ -81,6 +82,14 @@ function TimeSeriesView({
const [minTimeScale, setMinTimeScale] = useState<number>();
const [maxTimeScale, setMaxTimeScale] = useState<number>();
const [graphVisibility, setGraphVisibility] = useState<boolean[]>([]);
const [yAxisUnitInternal, setYAxisUnitInternal] = useState<string>(
yAxisUnit || '',
);
const onUnitChangeHandler = (value: string): void => {
setYAxisUnitInternal(value);
};
const legendScrollPositionRef = useRef<{
scrollTop: number;
scrollLeft: number;
@@ -189,7 +198,7 @@ function TimeSeriesView({
const chartOptions = getUPlotChartOptions({
id: 'time-series-explorer',
onDragSelect,
yAxisUnit: yAxisUnit || '',
yAxisUnit: yAxisUnitInternal || '',
apiResponse: data?.payload,
dimensions: {
width: containerDimensions.width,
@@ -261,7 +270,17 @@ function TimeSeriesView({
!isError &&
chartData &&
!isEmpty(chartData?.[0]) &&
chartOptions && <Uplot data={chartData} options={chartOptions} />}
chartOptions && (
<div className="time-series-view-container">
<div className="time-series-view-container-header">
<BuilderUnitsFilter
onChange={onUnitChangeHandler}
yAxisUnit={yAxisUnitInternal}
/>
</div>
<Uplot data={chartData} options={chartOptions} />
</div>
)}
</div>
</div>
);