用于python的epsagon工具
这个包为python代码提供了一个工具,这些代码在函数上运行,用于收集分布式跟踪和性能监视。
安装
从您的项目目录:$ pip install epsagon
有关lambda部署的更多详细信息,请参见AWS documentation。
用法
aws lambda
只需使用我们的decorator报告度量:importepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False,# Optional, send more trace data)@epsagon.lambda_wrapperdefhandler(event,context):pass
django应用程序
将以下代码添加到settings.py文件:importepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False,# Optional, send more trace data)
将epsagon中间件添加到应用程序的中间件列表中(位于settings.py)MIDDLEWARE=['....','epsagon.wrappers.django.DjangoMiddleware',]
烧瓶应用
使用示例片段:fromflaskimportFlaskimportepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False)app=Flask(__name__)epsagon.flask_wrapper(app)@app.route('/')defhello():return"Hello World!"app.run()
TORNADO应用程序
使用示例片段:importtornado.ioloopimporttornado.webimportepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False)classMainHandler(tornado.web.RequestHandler):defget(self):self.write('Hello, world')defmake_app():returntornado.web.Application([(r'/',MainHandler),])if__name__=='__main__':app=make_app()app.listen(8888)tornado.ioloop.IOLoop.current().start()
通用python
使用示例片段:importepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False)@epsagon.python_wrapperdefmain():return'It worked!'main()
自定义数据
自定义标签
可以将自定义标签添加到跟踪中。过滤器稍后可用于过滤
包含特定标签的跟踪:@epsagon.lambda_wrapperdefhandler(event,context):epsagon.label('label','something_to_filter_afterwards')epsagon.label('number_of_records_parsed_successfully',42)pass
自定义错误
设置一个自定义错误,甚至可以不使函数失败:@epsagon.lambda_wrapperdefhandler(event,context):if'my_param'notinevent:epsagon.error(ValueError('event missing my_param'))pass
忽略键
通过在初始化中过滤特定的键,可以防止数据发送到epsagon。importepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False,keys_to_ignore=['Request Data','Status_Code'])
框架集成
无服务器
酒杯
将epsagon与Chalice一起使用很简单,请遵循以下示例:fromchaliceimportChaliceimportepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False)app=Chalice(app_name="hello-world")@app.route("/")defindex():return{"hello":"world"}app=epsagon.chalice_wrapper(app)
或在s3触发器示例中:fromchaliceimportChaliceapp=Chalice(app_name="helloworld")importepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False)# Whenever an object is uploaded to 'mybucket'# this lambda function will be invoked.@epsagon.lambda_wrapper@app.on_s3_event(bucket='mybucket')defhandler(event):print("Object uploaded for bucket:%s, key:%s"%(event.bucket,event.key))
扎帕
将epsagon与Zappa一起使用很简单,请遵循以下示例:fromflaskimportFlaskfromzappa.handlerimportlambda_handlerimportepsagonepsagon.init(token='my-secret-token',app_name='my-app-name',metadata_only=False)app=Flask(__name__)@app.route('/')defhello_world():return'Hello, World!'epsagon_handler=epsagon.lambda_wrapper(lambda_handler)
在您的zappa_settings.json文件中包括以下内容:{"lambda_handler":"module.path_to.epsagon_handler"}
版权所有
根据麻省理工学院的许可证提供。有关详细信息,请参见许可证。
版权所有2019,Epsagon。
欢迎加入QQ群-->: 979659372
推荐PyPI第三方库