python v3.6/v3.7运行时的lumigo跟踪程序
lumigo-tracer的Python项目详细描述
如何使用
- 使用
pip install lumigo_tracer
安装 或者使用lambda layer with arn`arn:aws:lambda:your-region:724777057400:layer:lumigo python tracer:41 - 使用
from lumigo_tracer import lumigo_tracer
导入
- 使用
@lumigo_tracer
或@lumigo_tracer(token='XXX')
包装lambda函数。例如,您的lambda应该如下所示:
@lumigo_tracer(token='XXX')
def my_lambda(event, context):
print('I can finally trubleshoot!')
配置
增强打印
如果使用print()
或python logging进行日志记录,则可以使用跟踪程序提供的增强打印功能,以便在平台视图中查看日志。只要将enhance_print=True
添加到跟踪器配置,就可以设置。
@lumigo_tracer(token='XXX', enhance_print=True)
def my_lambda(event, context):
print('I can view this line now')
阶跃函数
如果此函数是step函数的一部分,则可以添加标志step_function=True
,我们将作为单个事务跟踪step函数中的状态。
@lumigo_tracer(token='XXX', step_function=True)
def my_lambda(event, context):
print('Step function visibility!')
注意:我们将把键"_lumigo"
添加到函数的返回值中。
如果重写"Parameters"
配置,只需添加"_lumigo.$": "$._lumigo"
。
例如:
"States": {
"state1": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-west-2:ACCOUNT:function:FUNCTION_NAME",
"Parameters": {
"Changed": "parameters",
"_lumigo.$": "$._lumigo"
},
"Next": "state2"
},
"state2": {
"Type": "pass",
"End": true
}
}
框架
酒杯
- 在chalice中,您应该在文件中添加以下行:
from lumigo_tracer import LumigoChalice
...
app = Chalice(app_name='chalice')
app = LumigoChalice(app, token="XXX")
- 您可以在examples目录中找到更多示例
- 如果需要,有一个kill开关,它可以立即停止lumigo的所有干预,而不更改代码。只需添加环境变量
LUMIGO_SWITCH_OFF=true
。 - 通过设置环境变量
LUMIGO_DEBUG=true
- 通过设置
LUMIGO_EDGE_TIMEOUT=<seconds>
Sentry/Raven Lambda集成
在Raven decorator下面添加我们的decorator
from lumigo_tracer import lumigo_tracer
...
@RavenLambdaWrapper()
@lumigo_tracer(token='XXX')
def lambda_handler (event, context): return {
'statusCode' : 200,
'body' : json.dumps( 'Hi!' ) }
如何贡献
准备机器
- 创建一个virtualenv
virtualenv venv -p python3
- 通过运行
. venv/bin/activate
激活virtualenv
- 运行
pip install -r requirements.txt
以安装依赖项。 cd src
和python setup.py develop
。- 如果使用pycharm,请确保通过菜单下的pycharm->;首选项->;项目->;解释器更改其virtualenv
- 在存储库中运行
pre-commit install
以安装预提交挂钩。
测试
- 要运行单元测试,请在根文件夹中运行
py.test
。 - 要部署组件测试的服务,请移动到根测试目录并运行
sls deploy
。如果资源不变,则只能执行一次。 - 要运行组件测试,请运行
py.test --all
。