mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Logs: Fix pagination skipping entries (#48413)
* Logs: Add pagination range to prevent pagination from skipping entries
* Revert "Logs: Add pagination range to prevent pagination from skipping entries"
This reverts commit 2e7a6b3870
.
* Refactor
* Update
This commit is contained in:
parent
2533f21015
commit
656cd4c8dd
@ -85,6 +85,7 @@ export interface LogsModel {
|
|||||||
meta?: LogsMetaItem[];
|
meta?: LogsMetaItem[];
|
||||||
rows: LogRowModel[];
|
rows: LogRowModel[];
|
||||||
series?: DataFrame[];
|
series?: DataFrame[];
|
||||||
|
// visibleRange is time range for histogram created from log results
|
||||||
visibleRange?: AbsoluteTimeRange;
|
visibleRange?: AbsoluteTimeRange;
|
||||||
queries?: DataQuery[];
|
queries?: DataQuery[];
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ class UnthemedLogs extends PureComponent<Props, State> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
onChangewrapLogMessage = (event: React.ChangeEvent<HTMLInputElement>) => {
|
onChangeWrapLogMessage = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
const { target } = event;
|
const { target } = event;
|
||||||
if (target) {
|
if (target) {
|
||||||
const wrapLogMessage = target.checked;
|
const wrapLogMessage = target.checked;
|
||||||
@ -249,6 +249,20 @@ class UnthemedLogs extends PureComponent<Props, State> {
|
|||||||
return filterLogLevels(logRows, new Set(hiddenLogLevels));
|
return filterLogLevels(logRows, new Set(hiddenLogLevels));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
createNavigationRange = memoizeOne((logRows: LogRowModel[]): { from: number; to: number } | undefined => {
|
||||||
|
if (!logRows || logRows.length === 0) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const firstTimeStamp = logRows[0].timeEpochMs;
|
||||||
|
const lastTimeStamp = logRows[logRows.length - 1].timeEpochMs;
|
||||||
|
|
||||||
|
if (lastTimeStamp < firstTimeStamp) {
|
||||||
|
return { from: lastTimeStamp, to: firstTimeStamp };
|
||||||
|
}
|
||||||
|
|
||||||
|
return { from: firstTimeStamp, to: lastTimeStamp };
|
||||||
|
});
|
||||||
|
|
||||||
scrollToTopLogs = () => this.topLogsRef.current?.scrollIntoView();
|
scrollToTopLogs = () => this.topLogsRef.current?.scrollIntoView();
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@ -295,8 +309,10 @@ class UnthemedLogs extends PureComponent<Props, State> {
|
|||||||
|
|
||||||
const filteredLogs = this.filterRows(logRows, hiddenLogLevels);
|
const filteredLogs = this.filterRows(logRows, hiddenLogLevels);
|
||||||
const { dedupedRows, dedupCount } = this.dedupRows(filteredLogs, dedupStrategy);
|
const { dedupedRows, dedupCount } = this.dedupRows(filteredLogs, dedupStrategy);
|
||||||
|
const navigationRange = this.createNavigationRange(logRows);
|
||||||
|
|
||||||
const scanText = scanRange ? `Scanning ${rangeUtil.describeTimeRange(scanRange)}` : 'Scanning...';
|
const scanText = scanRange ? `Scanning ${rangeUtil.describeTimeRange(scanRange)}` : 'Scanning...';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{logsSeries && logsSeries.length ? (
|
{logsSeries && logsSeries.length ? (
|
||||||
@ -342,7 +358,7 @@ class UnthemedLogs extends PureComponent<Props, State> {
|
|||||||
<InlineField label="Wrap lines" className={styles.horizontalInlineLabel} transparent>
|
<InlineField label="Wrap lines" className={styles.horizontalInlineLabel} transparent>
|
||||||
<InlineSwitch
|
<InlineSwitch
|
||||||
value={wrapLogMessage}
|
value={wrapLogMessage}
|
||||||
onChange={this.onChangewrapLogMessage}
|
onChange={this.onChangeWrapLogMessage}
|
||||||
className={styles.horizontalInlineSwitch}
|
className={styles.horizontalInlineSwitch}
|
||||||
transparent
|
transparent
|
||||||
id={`wrap-lines_${exploreId}`}
|
id={`wrap-lines_${exploreId}`}
|
||||||
@ -430,7 +446,7 @@ class UnthemedLogs extends PureComponent<Props, State> {
|
|||||||
</div>
|
</div>
|
||||||
<LogsNavigation
|
<LogsNavigation
|
||||||
logsSortOrder={logsSortOrder}
|
logsSortOrder={logsSortOrder}
|
||||||
visibleRange={visibleRange ?? absoluteRange}
|
visibleRange={navigationRange ?? absoluteRange}
|
||||||
absoluteRange={absoluteRange}
|
absoluteRange={absoluteRange}
|
||||||
timeZone={timeZone}
|
timeZone={timeZone}
|
||||||
onChangeTime={onChangeTime}
|
onChangeTime={onChangeTime}
|
||||||
|
Loading…
Reference in New Issue
Block a user