mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-31 15:06:26 +00:00
Merge branch 'public-single-node' into victorialogs-wip
This commit is contained in:
commit
99e4d376eb
4 changed files with 11 additions and 5 deletions
|
@ -35,7 +35,6 @@ The following functionality is planned in the future versions of VictoriaLogs:
|
|||
- Syslog
|
||||
- Journald (systemd)
|
||||
- Add missing functionality to [LogsQL](https://docs.victoriametrics.com/victorialogs/logsql/):
|
||||
- [Transformation functions](https://docs.victoriametrics.com/victorialogs/logsql/#transformations).
|
||||
- [Stream context](https://docs.victoriametrics.com/victorialogs/logsql/#stream-context).
|
||||
- Live tailing for [LogsQL filters](https://docs.victoriametrics.com/victorialogs/logsql/#filters) aka `tail -f`.
|
||||
- Web UI with the following abilities:
|
||||
|
|
|
@ -25,6 +25,7 @@ the returned logs by some field (usually [`_time` field](https://docs.victoriame
|
|||
|
||||
```logsql
|
||||
_time:5m | sort by (_time)
|
||||
```
|
||||
|
||||
If the number of returned logs is too big, it may be limited with the [`limit` pipe](https://docs.victoriametrics.com/victorialogs/logsql/#limit-pipe).
|
||||
For example, the following query returns 10 most recent logs, which were ingested during the last 5 minutes:
|
||||
|
@ -294,7 +295,7 @@ See also:
|
|||
## How to parse JSON inside log message?
|
||||
|
||||
It is better from performance and resource usage PoV to avoid storing JSON inside [log message](https://docs.victoriametrics.com/victorialogs/keyconcepts/#message-field).
|
||||
It is recommended storing individual JSON fields and log fields instead according to [VictoriaLogs data model](https://docs.victoriametrics.com/victorialogs/keyconcepts/#data-model).
|
||||
It is recommended storing individual JSON fields as log fields instead according to [VictoriaLogs data model](https://docs.victoriametrics.com/victorialogs/keyconcepts/#data-model).
|
||||
|
||||
If you have to store JSON inside log message or inside any other [log fields](https://docs.victoriametrics.com/victorialogs/keyconcepts/#data-model),
|
||||
then the stored JSON can be parsed during query time via [`unpack_json` pipe](https://docs.victoriametrics.com/victorialogs/logsql/#unpack_json-pipe).
|
||||
|
|
|
@ -725,9 +725,12 @@ func parsePipeSort(lex *lexer) (*pipeSort, error) {
|
|||
ps.byFields = bfs
|
||||
}
|
||||
|
||||
if lex.isKeyword("desc") {
|
||||
switch {
|
||||
case lex.isKeyword("desc"):
|
||||
lex.nextToken()
|
||||
ps.isDesc = true
|
||||
case lex.isKeyword("asc"):
|
||||
lex.nextToken()
|
||||
}
|
||||
|
||||
for {
|
||||
|
@ -797,9 +800,12 @@ func parseBySortFields(lex *lexer) ([]*bySortField, error) {
|
|||
bf := &bySortField{
|
||||
name: fieldName,
|
||||
}
|
||||
if lex.isKeyword("desc") {
|
||||
switch {
|
||||
case lex.isKeyword("desc"):
|
||||
lex.nextToken()
|
||||
bf.isDesc = true
|
||||
case lex.isKeyword("asc"):
|
||||
lex.nextToken()
|
||||
}
|
||||
bfs = append(bfs, bf)
|
||||
switch {
|
||||
|
|
|
@ -60,7 +60,7 @@ func TestPipeSort(t *testing.T) {
|
|||
})
|
||||
|
||||
// Sort by a single field
|
||||
f("sort by (a)", [][]Field{
|
||||
f("sort by (a asc) asc", [][]Field{
|
||||
{
|
||||
{"_msg", `abc`},
|
||||
{"a", `2`},
|
||||
|
|
Loading…
Reference in a new issue