python v3.6/v3.7运行时的lumigo跟踪程序

lumigo-tracer的Python项目详细描述


CircleCIVersioncodecov

如何使用

  • 使用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!' ) }

如何贡献

准备机器

  • 创建一个virtualenvvirtualenv venv -p python3
  • 通过运行. venv/bin/activate
  • 激活virtualenv
  • 运行pip install -r requirements.txt以安装依赖项。
  • cd srcpython setup.py develop
  • 如果使用pycharm,请确保通过菜单下的pycharm->;首选项->;项目->;解释器更改其virtualenv
  • 在存储库中运行pre-commit install以安装预提交挂钩。

测试

  • 要运行单元测试,请在根文件夹中运行py.test
  • 要部署组件测试的服务,请移动到根测试目录并运行sls deploy。如果资源不变,则只能执行一次。
  • 要运行组件测试,请运行py.test --all

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

推荐PyPI第三方库


热门话题
java使用字符而不是字符串的意义   部分匹配长度字符串相似性的java正则表达式   java获取构造函数错误(错误:“(”或“[”)   java@Value注释无法正常工作SpringBoot   java hasKey在响应中没有看到字段   java JavaFX,没有JFXButtons和所有   在Log4j2中,是否可以根据键从记录器中筛选出某些键值对?   如何使用Java中Kafka的消息,从特定偏移量开始   java在单击后存储动态按钮的值   java Android编码:ViewRootImpl$CalledFromErrorThreadException。[Noob]   通过FileChooser保存pdf格式会提示在java中出现第二个对话框   用于空文件的java Spring集成文件标记   java我们应该如何编写get方法,以便私有字段不会超出其预期范围?   java Eclipse产品问题,Juno RequireHandle:org。日食e4。果心服务