健康端点
健康端点指服务器提供的特定端点或路由,用于确定服务器或应用程序的健康状态。该端点通常用于监控和管理目的,允许外部系统或监控工具通过其 API 检测系统否正常运行。
修改 src/main.rs:
@@ -3,9 +3,11 @@ extern crate rocket;
use rocket::response::content;
-#[get("/ping")]
+// Define a health endpoint handler, use `/health` or `/`
+#[get("/")]
fn ping() -> content::RawJson<&'static str> {
- content::RawJson("{\"message\": \"pong\"}")
+ // Return a simple response indicating the server is healthy
+ content::RawJson("{\"status\":\"ok\"}")
}
#[launch]
/
端点的响应:
{"status":"ok"}
可选:
如果想在健康端点的响应中包括 CPU 或内存数据,需要你在 Rust 程序的运行环境中收集相关数据。
[可选] CPU 和内存使用数据
添加 sysinfo
依赖:
cargo add sysinfo
修改 src/main.rs [可选]:
@@ -2,12 +2,27 @@
extern crate rocket;
use rocket::response::content;
+use sysinfo::System;
// Define a health endpoint handler, use `/health` or `/`
#[get("/")]
-fn ping() -> content::RawJson<&'static str> {
- // Return a simple response indicating the server is healthy
- content::RawJson("{\"status\":\"ok\"}")
+fn ping() -> content::RawJson<String> {
+ let mut sys = System::new_all();
+ sys.refresh_all();
+ // sys.refresh_cpu();
+
+ let result_json = format!(
+ r#"{{
+ "cpu": "{:.2}%",
+ "used_memory": "{:.2} MB",
+ "total_memory": "{:.2} MB",
+ "status": "ok"
+}}"#,
+ sys.global_cpu_info().cpu_usage(),
+ sys.used_memory() as f32 / 1024.0 / 1024.0,
+ sys.total_memory() as f32 / 1024.0 / 1024.0
+ );
+ content::RawJson(result_json)
}
#[launch]
r#
是一个用于创建原始字符串变量的前缀。
原始字符串字面量在需要包含特殊字符、转义序列或多行字符串时非常有用。其帮助开发者省去频繁的转义操作。
该响应如下所示:
{
"cpu": "70.83%",
"used_memory": "10655.54 MB",
"total_memory": "16384.00 MB",
"status": "ok"
}