Fix
This commit is contained in:
parent
118c511e77
commit
a2988a88fb
1 changed files with 19 additions and 0 deletions
19
panels_vl.go
19
panels_vl.go
|
|
@ -58,6 +58,8 @@ func makeVLTargetWithType(refID, expr, datasourceUID, legendFormat, queryType st
|
|||
// luceneToLogsQL конвертирует базовый Lucene-запрос в LogsQL.
|
||||
// Поддерживает: AND→пробел, SID:(a OR b)→SID:in(a,b), field:[X TO Y]→field:>=X AND field:<=Y
|
||||
func luceneToLogsQL(q string) string {
|
||||
// Убираем Lucene-экранирование — заменяем все \X на X
|
||||
q = unescapeLucene(q)
|
||||
// AND → пробел (LogsQL использует пробел как AND)
|
||||
q = strings.ReplaceAll(q, " AND ", " ")
|
||||
|
||||
|
|
@ -449,3 +451,20 @@ func buildVLBucketLogsTargets(cfg map[string]interface{}, _ string, _ string, da
|
|||
makeVLStatsTarget("A", expr, datasourceUID, legendFormat),
|
||||
}
|
||||
}
|
||||
|
||||
// unescapeLucene убирает Lucene-экранирование символов вида \X → X
|
||||
func unescapeLucene(q string) string {
|
||||
var result strings.Builder
|
||||
i := 0
|
||||
for i < len(q) {
|
||||
if q[i] == '\\' && i+1 < len(q) {
|
||||
// Пропускаем обратный слеш, берём следующий символ как есть
|
||||
result.WriteByte(q[i+1])
|
||||
i += 2
|
||||
} else {
|
||||
result.WriteByte(q[i])
|
||||
i++
|
||||
}
|
||||
}
|
||||
return result.String()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue