跳转到主要内容

AppEnlight报告客户端 - WSGI应用和Django监控(http://getappenlight.com)

项目描述

http://getappenlight.com/static/images/sections/index/devices.png

appenlight_client

Python Logo Pyramid Logo Flask Logo Django Logo

安装和设置

使用pip安装appenlight_client

pip install appenlight-client

主要文档位置

App Enlight开发者文档包含最新信息,包括在流行的Python网络框架中的实现指南。

http://getappenlight.com/page/api/main.html

用法

在您可以在应用程序中使用客户端之前,您首先需要导航到存储应用程序配置的目录,并执行以下命令

$ENV/bin/python/appenlight_client makeini appenlight.ini

用法(以 pyramid 或其他 WSGI 管道兼容解决方案如 Zope 为例)

在您的 INI 文件中,您需要添加

[filter:appenlight_client]
use = egg:appenlight_client
appenlight.config_path = %(here)s/appenlight.ini #optional if you don't want to set APPENLIGHT_INI env var

[pipeline:main]
pipeline =
    .....your other pipeline entries ....
    appenlight_client
    app_name

为了最小化配置复杂性,客户端默认将查找 APPENLIGHT_INI 环境变量,该变量将提供配置文件的绝对路径。

对于 pylons 应用程序,您可以修改 config/middleware.py:导入可调用函数并添加以下行

#exception gathering
# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)

app = make_appenlight_middleware(app,config)

并将以下内容添加到您的 ini 文件中

appenlight.config_path = %(here)s/appenlight.ini #optional if you don't want to set APPENLIGHT_INI env var

App Enlight 客户端提供慢调用和数据存储计时功能;当前支持的库

  • 最常用的 dbapi2 驱动器

  • django 模板

  • httplib

  • jinja2 模板

  • mongodb

  • mako 模板

  • pysolr

  • requests

  • urllib

  • urllib2

  • urllib3

如果您出于某种原因想禁用特定库的计时,只需将时间值设置为 false。

配置 appenlight 和 django

对于 django 框架,有提供单独兼容的中间件。

修改您的设置文件以包含

import appenlight_client.client as e_client
APPENLIGHT = e_client.get_config()

此外,需要修改中间件堆栈以包含额外的中间件

MIDDLEWARE_CLASSES = (
    'appenlight_client.django_middleware.AppenlightMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...

请注意,App Enlight 中间件应放在堆栈的第一位以正确运行。

运行您的 django 应用程序,提供包含配置文件绝对路径的 APPENLIGHT_INI 环境变量。

在 Pyramid Web 框架中更改默认支架配置

pyramid 1.3 的默认支架有一个名为 [app:main] 的部分 - App Enlight 客户端期望您使用 wsgi pipeline 而不是它来定位自己。

实现这一点的最简单方法是修改您的配置文件,使其看起来像这样

[app:main] becomes [app:yourappname]

并且在您的配置中,在 在 [server:main] 指令之上,应该出现以下指令

[pipeline:main]
pipeline =
    ... your other middleware you may have ...
    appenlight_client
    yourappname

Pyramid Web 框架和 Appenlight 中的异常视图

Pyramid 使用异常视图在发生异常时提供漂亮的 HTML 模板。不幸的是,这意味着异常是在到达 App Enlight 中间件之前处理的,因此任何 500 错误数据永远不会发送到 App Enlight。

您可以在 error_view 中这样处理错误处理

def error_view(exc, request):
    from appenlight_client.exceptions import get_current_traceback
    from appenlight_client.timing import get_local_storage
    appenlight_storage = get_local_storage()
    stats, slow_calls = appenlight_storage.get_thread_stats()
    traceback = get_current_traceback(skip=1, show_hidden_frames=True, ignore_system_exceptions=True)
    request.environ['appenlight.client'].py_report(request.environ, traceback, message=None,http_status=500, request_stats=stats)
    request.response.status = 500
    return {}

敏感数据过滤

客户端默认将以下键的 COOKIE、POST 和 GET 空白:'password'、'passwd'、'pwd'、'auth_tkt'

此行为可以通过在配置中传递点分模块名称来更改,以过滤从结构中发送到服务器的所有类型的数据

appenlight.filter_callable = foo.bar.baz:callable_name

示例

def callable_name(structure, section=None):
    structure['request']['SOMEVAL'] = '***REMOVED***'
    return structure

App Enlight 将尝试导入 foo.bar.baz 并使用 callable_name 作为接受参数(结构、部分)并返回更改后的数据结构的函数。

请注意,此功能可用于更改 App Enlight 分组机制等;您可以根据客户端生成的结构中的值设置此变量。

appenlight_client 是 BSD 许可,有关详细信息请参阅 LICENSE。

客户端源https://github.com/AppEnlight/appenlight-client-python

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

appenlight_client-0.6.26.tar.gz (48.6 kB 查看哈希值)

上传时间

由以下组织支持