add program options for tokio histogram settings

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-12-19 07:01:15 +00:00 committed by strawberry
parent af3d6a2e37
commit 674acc8657
2 changed files with 19 additions and 11 deletions

View file

@ -35,25 +35,21 @@ pub(super) fn new(args: &Args) -> Result<tokio::runtime::Runtime> {
.on_task_terminate(task_terminate);
#[cfg(tokio_unstable)]
enable_histogram(&mut builder);
enable_histogram(&mut builder, args);
builder.build().map_err(Into::into)
}
#[cfg(tokio_unstable)]
fn enable_histogram(builder: &mut Builder) {
use tokio::runtime::{HistogramConfiguration, LogHistogram};
let config = LogHistogram::builder()
.min_value(Duration::from_micros(10))
.max_value(Duration::from_millis(1))
.max_error(0.5)
.max_buckets(32)
.expect("erroneous histogram configuration");
fn enable_histogram(builder: &mut Builder, args: &Args) {
use tokio::runtime::HistogramConfiguration;
let buckets = args.worker_histogram_buckets;
let interval = Duration::from_micros(args.worker_histogram_interval);
let linear = HistogramConfiguration::linear(interval, buckets);
builder
.enable_metrics_poll_time_histogram()
.metrics_poll_time_histogram_configuration(HistogramConfiguration::log(config));
.metrics_poll_time_histogram_configuration(linear);
}
#[tracing::instrument(