Django backend for GlitchTip https://glitchtip.com/

Georg Krause 3e7594494b feat: Execute Renovate to take care for dependencies 1 год назад
.vscode 055e638728 working on adding linting and isort on CI 2 лет назад
alerts 538e28754f Fix issue urls 2 лет назад
api_tokens 881588a5c5 increase token length to 64 #138 2 лет назад
assets 7b290b5349 HTML emails! 4 лет назад
bin daef26a318 Use upstream uWSGI and Celery env vars and (some) defaults 2 лет назад
difs f8d8c83b84 Only run dif process task when dif files exist for issue's project 2 лет назад
djstripe_ext 95a939dee4 Fix org name in near quota subject line 2 лет назад
environments 315af98567 Experiment with file uploads, related to https://gitlab.com/glitchtip/glitchtip/-/issues/13 3 лет назад
events bd530907b7 Fixes #167 update transaction group tags when necessary 2 лет назад
files 0066cd8dd3 Clean up old files task 2 лет назад
glitchtip 35d10946c4 Replace loop.run_until_complete with asyncio.run to fix deprecation 2 лет назад
issues c6d8a9049c Speed up issue search index update 2 лет назад
monitoring 13dd870b9d Add prometheus to docker compose for testing 2 лет назад
observability d0858dee54 Implemented observability API 2 лет назад
organizations_ext 92965385f5 Upgrade to Django 4.1 2 лет назад
performance bd530907b7 Fixes #167 update transaction group tags when necessary 2 лет назад
projects e68882984c Fixes #120 2 лет назад
releases 76e698881e Expose additional files endpoint for org release files 2 лет назад
sentry 89085a15ab temp thing, prob trash 2 лет назад
teams e68882984c Fixes #120 2 лет назад
templates 36896f77ea Resolve "Style 404 page" 3 лет назад
test_api b6eecacb40 Adds monitor to data seeding for integration testing 2 лет назад
user_reports 132991a37c Use DB default for search index instead of english 2 лет назад
users 81d2fac461 Add options to User model 2 лет назад
.dockerignore 290e8a6dfa Don't include test data in docker images 2 лет назад
.gitignore 38d1a14396 Manually merge https://gitlab.com/glitchtip/glitchtip-backend/-/merge_requests/159 2 лет назад
.gitlab-ci.yml 3e7594494b feat: Execute Renovate to take care for dependencies 1 год назад
.pylintrc 055e638728 working on adding linting and isort on CI 2 лет назад
CONTRIBUTING.md 3f52adf5bc Note about contributing legacy sdk client support 2 лет назад
Dockerfile 6bb2cf6b8c Adjust build steps for ci 2 лет назад
LICENSE 5718e945ba Add license 4 лет назад
NOTICE.md 8b3a243b24 Add environment tag creation 3 лет назад
README.md 13dd870b9d Add prometheus to docker compose for testing 2 лет назад
docker-compose.locust.yml 199dbcc672 Update docker compose version 4 лет назад
docker-compose.metrics.yml 13dd870b9d Add prometheus to docker compose for testing 2 лет назад
docker-compose.yml 13dd870b9d Add prometheus to docker compose for testing 2 лет назад
locustfile.py ef2b80bcdc Move events model to own app 3 лет назад
manage.py 5e245f6ac0 initial commit 4 лет назад
mypy.ini 04ed0813c0 Start on webhook ideas 3 лет назад
poetry.lock 81d2fac461 Add options to User model 2 лет назад
pyproject.toml 0608d9c6fc Upgrade stripe instead, only issue is with version 4.0.1 but fixed in 2 лет назад

README.md

Gitter

GlitchTip Backend

GlitchTip is an open source, Sentry API compatible error tracking platform. It is a partial fork/mostly re-implementation of Sentry's open source codebase before it went proprietary. Its goals are to be a modern, easy-to-develop error tracking platform that respects your freedom to use it any way you wish. Some differences include:

  • A modern development environment with Python 3 and Django 4.
  • Simplicity over features. We use Postgres to store error data. Our code base is a fraction of the size of Sentry and looks like a typical Django app. We leverage existing open source Django ecosystem apps whenever possible.
  • Respects your privacy. No massive JS bundles. No invasive tracking. No third party spying. Our marketing site runs the privacy-focused Plausible analytics. Self hosted GlitchTip will never report home. We will never know if you run it yourself.
  • Commitment to open source. We use open source tools like GitLab whenever possible. With our MIT license, you can use it for anything you'd like and even sell it. We believe in competition and hope you make GlitchTip even better.

Project status: Stable. Open an issue and say hello if you'd like to help. We are able to process basic error requests from the open source Sentry client tools. More features are on the way.

Developing

We use Docker for development. View our Contributing documentation if you'd like to help make GlitchTip better.

Run local dev environment

  1. Ensure docker and docker-compose are installed
  2. docker compose up
  3. docker compose run --rm web ./manage.py migrate

Run tests with docker-compose run --rm web ./manage.py test

Run HTTPS locally for testing FIDO2 keys

  1. cp docker-compose.yml docker-compose.override.yml
  2. Edit the override file and set command: ./manage.py runsslserver 0.0.0.0:8000
  3. Restart docker compose services

VS Code (Optional)

VS Code can do type checking and type inference. However, it requires setting up a virtual environment.

  1. Install Python 3 dependencies. For Ubuntu this is apt install python3-dev python3-venv
  2. Install poetry
  3. Create Python virtual environment python3 -m venv env
  4. Activate environment source env/bin/activate
  5. Install packages poetry install

Load testing

Locust is built into the dev dependencies. To run with Locust run docker compose -f docker-compose.yml -f docker-compose.locust.yml up

Now go to localhost:8089 to run the test.

Locust will not be installed to production docker images and cannot be run from them.

Observability metrics with Prometheus

  1. Edit monitoring/prometheus/prometheus.yml and set credentials to a GlitchTip auth token
  2. docker compose -f docker-compose.yml -f docker-compose.metrics.yml up

GCP Logging

In order to enable json logging, set the environment as follows::

DJANGO_LOGGING_HANDLER_CLASS=google.cloud.logging_v2.handlers.ContainerEngineHandler
UWSGI_LOG_ENCODER='json {"severity":"info","timestamp":${unix},"message":"${msg}"}}'

Acknowledgements

  • Thank you to the Sentry team for their ongoing open source SDK work and formerly open source backend of which this project is based on.
  • We use element.io for internal chat and public gitter room
  • Plausible Analytics is used for analytics