Skip to main content

Plone integration for raven / sentry.

Project description

Purpose

This package extends raven, the Sentry integration with a Plone integration wich is not logger based but hooks into the Zope exception handling.

Be aware that there is already a standard logging based Zope / Plone integration for raven. You should use the standard implementation unless you want the exception hook based integration.

Installation and configuration

  • Add the ftw.raven package to your dependencies.

  • Configure the raven client with environment variables in buildout

Example configuration for buildout:

[instance]
eggs +=
    ftw.raven
environment-vars +=
    RAVEN_DSN https://123:456@sentry.local/2

Configuration-Test

You can test your configuration by visiting the view raven-test on any context as Manager-user. This will trigger an exception which should appear in your sentry project.

Note that it’s possible that the trigger doesn’t work on local test systems in some cases.

In JavaScript you can call the function raven_test() in your javascript console, which will also trigger an exception.

Release tracking

When an exception is reported, the release can be sent along. A release can either be the version number of a released distribution (e.g. released on pypi) or the HEAD SHA of a project checkout when the app is not released on pypi.

Version of a released distribution

For using a distribution version as release, the environment variable RAVEN_PROJECT_DIST must contain the name of the distribution, e.g.

[instance]
environment-vars +=
    RAVEN_PROJECT_DIST my.project

Git SHA of checkout

Usually the buildout root is a checkout of the project, thus we need to configured the RAVEN_BUILDOUT_ROOT so that the git repository is found:

[instance]
environment-vars +=
    RAVEN_BUILDOUT_ROOT ${buildout:directory}

Ignored exceptions

By default, not all exceptions are reported, because some exceptions such as redirects or 404s are not errors but are implemented as exceptions. Without configuration, the exceptions NotFound, Unauthorized, Redirect and Intercepted.

Reporting of those exceptions can be enabled by with the environment variable RAVEN_ENABLE_EXCEPTIONS:

[instance]
environment-vars +=
    RAVEN_ENABLE_EXCEPTIONS NotFound, Redirect

If you need to disable custom exceptions, you can do that with the environment variable RAVEN_DISABLE_EXCEPTIONS:

[instance]
environment-vars +=
    RAVEN_DISABLE_EXCEPTIONS UnimportantError

Report JavaScript errors

In order to be able to report JavaScript-errors, the ftw.raven:default Generic Setup profile must be installed, which registers a JavaScript including the raven library and the configuration.

Additional tags

It is possible to report additional, predefined tags for a deployment. The tags may be directly declared as JSON in the environment variable RAVEN_TAGS or the variable RAVEN_TAGS_FILE may contain a path to a json-file. These two methods may be combined, and the respective dictionaries will be merged (with tags from the RAVEN_TAGS variable taking precedence).

The JSON must be a one-level hash containing strings as keys and values.

Examples:

[instance]
environment-vars +=
    RAVEN_TAGS {"deployment": "production"}
[instance]
environment-vars +=
    RAVEN_TAGS_FILE ${buildout:directory}/conf/raven_tags.json

Changelog

1.3.1 (2020-10-26)

  • Support threaded+requests+https dsn scheme in JS [Nachtalb]

1.3.0 (2019-03-08)

  • Add support for Plone 5. [mbaechtold, jone]

  • Move raven ressources to plone bundle. [mathias.leimgruber]

1.2.0 (2017-03-15)

  • Add RAVEN_DISABLE_EXCEPTIONS environment variable for allowing to disable reporting of custom exceptions. [jone]

1.1.3 (2016-04-29)

  • Also ignore Intercepted exceptions from plone.caching by default. [lgraf]

1.1.2 (2016-03-15)

  • Test if raven config is accessible in javascript integration. [Kevin Bieri]

1.1.1 (2016-01-20)

  • Fix bug on errors ignored by error_log, such as NotFound. [jone]

1.1.0 (2016-01-20)

  • Refactor JavaScript integration so that it is cacheable. [jone]

  • Report error_log number as tag. [jone]

  • Add a view raven-test and a JavaScript function raven_test() for testing the raven configuration and connection. Both will throw an exception which will be reported to sentry. [jone]

  • New environment variables RAVEN_TAGS and RAVEN_TAGS_FILE for making it possible to attach additional static tags. [jone]

1.0.2 (2016-01-15)

  • Fix IP reporting: prioritize X-Forwarded-For. [jone]

1.0.1 (2016-01-15)

  • Report the client IP instead of the proxy IP. [jone]

  • Do not report ConflictError which are handled with a Retry, but those which failed after 3 retries. [jone]

1.0.0 (2016-01-15)

  • Initial implementation [jone]

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

ftw.raven-1.3.1.tar.gz (33.9 kB view hashes)

Uploaded Source

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