로그 라인에서 float 값을 가져 오려고하지만 logstash mutate 필터가 값을 반올림하여 정수로 변환합니다.float 값의 구문 분석 오류
로그 라인
f413e89e-8c2f-e411-97a5-005056820dbe|0,0033
하고 구성 파일
input {
file {
path => "log.txt"
}
}
filter {
grok {
match => ["message", "%{UUID:request_object_id}[/|]%{LOCALNUM:total_time}"]
}
mutate {
gsub => ["total_time", "[,]", "."]
convert => [ "total_time", "float" ]
}
}
output {
elasticsearch { host => localhost }
}
LOCALNUM
맞춤 패턴이며
(?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:[,][0-9]+)?)|(?:[,][0-9]+)))
(사용 ","대신 "인 . "부동 숫자).
이 구성에서 total_time
은 0.0033
대신 0
입니다.