Skip to main content

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)

Source distribution for chocs-middleware.xray 1.0.0
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page