Skip to main content

SQS Transport for the sentry-sdk

Project description

https://img.shields.io/pypi/v/sentry_sqs_transport.svg https://travis-ci.com/terrycain/sentry-sqs-transport.svg?branch=master Updates

Simple AWS SQS sentry-sdk transport that takes ideas from https://github.com/Netflix-Skunkworks/raven-sqs-proxy

It closely follows the HTTPTransport just substituting the HTTP POST section with an SQS Send Message.

Installation

To install:

pip install sentry-sqs-transport

Below is an example of how to use the transport (note the transport keyword argument).

import sentry_sdk
from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration
from sentry_sqs_transport import SQSTransport

sentry_sdk.init(
    dsn="https://00000000000000000000000000000000@sentry.example.org/11",
    integrations=[AwsLambdaIntegration()],
    transport=SQSTransport,

    # Optional
    sqs_queue_url='https://sqs.eu-west-2.amazonaws.com/000000000000/SomeQueue',
    sqs_client_kwargs={'region_name': 'us-east-1'}
)

Configuration

To configure which SQS queue to use, pass sqs_queue_url into the SDK init function with the SQS queue url as the value. You can also set SENTRY_SQS_QUEUE_URL envrionment variable.

The parameter sqs_client_kwargs should be a dictionary and will be passed into the boto3 client like boto3.client('sqs', **sqs_client_kwargs).

SQS Message Format

The format of the message that is put on an SQS queue is a JSON payload which looks like the example below. The body is a base64’d form of what the SDK would usually post, which is also gzipped.

{
  "method": "POST",
  "headers": {
    "User-Agent": "string",
    "X-Sentry-Auth": "string",
    "Content-Type": "application/json",
    "Content-Encoding": "gzip",
  },
  "url": "https://sentry.example/org",
  "body": "base64 string"
}

Sentry SQS Consumer

In the resources folder there is a simple lambda function that will consume these sentry events off the SQS queue and send them to sentry.

TODO

  • Add tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sentry-sqs-transport-1.0.1.tar.gz (9.6 kB view hashes)

Uploaded Source

Built Distribution

sentry_sqs_transport-1.0.1-py3-none-any.whl (8.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page