mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-31 15:06:26 +00:00
wip
This commit is contained in:
parent
a3032067bd
commit
37ff352ed5
3 changed files with 22 additions and 3 deletions
|
@ -19,6 +19,7 @@ according to [these docs](https://docs.victoriametrics.com/VictoriaLogs/QuickSta
|
||||||
|
|
||||||
## tip
|
## tip
|
||||||
|
|
||||||
|
* FEATURE: support [comparing](https://docs.victoriametrics.com/victorialogs/logsql/#range-filter) log field values with [special numeric values](https://docs.victoriametrics.com/victorialogs/logsql/#numeric-values). For example, `duration:>1.5s` and `response_size:<15KiB` are valid filters now.
|
||||||
* FEATURE: add an ability to preserve the original non-empty field values when performing [`extract`](https://docs.victoriametrics.com/victorialogs/logsql/#extract-pipe), [`unpack_json`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_json-pipe), [`unpack_logfmt`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_logfmt-pipe) and [`format`](https://docs.victoriametrics.com/victorialogs/logsql/#format-pipe) pipes.
|
* FEATURE: add an ability to preserve the original non-empty field values when performing [`extract`](https://docs.victoriametrics.com/victorialogs/logsql/#extract-pipe), [`unpack_json`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_json-pipe), [`unpack_logfmt`](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_logfmt-pipe) and [`format`](https://docs.victoriametrics.com/victorialogs/logsql/#format-pipe) pipes.
|
||||||
|
|
||||||
## [v0.10.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v0.10.0-victorialogs)
|
## [v0.10.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v0.10.0-victorialogs)
|
||||||
|
|
|
@ -857,7 +857,7 @@ The following query returns logs with request durations smaller or equal to 1.5
|
||||||
request.duration:<=1.5
|
request.duration:<=1.5
|
||||||
```
|
```
|
||||||
|
|
||||||
The lower and the upper bounds of the range are excluded by default. If they must be included, then substitute the corresponding
|
The lower and the upper bounds of the `range(lower, upper)` are excluded by default. If they must be included, then substitute the corresponding
|
||||||
parentheses with square brackets. For example:
|
parentheses with square brackets. For example:
|
||||||
|
|
||||||
- `range[1, 10)` includes `1` in the matching range
|
- `range[1, 10)` includes `1` in the matching range
|
||||||
|
@ -2188,7 +2188,6 @@ LogsQL supports the following transformations on the log entries selected with [
|
||||||
LogsQL will support the following transformations in the future:
|
LogsQL will support the following transformations in the future:
|
||||||
|
|
||||||
- Creating a new field according to math calculations over existing [log fields](https://docs.victoriametrics.com/VictoriaLogs/keyConcepts.html#data-model).
|
- Creating a new field according to math calculations over existing [log fields](https://docs.victoriametrics.com/VictoriaLogs/keyConcepts.html#data-model).
|
||||||
- Parsing duration strings into floating-point seconds for further [stats calculations](#stats-pipe).
|
|
||||||
|
|
||||||
See the [Roadmap](https://docs.victoriametrics.com/VictoriaLogs/Roadmap.html) for details.
|
See the [Roadmap](https://docs.victoriametrics.com/VictoriaLogs/Roadmap.html) for details.
|
||||||
|
|
||||||
|
|
|
@ -289,13 +289,32 @@ func matchUint64ByRange(bs *blockSearch, ch *columnHeader, bm *bitmap, minValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
func matchRange(s string, minValue, maxValue float64) bool {
|
func matchRange(s string, minValue, maxValue float64) bool {
|
||||||
f, ok := tryParseFloat64(s)
|
f, ok := tryParseNumber(s)
|
||||||
if !ok {
|
if !ok {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return f >= minValue && f <= maxValue
|
return f >= minValue && f <= maxValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func tryParseNumber(s string) (float64, bool) {
|
||||||
|
if len(s) == 0 {
|
||||||
|
return 0, false
|
||||||
|
}
|
||||||
|
f, ok := tryParseFloat64(s)
|
||||||
|
if ok {
|
||||||
|
return f, true
|
||||||
|
}
|
||||||
|
nsecs, ok := tryParseDuration(s)
|
||||||
|
if ok {
|
||||||
|
return float64(nsecs), true
|
||||||
|
}
|
||||||
|
bytes, ok := tryParseBytes(s)
|
||||||
|
if ok {
|
||||||
|
return float64(bytes), true
|
||||||
|
}
|
||||||
|
return 0, false
|
||||||
|
}
|
||||||
|
|
||||||
func toUint64Range(minValue, maxValue float64) (uint64, uint64) {
|
func toUint64Range(minValue, maxValue float64) (uint64, uint64) {
|
||||||
minValue = math.Ceil(minValue)
|
minValue = math.Ceil(minValue)
|
||||||
maxValue = math.Floor(maxValue)
|
maxValue = math.Floor(maxValue)
|
||||||
|
|
Loading…
Reference in a new issue