Sentry錯(cuò)誤日志監(jiān)控使用方法解析
無(wú)論作為新手還是老手程序員在程序的開發(fā)過(guò)程中,代碼運(yùn)行時(shí)難免會(huì)拋出異常,而且項(xiàng)目在部署到測(cè)試、生產(chǎn)環(huán)境后,我們便不可能像在開發(fā)時(shí)那樣容易的及時(shí)發(fā)現(xiàn)處理錯(cuò)誤了。一般我們都是在錯(cuò)誤發(fā)生一段時(shí)間后,錯(cuò)誤信息才會(huì)傳遞到開發(fā)人員那里,然后一頓操作查看程序運(yùn)行的日志,就熟練使用awk和grep去分析日志,但是往往我們會(huì)因?yàn)槿罩局腥鄙偕舷挛年P(guān)系,導(dǎo)致很難分析真正的錯(cuò)誤是什么。
Sentry由此應(yīng)運(yùn)而生成為了解決這個(gè)問(wèn)題的一個(gè)很好的工具,設(shè)計(jì)了諸多特性幫助開發(fā)者更快、更方面、更直觀的監(jiān)控錯(cuò)誤信息。
關(guān)于日志管理
隨著不斷的開發(fā)應(yīng)用變得越來(lái)越復(fù)雜,輸出日志五花八門,有print的,有寫stdout的,有寫stderr的, 有寫logging的,也有自定義xxx.log的。那么這將導(dǎo)致平臺(tái)應(yīng)用日志分布在各個(gè)地方,無(wú)法統(tǒng)一管理。而且可能用的還不止一種開發(fā)語(yǔ)言,想規(guī)范和統(tǒng)一日志不是一件容易的事。所以這也是我們?yōu)槭裁词褂肧entry的原因,
Sentry的優(yōu)點(diǎn)
- Sentry是一個(gè)集中式日志管理系統(tǒng)。它具備以下優(yōu)點(diǎn):
- 多項(xiàng)目,多用戶
- 界面友好
- 可以配置異常觸發(fā)規(guī)則,例如監(jiān)控到程序出現(xiàn)異常后發(fā)送郵件
- 支持主流語(yǔ)言接口,本篇博客值介紹在python中的應(yīng)用,其他語(yǔ)言自行閱讀官方文檔
Sentry目前支持的語(yǔ)言眾多,下面展示一部分:

安裝和使用
Sentry支持部署到本地服務(wù)器,本博文不做過(guò)多介紹,可參照官方文檔進(jìn)行部署:
對(duì)于大所屬個(gè)人和小型企業(yè)推薦使用Sentry官方提供的云服務(wù),進(jìn)行快速搭建屬于自己的錯(cuò)誤日志監(jiān)控系統(tǒng),只需要去官網(wǎng)進(jìn)行注冊(cè)一個(gè)Sentry賬號(hào)即可
1、注冊(cè)新賬號(hào)

Sentry免費(fèi)版可用功能:
- 每月10k 錯(cuò)誤日志上限
- 支持所有平臺(tái)和語(yǔ)言,功能無(wú)縮水
- 無(wú)限項(xiàng)目數(shù)量,僅單用戶訪問(wèn),不提供團(tuán)隊(duì)功能
如果想享受更多功能和服務(wù)可以看這里:付費(fèi)版價(jià)格策略
2、安裝SDK
Sentry通過(guò)在應(yīng)用程序運(yùn)行時(shí)中使用SDK來(lái)捕獲數(shù)據(jù)。這些是特定于平臺(tái)的,允許Sentry深入了解您的應(yīng)用程序的工作方式。
使用pip以下命令安裝Python SDK:
pip install --upgrade sentry-sdk==0.10.2
3、配置SDK
在Sentry中完成項(xiàng)目設(shè)置后,您將獲得一個(gè)我們稱之為DSN或數(shù)據(jù)源名稱的值。它看起來(lái)很像標(biāo)準(zhǔn)URL,但它實(shí)際上只是Sentry SDK所需配置的表示。它由幾部分組成,包括協(xié)議,公鑰,服務(wù)器地址和項(xiàng)目標(biāo)識(shí)符。
在應(yīng)用程序的設(shè)置中盡早導(dǎo)入并初始化Sentry SDK:
import sentry_sdk
sentry_sdk.init("https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的") # 注冊(cè)賬號(hào)后在文檔中自動(dòng)生成
4、捕捉你的第一個(gè)異常
您可以通過(guò)在應(yīng)用程序中插入除以零表達(dá)式來(lái)導(dǎo)致Python錯(cuò)誤:
division_by_zero = 1 / 0
在云監(jiān)控系統(tǒng)中顯示的錯(cuò)誤信息:

5、在django中的使用
安裝:sentry-sdk
pip install --upgrade 'sentry-sdk==0.10.2'
要配置SDK,請(qǐng)?jiān)趕ettings.py文件中使用Django集成對(duì)其進(jìn)行初始化:
import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration sentry_sdk.init( dsn="https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的", integrations=[DjangoIntegration()] )
您可以通過(guò)創(chuàng)建觸發(fā)錯(cuò)誤的路由輕松驗(yàn)證Sentry安裝:
from django.urls import path
def trigger_error(request):
division_by_zero = 1 / 0
urlpatterns = [
path('sentry-debug/', trigger_error),
# ...
]
訪問(wèn)此路由將觸發(fā)程序?qū)⒉东@的錯(cuò)誤。
一旦你完成上面的配置,以后系統(tǒng)發(fā)生的所有錯(cuò)誤異常都會(huì)被自動(dòng)記錄到Sentry,通過(guò)錯(cuò)誤日志監(jiān)控平臺(tái)就可以看到對(duì)應(yīng)的日常,并且一旦發(fā)生異常會(huì)發(fā)送郵件到你的郵箱,同樣可以看到異常的錯(cuò)誤描述信息,更多詳細(xì)使用教程你請(qǐng)參照官網(wǎng)文檔。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法
今天小編就為大家分享一篇Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python實(shí)現(xiàn)AdaBoost算法的示例
這篇文章主要介紹了python實(shí)現(xiàn)AdaBoost算法的示例,幫助大家更好的理解和了解機(jī)器學(xué)習(xí)算法,感興趣的朋友可以了解下2020-10-10
PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn)
這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python實(shí)現(xiàn)創(chuàng)建模塊的方法詳解
導(dǎo)入一個(gè)模塊,我們一般都會(huì)使用?import?關(guān)鍵字,但有些場(chǎng)景下?import?難以滿足我們的需要。所以除了?import?之外還有很多其它導(dǎo)入模塊的方式,下面就來(lái)介紹一下2022-07-07
python使用mitmproxy抓取瀏覽器請(qǐng)求的方法
今天小編就為大家分享一篇python使用mitmproxy抓取瀏覽器請(qǐng)求的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Flask中jinja2的繼承實(shí)現(xiàn)方法及實(shí)例
在本篇文章里小編給大家分享的是一篇關(guān)于Flask中jinja2的繼承實(shí)現(xiàn)方法及實(shí)例,有興趣的朋友們可以學(xué)習(xí)下。2021-03-03
python爬蟲_自動(dòng)獲取seebug的poc實(shí)例
下面小編就為大家?guī)?lái)一篇python爬蟲_自動(dòng)獲取seebug的poc實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
在pycharm中無(wú)法import所安裝的庫(kù)解決方案
這篇文章主要介紹了在pycharm中無(wú)法import所安裝的庫(kù)解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
用Python設(shè)計(jì)一個(gè)經(jīng)典小游戲
本篇文章主要介紹如何用Python設(shè)計(jì)一個(gè)經(jīng)典小游戲:猜大小。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05

