Middleware to integrate aws x-ray with chocs.
Project description
chocs-aws-xray
AWS X-Ray middleware for chocs library.
Installation
through poetry:
poetry add chocs_middleware.xray
or through pip:
pip install chocs_middleware.xray
Usage
The following snippet is the simplest integration example.
Please note x-ray won't work in WSGI mode, it has to be deployed as aws lambda in order to work.
from chocs import Application, HttpResponse, serve
from chocs_middleware.xray import AwsXRayMiddleware
app = Application(AwsXRayMiddleware())
@app.get("/hello")
def say_hello(request):
return HttpResponse("Hello")
serve(app)
Setting up custom error handler
AWS X-Ray middleware provides a way to setup a custom error handler which may become handy when you need to supplement your logs with additional information. Please consider the following example:
from chocs import Application, HttpResponse, HttpStatus
from chocs_middleware.xray import AwsXRayMiddleware
def error_handler(request, error, segment):
segment.add_exception(error)
return HttpResponse("NOT OK", HttpStatus.INTERNAL_SERVER_ERROR)
app = Application(AwsXRayMiddleware(error_handler=error_handler))
@app.get("/hello")
def say_hello(request):
raise Exception("Not Today!")
return HttpResponse("Hello")
To learn more about error_handler interface please click here.
Accessing x-ray recorded from within your application layer
from chocs import Application, HttpResponse
from chocs_middleware.xray import AwsXRayMiddleware
app = Application(AwsXRayMiddleware())
@app.get("/hello")
def say_hello(request):
xray_recorder = request.attributes["aws_xray_recorder"] # Here is the instance of your recorder.
return HttpResponse("OK")
That's all.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for chocs_middleware.xray-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cdeeef1cb88422e36624520d1815c2d05176094eeb1d353ad14c6467a8270a4 |
|
MD5 | f0e3d5b5f120d7de8ab959abbf18235c |
|
BLAKE2b-256 | 6792bff1cd72721d381064b0d9e4941dabf321e0d520e329ad216c2f2525a983 |