无法使用 logstash 将字符串转换为数字
Unable to convert string in to numeric using logstash
我正在尝试使用 logstash 从以下行中提取模式(第 85 行),并将变量中的数字作为浮点值。
[JaCoCo plugin] Overall coverage: class: 36, method: 65, line: 85, branch: 76, instruction: 81
logstash过滤器如下:
filter {
grok {
match => ["message", "(?<TotalUnitTCCoveragePercent>line: \d+)"]
}
mutate {
gsub => [
"TotalUnitTCCoveragePercent", "line: ", ""
]
convert => {
"TotalUnitTCCoveragePercent" => "float"
}
}
}
我能够提取字符串“line: 85”,然后将值提取为字符串。
但是,转换部分 enter code here
不起作用。
执行管道后,我得到“TotalUnitTCCoveragePercent”=> 0 而不是浮点值。我错过了什么吗?
对此的任何帮助将不胜感激。
根据 mutate filter documentation,转换步骤在 gsub 步骤之前完成,因此转换步骤在 line: 85
完成但失败了。
最简单的解决方案是通过使用此 grok 模式来避免使用 gsub 步骤:line: %{NUMBER:TotalUnitTCCoveragePercent}
。 TotalUnitTCCoveragePercent
中有 85
,因此不需要 gsub 步骤。
我正在尝试使用 logstash 从以下行中提取模式(第 85 行),并将变量中的数字作为浮点值。
[JaCoCo plugin] Overall coverage: class: 36, method: 65, line: 85, branch: 76, instruction: 81
logstash过滤器如下:
filter {
grok {
match => ["message", "(?<TotalUnitTCCoveragePercent>line: \d+)"]
}
mutate {
gsub => [
"TotalUnitTCCoveragePercent", "line: ", ""
]
convert => {
"TotalUnitTCCoveragePercent" => "float"
}
}
}
我能够提取字符串“line: 85”,然后将值提取为字符串。
但是,转换部分 enter code here
不起作用。
执行管道后,我得到“TotalUnitTCCoveragePercent”=> 0 而不是浮点值。我错过了什么吗?
对此的任何帮助将不胜感激。
根据 mutate filter documentation,转换步骤在 gsub 步骤之前完成,因此转换步骤在 line: 85
完成但失败了。
最简单的解决方案是通过使用此 grok 模式来避免使用 gsub 步骤:line: %{NUMBER:TotalUnitTCCoveragePercent}
。 TotalUnitTCCoveragePercent
中有 85
,因此不需要 gsub 步骤。