mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
fix for #6293 Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
This commit is contained in:
parent
75bd1831bb
commit
7da541360e
4 changed files with 29 additions and 2 deletions
|
@ -101,3 +101,10 @@ victoria-logs-windows-amd64:
|
||||||
|
|
||||||
victoria-logs-pure:
|
victoria-logs-pure:
|
||||||
APP_NAME=victoria-logs $(MAKE) app-local-pure
|
APP_NAME=victoria-logs $(MAKE) app-local-pure
|
||||||
|
|
||||||
|
run-victoria-logs:
|
||||||
|
mkdir -p victoria-logs-data
|
||||||
|
DOCKER_OPTS='-v $(shell pwd)/victoria-logs-data:/victoria-logs-data' \
|
||||||
|
APP_NAME=victoria-logs \
|
||||||
|
ARGS='' \
|
||||||
|
$(MAKE) run-via-docker
|
||||||
|
|
|
@ -34,6 +34,7 @@ according to [these docs](https://docs.victoriametrics.com/VictoriaLogs/QuickSta
|
||||||
|
|
||||||
* BUGFIX: fix `invalid memory address or nil pointer dereference` panic when using [`extract`](https://docs.victoriametrics.com/victorialogs/logsql/#extract-pipe), [`unpack_json`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_json-pipe) or [`unpack_logfmt`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_logfmt-pipe) pipes. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6306).
|
* BUGFIX: fix `invalid memory address or nil pointer dereference` panic when using [`extract`](https://docs.victoriametrics.com/victorialogs/logsql/#extract-pipe), [`unpack_json`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_json-pipe) or [`unpack_logfmt`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_logfmt-pipe) pipes. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6306).
|
||||||
* BUGFIX: [web UI](https://docs.victoriametrics.com/VictoriaLogs/querying/#web-ui): fix an issue where logs with long `_msg` values might not display. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6281).
|
* BUGFIX: [web UI](https://docs.victoriametrics.com/VictoriaLogs/querying/#web-ui): fix an issue where logs with long `_msg` values might not display. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6281).
|
||||||
|
* BUGFIX: properly handle time range boundaries with millisecond precision. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6293).
|
||||||
|
|
||||||
## [v0.8.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v0.8.0-victorialogs)
|
## [v0.8.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v0.8.0-victorialogs)
|
||||||
|
|
||||||
|
|
|
@ -1307,7 +1307,8 @@ func parseFilterTime(lex *lexer) (*filterTime, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("cannot parse _time filter: %w", err)
|
return nil, fmt.Errorf("cannot parse _time filter: %w", err)
|
||||||
}
|
}
|
||||||
startTime := int64(t * 1e9)
|
// Round to milliseconds
|
||||||
|
startTime := int64(math.Round(t*1e3)) * 1e6
|
||||||
endTime := getMatchingEndTime(startTime, s)
|
endTime := getMatchingEndTime(startTime, s)
|
||||||
ft := &filterTime{
|
ft := &filterTime{
|
||||||
minTimestamp: startTime,
|
minTimestamp: startTime,
|
||||||
|
@ -1416,6 +1417,8 @@ func getMatchingEndTime(startTime int64, stringRepr string) int64 {
|
||||||
tEnd = tStart.Add(time.Minute)
|
tEnd = tStart.Add(time.Minute)
|
||||||
case len(timeStr) == len("YYYY-MM-DDThh:mm:ss") && timeStr[len("YYYY")] == '-':
|
case len(timeStr) == len("YYYY-MM-DDThh:mm:ss") && timeStr[len("YYYY")] == '-':
|
||||||
tEnd = tStart.Add(time.Second)
|
tEnd = tStart.Add(time.Second)
|
||||||
|
case len(timeStr) == len("YYYY-MM-DDThh:mm:ss.SSS") && timeStr[len("YYYY")] == '-':
|
||||||
|
tEnd = tStart.Add(time.Millisecond)
|
||||||
default:
|
default:
|
||||||
tEnd = tStart.Add(time.Nanosecond)
|
tEnd = tStart.Add(time.Nanosecond)
|
||||||
}
|
}
|
||||||
|
@ -1459,7 +1462,8 @@ func parseTime(lex *lexer) (int64, string, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, "", err
|
return 0, "", err
|
||||||
}
|
}
|
||||||
return int64(t * 1e9), s, nil
|
// round to milliseconds
|
||||||
|
return int64(math.Round(t*1e3)) * 1e6, s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func quoteTokenIfNeeded(s string) string {
|
func quoteTokenIfNeeded(s string) string {
|
||||||
|
|
|
@ -191,6 +191,21 @@ func TestParseTimeRange(t *testing.T) {
|
||||||
f("2023-02-28T23:59:59", minTimestamp, maxTimestamp)
|
f("2023-02-28T23:59:59", minTimestamp, maxTimestamp)
|
||||||
f("2023-02-28T23:59:59Z", minTimestamp, maxTimestamp)
|
f("2023-02-28T23:59:59Z", minTimestamp, maxTimestamp)
|
||||||
|
|
||||||
|
// _time:[YYYY-MM-DDTHH:MM:SS.sss, YYYY-MM-DDTHH:MM:SS.sss)
|
||||||
|
minTimestamp = time.Date(2024, time.May, 12, 0, 0, 0, 333000000, time.UTC).UnixNano()
|
||||||
|
maxTimestamp = time.Date(2024, time.May, 12, 0, 0, 0, 555000000, time.UTC).UnixNano() - 1
|
||||||
|
f("[2024-05-12T00:00:00.333+00:00,2024-05-12T00:00:00.555+00:00)", minTimestamp, maxTimestamp)
|
||||||
|
|
||||||
|
// _time:[YYYY-MM-DDTHH:MM:SS.sss, YYYY-MM-DDTHH:MM:SS.sss]
|
||||||
|
minTimestamp = time.Date(2024, time.May, 12, 0, 0, 0, 333000000, time.UTC).UnixNano()
|
||||||
|
maxTimestamp = time.Date(2024, time.May, 12, 0, 0, 0, 556000000, time.UTC).UnixNano() - 1
|
||||||
|
f("[2024-05-12T00:00:00.333+00:00,2024-05-12T00:00:00.555+00:00]", minTimestamp, maxTimestamp)
|
||||||
|
|
||||||
|
// _time:YYYY-MM-DDTHH:MM:SS.sss
|
||||||
|
minTimestamp = time.Date(2024, time.May, 14, 13, 54, 59, 134000000, time.UTC).UnixNano()
|
||||||
|
maxTimestamp = time.Date(2024, time.May, 14, 13, 54, 59, 135000000, time.UTC).UnixNano() - 1
|
||||||
|
f("2024-05-14T13:54:59.134Z", minTimestamp, maxTimestamp)
|
||||||
|
|
||||||
// _time:YYYY-MM-DDTHH:MM:SS-hh:mm
|
// _time:YYYY-MM-DDTHH:MM:SS-hh:mm
|
||||||
minTimestamp = time.Date(2023, time.February, 28, 23, 59, 59, 0, time.UTC).UnixNano()
|
minTimestamp = time.Date(2023, time.February, 28, 23, 59, 59, 0, time.UTC).UnixNano()
|
||||||
maxTimestamp = time.Date(2023, time.March, 1, 0, 0, 0, 0, time.UTC).UnixNano() - 1
|
maxTimestamp = time.Date(2023, time.March, 1, 0, 0, 0, 0, time.UTC).UnixNano() - 1
|
||||||
|
|
Loading…
Reference in a new issue