Skip to content

Commit 3b113df

Browse files
committed
fix(logviewer): added timestamp filtering the the AzureTableLogEntity to prevent memory issues
1 parent c413307 commit 3b113df

File tree

4 files changed

+36
-24
lines changed

4 files changed

+36
-24
lines changed

10/umbraco-cms/fundamentals/backoffice/logviewer.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase
7878
var requiredEntities = skip + take;
7979
IEnumerable<AzureTableLogEntity> results = client.Query<AzureTableLogEntity>().Take(requiredEntities);
8080

81-
return results
82-
.Skip(skip)
83-
.Take(take)
84-
.Select(x => LogEventReader.ReadFromString(x.Data))
85-
.Where(filter.TakeLogEvent)
86-
.ToList();
81+
return results
82+
.Skip(skip)
83+
.Take(take)
84+
.Select(x => LogEventReader.ReadFromString(x.Data))
85+
// Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues
86+
.Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date &&
87+
evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1))
88+
.Where(filter.TakeLogEvent)
89+
.ToList();
8790
}
8891

8992
public override IReadOnlyList<SavedLogSearch>? GetSavedSearches()

13/umbraco-cms/fundamentals/backoffice/logviewer.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase
8080
var requiredEntities = skip + take;
8181
IEnumerable<AzureTableLogEntity> results = client.Query<AzureTableLogEntity>().Take(requiredEntities);
8282

83-
return results
84-
.Skip(skip)
85-
.Take(take)
86-
.Select(x => LogEventReader.ReadFromString(x.Data))
87-
.Where(filter.TakeLogEvent)
88-
.ToList();
83+
return results
84+
.Skip(skip)
85+
.Take(take)
86+
.Select(x => LogEventReader.ReadFromString(x.Data))
87+
// Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues
88+
.Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date &&
89+
evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1))
90+
.Where(filter.TakeLogEvent)
91+
.ToList();
8992
}
9093

9194
public override IReadOnlyList<SavedLogSearch>? GetSavedSearches()

14/umbraco-cms/fundamentals/backoffice/logviewer.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase
8080
var requiredEntities = skip + take;
8181
IEnumerable<AzureTableLogEntity> results = client.Query<AzureTableLogEntity>().Take(requiredEntities);
8282

83-
return results
84-
.Skip(skip)
85-
.Take(take)
86-
.Select(x => LogEventReader.ReadFromString(x.Data))
87-
.Where(filter.TakeLogEvent)
88-
.ToList();
83+
return results
84+
.Skip(skip)
85+
.Take(take)
86+
.Select(x => LogEventReader.ReadFromString(x.Data))
87+
// Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues
88+
.Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date &&
89+
evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1))
90+
.Where(filter.TakeLogEvent)
91+
.ToList();
8992
}
9093

9194
public override IReadOnlyList<SavedLogSearch>? GetSavedSearches()

15/umbraco-cms/fundamentals/backoffice/logviewer.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,15 @@ public class AzureTableLogViewer : SerilogLogViewerSourceBase
8080
var requiredEntities = skip + take;
8181
IEnumerable<AzureTableLogEntity> results = client.Query<AzureTableLogEntity>().Take(requiredEntities);
8282

83-
return results
84-
.Skip(skip)
85-
.Take(take)
86-
.Select(x => LogEventReader.ReadFromString(x.Data))
87-
.Where(filter.TakeLogEvent)
88-
.ToList();
83+
return results
84+
.Skip(skip)
85+
.Take(take)
86+
.Select(x => LogEventReader.ReadFromString(x.Data))
87+
// Filter by timestamp to avoid retrieving all logs from the table, preventing memory and performance issues
88+
.Where(evt => evt.Timestamp >= logTimePeriod.StartTime.Date &&
89+
evt.Timestamp <= logTimePeriod.EndTime.Date.AddDays(1).AddSeconds(-1))
90+
.Where(filter.TakeLogEvent)
91+
.ToList();
8992
}
9093

9194
public override IReadOnlyList<SavedLogSearch>? GetSavedSearches()

0 commit comments

Comments
 (0)