I have some logs like this:
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=GAUGE, name=jvm.memory.pools.PS-Survivor-Space.usage, value=0.375
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=GAUGE, name=jvm.memory.pools.PS-Survivor-Space.used, value=786432
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=GAUGE, name=jvm.memory.total.committed, value=293011456
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=GAUGE, name=jvm.memory.total.init, value=67567616
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=GAUGE, name=jvm.memory.total.max, value=477626367
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=GAUGE, name=jvm.memory.total.used, value=154156680
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=METER, name=data_packages_arrived, count=7481, mean_rate=0.8481874167679233, m1=0.7705372230388613, m5=0.7946042600128925, m15=0.8051263023024772, rate_unit=events/second
2015-06-18 20:37:25,359 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=TIMER, name=alarm_process, count=6744, min=0.13411099999999998, max=1.5081099999999998, mean=0.30335778909033795, stddev=0.18795410043202115, median=0.21902, p75=0.307238, p95=0.6721159999999999, p98=0.9645509999999999, p99=1.027031, p999=1.027031, mean_rate=0.7662377291210665, m1=0.7176483982797183, m5=0.7409096835805178, m15=0.7475227449943168, rate_unit=events/second, duration_unit=milliseconds
2015-06-18 20:37:25,360 [metrics-logger-reporter-1-thread-1] INFO hawkeyes.rtds.monitor.MetricsVerticle - type=TIMER, name=dbworker_record_sampler_connected, count=26, min=0.21046499999999999, max=1336.0715559999999, mean=0.28806896163489726, stddev=5.456436131274544E-5, median=0.28806899999999996, p75=0.28806899999999996, p95=0.28806899999999996, p98=0.28806899999999996, p99=0.28806899999999996, p999=0.28806899999999996, mean_rate=0.0029526323142227014, m1=0.004581532185329117, m5=0.002692284530467033, m15=0.0019566129165481563, rate_unit=events/second, duration_unit=milliseconds
I've used this grok regex:
filter {
grok {
match => { "message" =>
"%{TIMESTAMP_ISO8601:date} \[(?<thread_name>.+?)\] (?<log_level>\w+)\s+(?<verticle>.+?) -\s*(?<content>.*)"
}
}
if "type" in [content] {
grok {
match => { "content" => # Regex? }
}
}
}
content
will match this regex .+?=.+?(, .+?=.+?)*
, how to parse content
?
I want to parse like this:
{
type => "METER",
name => "jvm.memory.pools.PS-Survivor-Space.usage",
value => "0.375",
...
}