2 个不稳定版本
0.2.0 | 2023年4月2日 |
---|---|
0.1.0 | 2023年4月2日 |
#12 在 #moon
每月 23 次下载
76KB
1.5K SLoC
Moon Healthcheck
为 Rust 提供的异步健康检查库。
文档
lib.rs
:
Moon Healthcheck
为 Rust 提供的异步健康检查库。
功能
- TCP 健康检查
- HTTP 健康检查
- HTTP GET、POST、PUT、DELETE、HEAD、PATCH
- HTTP/1.1、HTTP/2
- UDP 健康检查
- 主动(后台)健康检查
- 被动(手动报告)健康检查
示例
TCP 健康检查
use moon_healthcheck::tcp::TcpChecker;
use moon_healthcheck::dispatcher::Dispatcher;
use tokio::time::Duration;
use tokio::time::sleep;
#[tokio::main]
async fn main() {
let mut dispatcher: Dispatcher<TcpChecker> = Dispatcher::new();
let tcp_checker = TcpChecker::new("really.really.not.exists.host", 80, 1);
let uuid = dispatcher.schedule(tcp_checker, Duration::from_secs(1)).unwrap();
sleep(Duration::from_secs(3)).await;
assert_eq!(dispatcher.is_healthy(&uuid).await.unwrap(), false);
}
UDP 健康检查
use moon_healthcheck::udp::UdpChecker;
use moon_healthcheck::dispatcher::Dispatcher;
use tokio::time::Duration;
use tokio::time::sleep;
#[tokio::main]
async fn main() {
let mut dispatcher: Dispatcher<UdpChecker> = Dispatcher::new();
let udp_checker = UdpChecker::new("really.really.not.exists.host", 53, &vec![1, 2, 3], &vec![1, 2, 3], 1);
let uuid = dispatcher.schedule(udp_checker, Duration::from_secs(1)).unwrap();
sleep(Duration::from_secs(3)).await;
assert_eq!(dispatcher.is_healthy(&uuid).await.unwrap(), false);
}
HTTP 健康检查
use moon_healthcheck::http::HttpChecker;
use moon_healthcheck::dispatcher::Dispatcher;
use tokio::time::Duration;
use tokio::time::sleep;
#[tokio::main]
async fn main() {
let mut dispatcher: Dispatcher<HttpChecker> = Dispatcher::new();
let http_checker = HttpChecker::new("https://really.really.not.exists.host", 1);
let uuid = dispatcher.schedule(http_checker, Duration::from_secs(1)).unwrap();
sleep(Duration::from_secs(3)).await;
assert_eq!(dispatcher.is_healthy(&uuid).await.unwrap(), false);
}
依赖
~6–18MB
~274K SLoC