Skip to content

Commit

Permalink
Optional Sentry integration
Browse files Browse the repository at this point in the history
  • Loading branch information
zgoda committed Jul 18, 2020
1 parent 7bf10f7 commit 7cfa5d6
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 1 deletion.
Binary file added docs/_static/sentry_config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions docs/adminguide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,19 @@ Dokumentacja administratora
===========================

Jako "administratora systemu" rozumiemy osobę odpowiedzialną za instalację, uruchomienie i utrzymanie serwisu Biuletynu w stanie sprawnym i działającym. Zakładamy że instalacja i uruchmienie aplikacji zostaną wykonane w systemie Linux. Dla mniej wprawnych użytkowników proponujemy wykonanie próbnej instalacji na maszynie wirtualnej Debiana 10 uruchomionej pod Virtualbox albo VMWare. Ogólnie instalacja **nie wymaga** niczego poza instalowaniem pakietów systemowych, instalowaniem pakietów bibliotek Pythona w środowisku wirtualnym oraz edytowania plików tekstowych z konfiguracją serwisów takich jak serwer aplikacji czy WWW.

Usługi dodatkowe
----------------

Integracja z usługą zdalnego logowania Sentry
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Aplikacja BIP może być opcjonalnie zintegrowana z usługą zdalnego logowania błędów Sentry. Do zintegrowania aplikacji z Sentry konieczne jest dostarczenie poprzez zmienną środowiskową parametrów połączenia do serwera Sentry. Poniższy przykład pokazuje jak to zrobić przy użyciu pliku ze zmiennymi środowiskowymi używanego przez ``systemd`` w definicji usługi aplikacji.

.. code-block:: shell
SENTRY_DSN=https://klucz@konto.ingest.sentry.io/projekt
Zawartość tej zmiennej można znaleźć w ustawieniach projektu na stronie administracji w Sentry.

.. image:: /_static/sentry_config.png
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def find_version(*where):
'Flask-WTF',
'Flask-Babel',
'Bootstrap-Flask',
'sentry-sdk[flask]',
'validators',
'Werkzeug',
'markdown',
Expand Down
13 changes: 12 additions & 1 deletion src/bip/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
from typing import Optional

import keyring
import sentry_sdk
from flask import render_template, send_from_directory
from keyrings.cryptfile.cryptfile import CryptFileKeyring
from sentry_sdk.integrations.flask import FlaskIntegration
from werkzeug.utils import ImportStringError

from .__version__ import get_version
from .admin import admin_bp
from .auth import auth_bp
from .ext import babel, bootstrap, csrf, login_manager
Expand All @@ -29,7 +32,15 @@ def make_app(env: Optional[str] = None) -> Application:
"""
flask_environment = os.environ.get('FLASK_ENV', '')
if flask_environment == 'production':
configure_logging()
sentry_dsn = os.getenv('SENTRY_DSN')
if sentry_dsn:
version = get_version()
sentry_sdk.init(
dsn=sentry_dsn, release=f'bip@{version}',
integrations=[FlaskIntegration()],
)
else:
configure_logging()
extra = {}
instance_path = os.environ.get('INSTANCE_PATH')
if instance_path:
Expand Down

0 comments on commit 7cfa5d6

Please sign in to comment.