一个简单的模块,可让您轻松地将健康端点添加到 Flask 应用程序
项目描述
Flask-Healthz
在 Flask 应用程序中定义 Kubernetes 可以用作 liveness 和 readiness 探针的端点。
设置它
蓝图
在 Flask 应用程序上注册蓝图:
from flask import Flask
from flask_healthz import healthz
app = Flask(__name__)
app.register_blueprint(healthz, url_prefix="/healthz")
定义要用于检查运行状况的函数。要发出错误信号,请提高flask_healthz.HealthError
.
from flask_healthz import HealthError
def liveness():
pass
def readiness():
try:
connect_database()
except Exception:
raise HealthError("Can't connect to the database")
现在指向 Flask 配置中的那些函数:
HEALTHZ = {
"live": "yourapp.checks.liveness",
"ready": "yourapp.checks.readiness",
}
可以直接在配置中设置可调用对象,因此您可以编写如下内容:
HEALTHZ = {
"live": lambda: None,
}
检查端点是否实际工作:
$ curl http://localhost/yourapp/healthz/live
{"status": 200, "title": "OK"}
$ curl http://localhost/yourapp/healthz/ready
{"status": 200, "title": "OK"}
现在您可以配置 Kubernetes 或 OpenShift 来检查这些端点。
扩大
您还可以使用提供的 Flask 扩展来注册healthz
蓝图:
from flask import Flask
from flask_healthz import Healthz
app = Flask(__name__)
Healthz(app)
其余配置相同。
该扩展有一个附加选项,no_log
可以禁用对 healthz 端点处理的 HTTP 请求的日志记录,以避免自动请求使您的 Web 日志文件混乱。目前,仅支持gunicorn Web 服务器。
Healthz(app, no_log=True)
例子
这是一个如何在 OpenShift 中使用 flask-healthz 的示例deploymentconfig
:
kind: DeploymentConfig
spec:
[...]
template:
[...]
spec:
containers:
- name: yourapp
[...]
livenessProbe:
httpGet:
path: /healthz/live
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 1
readinessProbe:
httpGet:
path: /healthz/ready
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 1
一些设置了 flask-healthz 的项目:
- 头:https ://github.com/fedora-infra/noggin/pull/287
- FASJSON:https ://github.com/fedora-infra/fasjson/pull/81
执照
版权所有 2020-2021 红帽
Flask-Healthz 在与 Flask 本身相同的许可下获得许可:BSD 3-clause。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
flask-healthz-0.0.3.tar.gz
(6.4 kB
查看哈希)
内置分布
flask_healthz-0.0.3-py3-none-any.whl
(7.3 kB
查看哈希)
关
flask_healthz -0.0.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e01bf4c1d0e0b2538a444ddf63915c7338a4adabe725186cec6553d3f45d1c33 |
|
MD5 | a47c52e5cdbf209ea5d81452f56be999 |
|
布莱克2-256 | 6f70a2f380522acb6ba5ee7cddfc151c3d218b602e0f6dd102ab323752e0c871 |