Factor out query type

This commit is contained in:
Dominik Werder
2023-03-20 07:13:59 +01:00
parent 1baa78bd3a
commit c0bdc854ff
37 changed files with 595 additions and 500 deletions

View File

@@ -15,10 +15,10 @@ use items_2::frame::make_error_frame;
use items_2::frame::make_term_frame;
use netpod::histo::HistoLog2;
use netpod::log::*;
use netpod::query::PlainEventsQuery;
use netpod::AggKind;
use netpod::NodeConfigCached;
use netpod::PerfOpts;
use query::api4::events::PlainEventsQuery;
use std::net::SocketAddr;
use std::pin::Pin;
use streams::frames::inmem::InMemoryFrameAsyncReadStream;
@@ -277,8 +277,8 @@ async fn events_conn_handler_inner_try(
return Err((e, netout).into());
}
let mut stream: Pin<Box<dyn Stream<Item = Box<dyn Framable + Send>> + Send>> = if false {
if true {
let mut stream: Pin<Box<dyn Stream<Item = Box<dyn Framable + Send>> + Send>> = if evq.is_event_blobs() {
if false {
error!("TODO support event blob transform");
let e = Error::with_msg(format!("TODO support event blob transform"));
return Err((e, netout).into());
@@ -327,15 +327,17 @@ async fn events_conn_handler_inner_try(
}
};
let mut buf_len_cnt = 0;
let mut buf_len_sum = 0;
let mut buf_len_histo = HistoLog2::new(5);
while let Some(item) = stream.next().await {
let item = item.make_frame();
match item {
Ok(buf) => {
if buf.len() > 1024 * 64 {
buf_len_cnt += 1;
buf_len_sum += buf.len();
if buf.len() > 1024 * 128 {
warn!("emit buf len {}", buf.len());
} else {
info!("emit buf len {}", buf.len());
}
buf_len_histo.ingest(buf.len() as u32);
match netout.write_all(&buf).await {
@@ -349,6 +351,7 @@ async fn events_conn_handler_inner_try(
}
}
}
info!("buf_len_cnt {} buf_len_avg {}", buf_len_cnt, buf_len_sum / buf_len_cnt);
let buf = match make_term_frame() {
Ok(k) => k,
Err(e) => return Err((e, netout))?,

View File

@@ -11,7 +11,6 @@ use items_2::channelevents::ChannelEvents;
use items_2::framable::EventQueryJsonStringFrame;
use items_2::frame::decode_frame;
use items_2::frame::make_frame;
use netpod::query::PlainEventsQuery;
use netpod::range::evrange::NanoRange;
use netpod::timeunits::SEC;
use netpod::AggKind;
@@ -23,6 +22,7 @@ use netpod::Node;
use netpod::NodeConfig;
use netpod::NodeConfigCached;
use netpod::SfDatabuffer;
use query::api4::events::PlainEventsQuery;
use std::time::Duration;
use streams::frames::inmem::InMemoryFrameAsyncReadStream;
use tokio::io::AsyncWriteExt;