» Python:使用Flask构建REST API » 2. 开发 » 2.2 健康端点

健康端点

健康端点指服务器提供的特定端点或路由,用于确定服务器或应用程序的健康状态。该端点通常用于监控和管理目的,允许外部系统或监控工具通过其 API 检测系统否正常运行。

修改 main.py

from flask import Flask, jsonify

app = Flask(__name__)

# 定义一个健康端点,通常使用 `/health` 或 `/`
@app.route('/')
def health():
    # 返回一个表示健康的简单响应
    return jsonify({"status": "ok"})

启动服务:

flask --app main run --debug

/ 端点的响应:

{
  "status": "ok"
}

可选
如果想在健康端点的响应中包括 CPU 或内存数据,需要你在 Python 程序的运行环境中收集相关数据。

修改 main.py [可选]:

@@ -1,10 +1,27 @@
 from flask import Flask, jsonify
+import psutil
 
 app = Flask(__name__)
 
 # Define a health endpoint handler, use `/health` or `/`
 @app.route('/')
 def health():
-    # Return a simple response indicating the server is healthy
-    return jsonify({"status": "ok"})
+    # Get CPU usage
+    cpu_percent = psutil.cpu_percent()
 
+    # Get memory usage
+    mem = psutil.virtual_memory()
+    mem_total = mem.total
+    mem_used = mem.used
+    mem_percent = mem.percent
+    
+    # Return a simple response indicating the server is healthy
+    return jsonify({
+        "status": "ok",
+        "cpu_usage_percent": cpu_percent,
+        "memory_usage": {
+            "total": mem_total,
+            "used": mem_used,
+            "percent": mem_percent
+        }
+    })

安装 psutil, [可选]:

pip3 install psutil

其响应如下所示:

{
  "cpu_usage_percent": 4.3,
  "memory_usage": {
    "percent": 58.8,
    "total": 17179869184,
    "used": 9561190400
  },
  "status": "ok"
}