Django-Raven
Sentry支持主流语言与框架,在Python上的客户端叫做Raven,她支持Djano与Flask,也支持与WSGI兼容的应用。Raven支持1.4以上的Django版本。
DSN(Data Source Name)
想要使用Sentry,先新建项目,每个项目都具有一个PROJECT_ID与用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。 DSN格式为:
1
|
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
|
安装django-raven
使用pip安装
1
|
pip install raven --upgrade
|
配置
添加app:raven.contrib.django.raven_compat
1
2
3
|
INSTALLED_APPS = (
'raven.contrib.django.raven_compat',
)
|
这个是通过在Django中增加了钩子函数来实现错误捕捉的
在settings中需增加RAVEN_CONFIG
这个变量
1
2
3
4
5
6
7
8
9
|
import os
import raven
RAVEN_CONFIG = {
'dsn': 'http://47de9d4ae76c41c995c33c49d9d36e8c:7e9c35e7ad024089995695f6d3cb20bd@192.168.1.41:9000/2',
# If you are using git, you can also automatically configure the
# release based on the git info.
'release': raven.fetch_git_sha(os.path.dirname(os.pardir)),
}
|
以上配置好后,便可以测试一下是否正常工作了。
1
|
python manage.py raven test
|
1
2
3
4
5
6
7
8
9
10
|
~/Documents/project(master*) » python3 project/manage.py raven test
Client configuration:
DEBUG Configuring Raven for host: <raven.conf.remote.RemoteConfig object at 0x7f24843dbb00>
base_url : http://192.168.1.41:9000
project : 8
public_key : 09b57f555e5041dea1a94bf410a0d7fd
secret_key : 2c79bbd6328946bbb0cba229587f7315
Sending a test message... DEBUG Sending message of length 3350 to http://192.168.1.41:9000/api/8/store/
Event ID was '4146e64156324f41aae698c5b7241bd6'
|
错误捕捉
在Django中有两种方式可以捕捉到运行错误。
包裹app,捕捉其运行时向外抛出的错误
1
2
|
from raven.contrib.django.raven_compat.models import client
client.captureException()
|
logging
另外一种是修改logging配置,增加sentry的handler对不同等级的异常进行处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'sentry': {
'level': 'ERROR', # To capture more than ERROR, change to WARNING, INFO, etc.
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
'tags': {'custom-tag': 'x'},
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
}
},
'loggers': {
'root': {
'level': 'WARNING',
'handlers': ['sentry'],
},
'django.db.backends': {
'level': 'ERROR',
'handlers': ['console'],
'propagate': False,
},
'raven': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
},
'sentry.errors': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
},
},
}
|
web钩子
使用钩子可以简单的集成到已有的系统中,只需要构造一个POST请求
使用curl提交一个请求
1
2
3
4
|
curl http://192.168.1.41:9000/api/hooks/release/builtin/8/d66807c921189783eb37158857e1fe5e4c77678db5332331430835afd3c58dd3/ \
-X POST \
-H 'Content-Type: application/json' \
-d '{"version": "abcdefg"}'
|
相关推荐
Sentry集成到ASGI框架的过程涉及以下几个关键知识点: 1. **安装Sentry SDK**: 首先,你需要在Python环境中安装Sentry的SDK,通常使用`sentry-sdk`库。通过运行`pip install sentry-sdk`即可完成安装。 2. **初始...
集成`django-sentry`到你的Django项目中,需要在`settings.py`中添加以下配置: ```python INSTALLED_APPS = [ # ... 'sentry', ] SENTRY_DSN = 'your_sentry_dsn' # 替换为你的Sentry服务器DSN LOGGING = { '...
通过集成Sentry,开发者可以实时查看到Django应用运行时的错误日志,包括异常类型、堆栈信息、触发错误的用户环境等,从而快速定位并修复问题。 在这个资源中,你将学习如何: 1. 配置Django项目,包括创建数据库...
**标题解析:** "Django-GUID" 是一个用于Django框架的库,它的主要功能是在每个请求的日志消息中插入一个唯一标识符(ID)...开发者可以通过阅读提供的源代码来深入理解其工作原理,并将其集成到自己的Django项目中。
2. **测试驱动开发**:利用Django的内置测试框架,编写单元测试和集成测试,确保代码质量。 3. **代码审查**:定期进行代码审查,发现并修复潜在问题,提升团队协作效率。 4. **持续集成/持续部署(CI/CD)**:结合...
Cookiecutter Django-Vue由Cookiecutter提供动力,灵感来自...与MailHog集成以进行本地电子邮件测试与Sentry集成以进行前端和后端错误日志记录与Google Analytics或Yandex Metrika集成以进行网络分析自动数据
Django Admin集成 PaaS与多个实例兼容 多集群监控器 Redis,Disque,IronMQ,SQS,MongoDB或ORM Rollbar和Sentry支持 要求 > = 2.2 经过测试:Python 3.7、3.8 Django 2.2.X和3.1.X 警告 从Python 3.7开始,async...
2. **数据库集成**:Django内置了ORM(对象关系映射),可以方便地操作SQL数据库,如SQLite、MySQL或PostgreSQL。通过定义模型类,可以快速创建数据库表并进行CRUD(创建、读取、更新、删除)操作。 3. **权限和...
对于生产环境,可以使用如`django-prometheus`这样的库来收集性能指标。它提供了一组度量,包括请求处理时间、数据库查询计数等,可以与Prometheus服务器集成,进而通过Grafana等可视化工具进行展示和警报设置。 ...
6. **集成其他服务**:可能能够无缝对接其他监控、报警系统,如Sentry、Logstash或ELK Stack(Elasticsearch、Logstash、Kibana),实现日志的实时监控和告警。 **使用方法** 安装Django-Extlog库,一般可以通过...
运维(Operations)是信息技术领域的一个重要部分,涉及到服务器监控、配置管理、故障排查、性能优化等多个方面。Python作为一种通用编程语言,因其简洁明了的语法和丰富的库支持,常用于开发自动化运维工具。Django...
4. **安装依赖**:在激活的虚拟环境中,使用pip安装Sentry及其所有依赖项,这通常会包括Django、RabbitMQ(或Kafka)等组件的Python客户端。 ``` pip install -r requirements.txt ``` 5. **配置mysentry**:...
13. **错误监控**:集成如Sentry或Airbrake这样的错误监控服务,以便及时发现并处理生产环境中的错误。 以上就是Django项目部署的主要流程。在"django-deployment-master"这个压缩包中,可能包含了一个示例项目的源...
可以使用Sentry等工具集成到Django,捕获和报告错误,同时设置阈值触发报警通知。 9. **自动化运维**:通过Django后台,可以编写脚本或API接口实现自动化运维任务,如定时备份、自动扩容、故障转移等,提高运维效率...
5. **持续集成**:`sentry-python`与Sentry服务的持续集成更加紧密,确保新功能和修复能够及时传达给用户。 **如何迁移** 如果你还在使用Raven-Python,建议尽快迁移到`sentry-python`以获得最新的特性和支持。...
Django拥有丰富的第三方库,如DRF(Django Rest Framework)用于构建RESTful API,Celery用于异步任务处理,以及Sentry用于错误追踪。了解如何选择和使用这些扩展,是成为Django专家的关键。 通过本教程,你将学习...
这个项目是关于Django框架的部署实践,主要目标是提供一个详细的示例,帮助开发者理解如何将Django应用程序成功部署到生产环境。Django是Python编程语言中的一个强大且流行的Web开发框架,它以其“快速开发、优雅...
在本文中,我们将深入探讨如何将一个基于Django框架的Python项目从开发环境推进到生产环境。Django是一个功能强大的、用于Web开发的高级Python框架,它提供了丰富的内置功能,使得创建复杂的Web应用程序变得容易。本...
5. Sentry集成:Raven的主要目标是与Sentry服务配合工作,Sentry是一个开源的错误跟踪系统,可实时监控并分析来自多个源的错误。 6. 客户端配置:通过简单的代码配置,可以设置服务器URL、项目ID和其他选项,以定制...
6. **监控与日志**:在Heroku上,可以使用Heroku的logging工具或集成如Sentry这样的错误追踪服务,以便监控应用的运行状态和错误。 通过这个教程,开发者可以学习到如何构建一个能够利用异步任务处理和高效缓存的...