Released at 2025-08-08
-
SECURITY: upgrade Go builder from Go1.24.5 to Go1.24.6. See the list of issues addressed in Go1.24.6.
-
SECURITY: upgrade base docker image (Alpine) from 3.22.0 to 3.22.1. See Alpine 3.22.1 release notes.
-
FEATURE: LogsQL: speed up execution of queries, which select big number of logs and end with
| sort by (_time) desc limit N
pipe. E.g. these queries return up to N logs with the biggest_time
field values from big number of selected logs (tens of millions and more). See #46. -
FEATURE: web UI: update legend behavior in hits chart. The menu now opens on left-click, and visibility actions are moved to menu items. See #58.
-
FEATURE: web UI: add the ability to show stream context per each log line. See #113.
-
FEATURE: web UI: improve visibility of the Query History button. See #540.
-
FEATURE: Syslog data ingestion: add an ability to record the remote IP address from the received syslog messages into the
remote_ip
log field. See these docs for details. Thanks to @biancalana for the pull request. See #40. -
FEATURE: retention: support disk space percentage-based retention (
-retention.maxDiskUsagePercent
), which helps dynamically manage total disk space usage. Only one of-retention.maxDiskSpaceUsageBytes
or-retention.maxDiskUsagePercent
can be set; otherwise, the application will panic. See #513. -
FEATURE: add an ability to dynamically attach and detach per-day partitions. This simplifies creating multi-tier storage schemes when recently ingested logs are stored on a fast storage (such as NVMe or SSD), while historical logs are gradually migrated to less expensive storage with bigger capacity (such as HDD). See these docs and #432.
-
FEATURE: querying: expose
vl_storage_per_query_processed_blocks
histogram, which shows the number of data blocks processed per every query. This histogram can be used for analysing query performance issues. See #45. -
FEATURE: querying: expose histograms on the number of bytes read from disk for various data types per each query (see #45):
vl_storage_per_query_total_read_bytes
- the total number of bytes read during query execition.vl_storage_per_query_values_read_bytes
- the number of bytes read for log field values.vl_storage_per_query_timestamps_read_bytes
- the number of bytes read for the_time
field.vl_storage_per_query_bloom_filters_read_bytes
- the number of bytes read for bloom filters (bloom filters is built from words seen in log fields and are used for quick skipping of blocks without the given words.vl_storage_per_query_block_headers_read_bytes
- the number of bytes read for block headers (block headers contain various metainformation about data block).vl_storage_per_query_columns_headers_read_bytes
- the number of bytes read for columns headers (columns headers contain information about column names in every data block).vl_storage_per_query_columns_header_indexes_read_bytes
- the number of bytes read for columns header indexes (these indexes contain the location of the per-column information in the columns headers).
-
FEATURE: data ingestion: expose additional metrics, which can be used for troubleshooting data ingestion performance issues (see #45):
vl_active_merges{type="indexdb/inmemory"}
- the number of active merges for in-memory indexdb (indexdb is used for indexing log stream fields).vl_active_merges{type="indexdb/file"}
- the number of active merges for file-based indexdb.vl_merges_total{type="indexdb/inmemory"}
- the total number of background merges for in-memory indexdb parts.vl_merges_total{type="indexdb/file"}
- the total number of background merges for file-based indexdb parts.vl_rows_merged_total{type="indexdb/inmemory"}
- the total number of in-memory indexdb entries merged during the background merge.vl_rows_merged_total{type="indexdb/file"}
- the total number of file-based indexdb entries merged during the background merge.vl_pending_rows{type="storage"}
- the number of in-memory log entries, which were ingested, but weren't stored to disk yet.vl_pending_rows{type="indexdb"}
- the number of in-memory indexdb entries, which were ingested, but weren't stored to disk yet.vl_merge_duration_seconds{type="storage/inmemory"}
- the summary, which shows the duration of background merges for in-memory data parts.vl_merge_duration_seconds{type="storage/small"}
- the summary, which shows the duration of background merges for small file-based data parts.vl_merge_duration_seconds{type="storage/big"}
- the summary, which shows the duration of background merges for big file-based data parts.vl_merge_bytes{type="storage/inmemory"}
- the summary, which shows the size of the created in-memory data parts.vl_merge_bytes{type="storage/small"}
- the summary, which shows the size of the created small file-based data parts.vl_merge_bytes{type="storage/big"}
- the summary, which shows the size of the created big file-based data parts.
-
BUGFIX: web UI: fix broken "Collapse all" button in Group view. See #509. The bug has been introduced in v1.26.0.
-
BUGFIX: web UI: fix chart axis label color on theme switch. See #541.
-
BUGFIX: web UI: fix applying legend filter when using pipe filters. See #546.
-
BUGFIX: data ingestion: prevent from possible crash when ingesting logs for dates, which are concurrently removed because of the configured retention. See #505.
-
BUGFIX: data ingestion: support numbers and null in Loki structured metadata. See #547.