in src/flowgger/splitter/capnp_splitter.rs [130:165]
fn handle_message(message: record_capnp::record::Reader) -> Result<Record, &'static str> {
let ts = message.get_ts();
if ts.is_nan() || ts <= 0.0 {
return Err("Missing timestamp");
}
let hostname = message
.get_hostname()
.and_then(|x| Ok(x.to_owned()))
.or(Err("Missing host name"))?;
let facility = match message.get_facility() {
facility if facility <= FACILITY_MAX => Some(facility),
_ => None,
};
let severity = match message.get_severity() {
severity if severity <= SEVERITY_MAX => Some(severity),
_ => None,
};
let appname = message.get_appname().and_then(|x| Ok(x.to_owned())).ok();
let procid = message.get_procid().and_then(|x| Ok(x.to_owned())).ok();
let msgid = message.get_msgid().and_then(|x| Ok(x.to_owned())).ok();
let msg = message.get_msg().and_then(|x| Ok(x.to_owned())).ok();
let full_msg = message.get_full_msg().and_then(|x| Ok(x.to_owned())).ok();
let sd = get_sd(message)?;
Ok(Record {
ts,
hostname,
facility,
severity,
appname,
procid,
msgid,
msg,
full_msg,
sd,
})
}