chore: update h1-async for prom impl in stacks-node

This commit is contained in:
Aaron Blankstein
2022-01-12 10:57:10 -06:00
parent 4558b72da8
commit 08e489d2f7
2 changed files with 9 additions and 12 deletions

View File

@@ -142,7 +142,6 @@ async fn main() -> http_types::Result<()> {
let should_ignore_txs = config.should_ignore_transactions(effective_block_height - 1);
let stream = stream?;
let addr = addr.clone();
if should_ignore_txs {
// Returns ok
@@ -152,17 +151,17 @@ async fn main() -> http_types::Result<()> {
})
.await?;
// Enqueue request
buffered_requests.push_back((addr, stream));
buffered_requests.push_back(stream);
} else {
// Dequeue all the requests we've been buffering
while let Some((addr, stream)) = buffered_requests.pop_front() {
while let Some(stream) = buffered_requests.pop_front() {
let config = config.clone();
task::spawn(async move {
println!(
"Dequeuing buffered request from {}",
stream.peer_addr().unwrap()
);
if let Err(err) = accept(addr, stream, &config).await {
if let Err(err) = accept(stream, &config).await {
eprintln!("{}", err);
}
});
@@ -171,7 +170,7 @@ async fn main() -> http_types::Result<()> {
let config = config.clone();
task::spawn(async move {
println!("Handling request from {}", stream.peer_addr().unwrap());
if let Err(err) = accept(addr, stream, &config).await {
if let Err(err) = accept(stream, &config).await {
eprintln!("{}", err);
}
});
@@ -181,7 +180,7 @@ async fn main() -> http_types::Result<()> {
}
// Take a TCP stream, and convert it into sequential HTTP request / response pairs.
async fn accept(_addr: String, stream: TcpStream, config: &ConfigFile) -> http_types::Result<()> {
async fn accept(stream: TcpStream, config: &ConfigFile) -> http_types::Result<()> {
async_h1::accept(stream.clone(), |mut req| async {
match (
req.method(),

View File

@@ -35,7 +35,7 @@ pub fn start_serving_prometheus_metrics(bind_address: String) {
let addr = addr.clone();
task::spawn(async {
if let Err(err) = accept(addr, stream).await {
if let Err(err) = accept(stream).await {
eprintln!("{}", err);
}
});
@@ -43,18 +43,16 @@ pub fn start_serving_prometheus_metrics(bind_address: String) {
});
}
async fn accept(addr: String, stream: TcpStream) -> http_types::Result<()> {
async fn accept(stream: TcpStream) -> http_types::Result<()> {
debug!("Handle Prometheus polling ({})", stream.peer_addr()?);
async_h1::accept(&addr, stream.clone(), |_| async {
async_h1::accept(stream.clone(), |_| async {
let encoder = TextEncoder::new();
let metric_families = gather();
let mut buffer = vec![];
encoder.encode(&metric_families, &mut buffer).unwrap();
let mut response = Response::new(StatusCode::Ok);
response
.append_header("Content-Type", encoder.format_type())
.expect("Unable to set headers");
response.append_header("Content-Type", encoder.format_type());
response.set_body(Body::from(buffer));
Ok(response)