django监视和可用性实用程序

django-ping的Python项目详细描述


django ping是一个实用程序,它为可用性和正常运行时间监视服务提供了一个轻量级端点。它 还提供用于测试堆栈组件和通过json报告它们的钩子。

安装

使用pip下载并安装:

pip install django-ping

将django ping添加到url conf:

url(r'^ping/', include('ping.urls')),

基本配置

点击端点返回一个简单的status 200响应。 您可以通过添加到您的django设置来自定义消息:

PING_DEFAULT_RESPONSE = "All systems go!"
PING_DEFAULT_MIMETYPE = 'text/html'

点击网址:

/ping

显示:

All systems go!

高级配置

启用状态检查

向url添加checks=true参数将告诉django ping运行 一系列状态检查并报告结果。

例如:

/ping?checks=true

显示:

Your site is up!
db_sessions True
db_site True

默认情况下,django ping测试数据库是否响应 通过提供两个测试。你可以提供你自己的测试 以确保一切按预期反应。如果你不知道 使用数据库会话或contrib.sites应用程序,可以删除 去掉那些你不需要的。

要自定义,请在django设置中包含一个元组:

PING_CHECKS = (
    'ping.checks.check_database_sessions',
    #'ping.checks.check_database_sites',
    'my_app.module.check_function',
    'my_other_app.some_module.some_function'
)

fmt参数指定给json将返回更详细的序列化数据。 例如:

/ping?fmt=json

显示:

{
    "db_sessions": true,
    "db_site": true
}

自定义状态检查

检查应接受请求对象并返回 两个值。要显示的名称/密钥 以及支票的价值。价值应该是任何东西 可以序列化的。

def check_sample(request):
    #...do some things...
    return 'foo', True
    #or
    return 'bar', float(123.456)
    #or even
    return 'baz', ['one', 'two', 'three', {'a':1, 'b':2, 'c':3}]

然后,将其添加到要显示的PING_CHECKS元组:

{
    'foo', true
}

包括状态检查

django ping包含一些用于测试各种组件的检查 活着。

check_database_会话-命中数据库并尝试检索单个会话。

check_database_sites-命中数据库并尝试检索单个站点实例。

check_cache集-尝试使用当前定义的缓存后端缓存值。

check_cache-get-尝试使用当前定义的缓存后端检索缓存值。

认证

您可以要求http基本身份验证来访问ping端点, 在django设置中将PING_BASIC_AUTH设置为True

在请求中提供有效用户的用户名/密码。

接下来是什么?

去注册一个监控服务或者扮演你自己的角色。

https://www.pingdom.com/

http://www.panopta.com/

http://binarycanary.com/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将resultset转换为json的最佳方式是什么   smb需要从具有用户名和密码但引发SMBApiException的java连接碎片驱动器   没有线程,java死锁实现无法工作。睡觉   java Tomcat内存中会话复制   从java文本窗格保存字体   java启动Windows 10 Paint3D以打开特定的图像文件   Eclipse Java,将文本从ISO88591转换为UTF8   java加载jar中包含的资源   java xpath在selenium中不可识别,但在XPather中可识别   java如何将Springbean从多个配置文件的自动关联候选中排除?   java在某个范围内的XOR最大值?   java Android JNI/C++:如何正确添加带有。h和。cpp文件?   java使用关键字this和类中的多个构造函数   C++如何将一个被重复调用的外部进程集成到java WebApp中?