mirror of
https://github.com/alexgo-io/stacks-puppet-node.git
synced 2026-04-29 12:15:22 +08:00
chore: update h1-async for prom impl in stacks-node
This commit is contained in:
@@ -142,7 +142,6 @@ async fn main() -> http_types::Result<()> {
|
|||||||
let should_ignore_txs = config.should_ignore_transactions(effective_block_height - 1);
|
let should_ignore_txs = config.should_ignore_transactions(effective_block_height - 1);
|
||||||
|
|
||||||
let stream = stream?;
|
let stream = stream?;
|
||||||
let addr = addr.clone();
|
|
||||||
|
|
||||||
if should_ignore_txs {
|
if should_ignore_txs {
|
||||||
// Returns ok
|
// Returns ok
|
||||||
@@ -152,17 +151,17 @@ async fn main() -> http_types::Result<()> {
|
|||||||
})
|
})
|
||||||
.await?;
|
.await?;
|
||||||
// Enqueue request
|
// Enqueue request
|
||||||
buffered_requests.push_back((addr, stream));
|
buffered_requests.push_back(stream);
|
||||||
} else {
|
} else {
|
||||||
// Dequeue all the requests we've been buffering
|
// 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();
|
let config = config.clone();
|
||||||
task::spawn(async move {
|
task::spawn(async move {
|
||||||
println!(
|
println!(
|
||||||
"Dequeuing buffered request from {}",
|
"Dequeuing buffered request from {}",
|
||||||
stream.peer_addr().unwrap()
|
stream.peer_addr().unwrap()
|
||||||
);
|
);
|
||||||
if let Err(err) = accept(addr, stream, &config).await {
|
if let Err(err) = accept(stream, &config).await {
|
||||||
eprintln!("{}", err);
|
eprintln!("{}", err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -171,7 +170,7 @@ async fn main() -> http_types::Result<()> {
|
|||||||
let config = config.clone();
|
let config = config.clone();
|
||||||
task::spawn(async move {
|
task::spawn(async move {
|
||||||
println!("Handling request from {}", stream.peer_addr().unwrap());
|
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);
|
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.
|
// 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 {
|
async_h1::accept(stream.clone(), |mut req| async {
|
||||||
match (
|
match (
|
||||||
req.method(),
|
req.method(),
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ pub fn start_serving_prometheus_metrics(bind_address: String) {
|
|||||||
let addr = addr.clone();
|
let addr = addr.clone();
|
||||||
|
|
||||||
task::spawn(async {
|
task::spawn(async {
|
||||||
if let Err(err) = accept(addr, stream).await {
|
if let Err(err) = accept(stream).await {
|
||||||
eprintln!("{}", err);
|
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()?);
|
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 encoder = TextEncoder::new();
|
||||||
let metric_families = gather();
|
let metric_families = gather();
|
||||||
let mut buffer = vec![];
|
let mut buffer = vec![];
|
||||||
encoder.encode(&metric_families, &mut buffer).unwrap();
|
encoder.encode(&metric_families, &mut buffer).unwrap();
|
||||||
|
|
||||||
let mut response = Response::new(StatusCode::Ok);
|
let mut response = Response::new(StatusCode::Ok);
|
||||||
response
|
response.append_header("Content-Type", encoder.format_type());
|
||||||
.append_header("Content-Type", encoder.format_type())
|
|
||||||
.expect("Unable to set headers");
|
|
||||||
response.set_body(Body::from(buffer));
|
response.set_body(Body::from(buffer));
|
||||||
|
|
||||||
Ok(response)
|
Ok(response)
|
||||||
|
|||||||
Reference in New Issue
Block a user