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.
Metadata
Release files for chocs-middleware.xray 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chocs_middleware.xray-1.0.0.tar.gz | 4.5 kB | Details |
Release files / chocs_middleware.xray-1.0.0.tar.gz
| Download URL | chocs_middleware.xray-1.0.0.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4cdeeef1cb88422e36624520d1815c2d05176094eeb1d353ad14c6467a8270a4
|
|
BLAKE2b-256 checksum How to use checksums |
6792bff1cd72721d381064b0d9e4941dabf321e0d520e329ad216c2f2525a983
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.8.12 Linux/5.11.0-1025-azure
|