summaryrefslogtreecommitdiff
path: root/docs/advanced.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/advanced.rst')
-rw-r--r--docs/advanced.rst304
1 files changed, 0 insertions, 304 deletions
diff --git a/docs/advanced.rst b/docs/advanced.rst
deleted file mode 100644
index 5f89515..0000000
--- a/docs/advanced.rst
+++ /dev/null
@@ -1,304 +0,0 @@
-Advanced Usage
-==============
-
-This covers some advanced usage scenarios for raven Python.
-
-Alternative Installations
--------------------------
-
-If you want to use the latest git version you can get it from `the github
-repository <https://github.com/getsentry/raven-python>`_::
-
- git clone https://github.com/getsentry/raven-python
- pip install raven-python
-
-Certain additional features can be installed by defining the feature when
-``pip`` installing it. For instance to install all dependencies needed to
-use the Flask integration, you can depend on ``raven[flask]``::
-
- pip install raven[flask]
-
-For more information refer to the individual integration documentation.
-
-.. _python-client-config:
-
-Configuring the Client
-----------------------
-
-Settings are specified as part of the initialization of the client. The
-client is a class that can be instantiated with a specific configuration
-and all reporting can then happen from the instance of that object.
-Typically an instance is created somewhere globally and then imported as
-necessary.
-
-.. code-block:: python
-
- from raven import Client
-
- # Read configuration from the ``SENTRY_DSN`` environment variable
- client = Client()
-
- # Manually specify a DSN
- client = Client('___DSN___')
-
-
-A reasonably configured client should generally include a few additional
-settings:
-
-.. code-block:: python
-
- import os
- import raven
-
- client = raven.Client(
- dsn='___DSN___',
-
- # inform the client which parts of code are yours
- # include_paths=['my.app']
- include_paths=[__name__.split('.', 1)[0]],
-
- # pass along the version of your application
- # release='1.0.0'
- # release=raven.fetch_package_version('my-app')
- release=raven.fetch_git_sha(os.path.dirname(__file__)),
- )
-
-.. versionadded:: 5.2.0
- The *fetch_package_version* and *fetch_git_sha* helpers.
-
-
-Client Arguments
-----------------
-
-The following are valid arguments which may be passed to the Raven client:
-
-.. describe:: dsn
-
- A Sentry compatible DSN as mentioned before::
-
- dsn = '___DSN___'
-
-.. describe:: transport
-
- The HTTP transport class to use. By default this is an asynchronous worker
- thread that runs in-process.
-
- For more information see :doc:`transports`.
-
-.. describe:: site
-
- An optional, arbitrary string to identify this client installation::
-
- site = 'my site name'
-
-.. describe:: name
-
- This will override the ``server_name`` value for this installation.
- Defaults to ``socket.gethostname()``::
-
- name = 'sentry_rocks_' + socket.gethostname()
-
-.. describe:: release
-
- The version of your application. This will map up into a Release in
- Sentry::
-
- release = '1.0.3'
-
-.. describe:: environment
-
- The environment your application is running in::
-
- environment = 'staging'
-
-.. describe:: tags
-
- Default tags to send with events::
-
- tags = {'site': 'foo.com'}
-
-.. describe:: repos
-
- This describes local repositories that are reflected in your source code::
-
- repos = {
- 'raven': {
- # the name of the repository as registered in Sentry
- 'name': 'getsentry/raven-python',
- # the prefix where the local source code is found in the repo
- 'prefix': 'src',
- }
- }
-
- The repository key can either be a module name or the absolute path. When
- a module name is given it will be automatically converted to its absolute path.
-
- For more information, see the :doc:`repos interface <../../../clientdev/interfaces/repos>`
- docs.
-
-.. describe:: exclude_paths
-
- Extending this allow you to ignore module prefixes when we attempt to
- discover which function an error comes from (typically a view)::
-
- exclude_paths = [
- 'django',
- 'sentry',
- 'raven',
- 'lxml.objectify',
- ]
-
-.. describe:: include_paths
-
- For example, in Django this defaults to your list of ``INSTALLED_APPS``,
- and is used for drilling down where an exception is located::
-
- include_paths = [
- 'django',
- 'sentry',
- 'raven',
- 'lxml.objectify',
- ]
-
-.. describe:: ignore_exceptions
-
- A list of exceptions to ignore::
-
- ignore_exceptions = [
- 'Http404',
- 'django.exceptions.http.Http404',
- 'django.exceptions.*',
- ValueError,
- ]
-
- Each item can be either a string or a class.
- String declaration is strict (ie. does not work for child exceptions)
- whereas class declaration handle inheritance (ie. child exceptions are also ignored).
-
-.. describe:: sample_rate
-
- The sampling factor to apply to events. A value of 0.00 will deny sending
- any events, and a value of 1.00 will send 100% of events.
-
- .. code-block:: python
-
- # send 50% of events
- sample_rate = 0.5
-
-.. describe:: list_max_length
-
- The maximum number of items a list-like container should store.
-
- If an iterable is longer than the specified length, the left-most
- elements up to length will be kept.
-
- .. note:: This affects sets as well, which are unordered.
-
- ::
-
- list_max_length = 50
-
-.. describe:: string_max_length
-
- The maximum characters of a string that should be stored.
-
- If a string is longer than the given length, it will be truncated down
- to the specified size::
-
- string_max_length = 200
-
-.. describe:: auto_log_stacks
-
- Should Raven automatically log frame stacks (including locals) for all
- calls as it would for exceptions::
-
- auto_log_stacks = True
-
-.. describe:: processors
-
- A list of processors to apply to events before sending them to the
- Sentry server. Useful for sending additional global state data or
- sanitizing data that you want to keep off of the server::
-
- processors = (
- 'raven.processors.SanitizePasswordsProcessor',
- )
-
-Sanitizing Data
----------------
-
-Several processors are included with Raven to assist in data
-sanitiziation. These are configured with the ``processors`` value.
-
-.. describe:: raven.processors.SanitizePasswordsProcessor
-
- Removes all keys which resemble ``password``, ``secret``, or
- ``api_key`` within stacktrace contexts, HTTP bits (such as cookies,
- POST data, the querystring, and environment), and extra data.
-
-.. describe:: raven.processors.RemoveStackLocalsProcessor
-
- Removes all stacktrace context variables. This will cripple the
- functionality of Sentry, as you'll only get raw tracebacks, but it will
- ensure no local scoped information is available to the server.
-
-.. describe:: raven.processors.RemovePostDataProcessor
-
- Removes the ``body`` of all HTTP data.
-
-Custom Grouping Behavior
-------------------------
-
-In some cases you may see issues where Sentry groups multiple events together
-when they should be separate entities. In other cases, Sentry simply doesn't
-group events together because they're so sporadic that they never look the same.
-
-Both of these problems can be addressed by specifying the ``fingerprint``
-attribute.
-
-For example, if you have HTTP 404 (page not found) errors, and you'd prefer they
-deduplicate by taking into account the URL:
-
-.. code-block:: python
-
- client.captureException(fingerprint=['{{ default }}', 'http://my-url/'])
-
-.. sentry:edition:: hosted, on-premise
-
- For more information, see :ref:`custom-grouping`.
-
-Sampling Messages
------------------
-
-There are two ways to sample messages:
-
-- Add sample_rate to the Client object - This sends a percentage of messages the reaching the Client to Sentry
-
-.. code-block:: python
-
- client = Client('___DSN___', sample_rate=0.5) # send 50% of events
-
-- Sample individual messages
-
-.. code-block:: python
-
- client = Client('___DSN___') # No sample_rate provided
-
- try:
- 1 / 0
- except ZeroDivisionError:
- client.captureException(sample_rate=0.5) # Send 50% of this event
-
-Alternatively, if you have SentryHandler configured in your logging stack,
-you can send ``sample_rate`` in the ``extra`` kwarg in each log like this
-
-.. code-block:: python
-
- some_logger.warning('foo', extra={'sample_rate': 0.5}) # Send 50% of this event
-
-A Note on uWSGI
----------------
-
-If you're using uWSGI you will need to add ``enable-threads`` to the
-default invocation, or you will need to switch off of the threaded default
-transport.