Sentry錯(cuò)誤日志監(jiān)控使用方法解析
無論作為新手還是老手程序員在程序的開發(fā)過程中,代碼運(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è)問題的一個(gè)很好的工具,設(shè)計(jì)了諸多特性幫助開發(fā)者更快、更方面、更直觀的監(jiān)控錯(cuò)誤信息。
關(guān)于日志管理
隨著不斷的開發(fā)應(yīng)用變得越來越復(fù)雜,輸出日志五花八門,有print的,有寫stdout的,有寫stderr的, 有寫logging的,也有自定義xxx.log的。那么這將導(dǎo)致平臺(tái)應(yīng)用日志分布在各個(gè)地方,無法統(tǒng)一管理。而且可能用的還不止一種開發(fā)語言,想規(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ā)送郵件
- 支持主流語言接口,本篇博客值介紹在python中的應(yīng)用,其他語言自行閱讀官方文檔
Sentry目前支持的語言眾多,下面展示一部分:
安裝和使用
Sentry支持部署到本地服務(wù)器,本博文不做過多介紹,可參照官方文檔進(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)和語言,功能無縮水
- 無限項(xiàng)目數(shù)量,僅單用戶訪問,不提供團(tuán)隊(duì)功能
如果想享受更多功能和服務(wù)可以看這里:付費(fèi)版價(jià)格策略
2、安裝SDK
Sentry通過在應(yīng)用程序運(yùn)行時(shí)中使用SDK來捕獲數(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ù)源名稱的值。它看起來很像標(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è)異常
您可以通過在應(yīng)用程序中插入除以零表達(dá)式來導(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()] )
您可以通過創(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), # ... ]
訪問此路由將觸發(fā)程序?qū)⒉东@的錯(cuò)誤。
一旦你完成上面的配置,以后系統(tǒng)發(fā)生的所有錯(cuò)誤異常都會(huì)被自動(dòng)記錄到Sentry,通過錯(cuò)誤日志監(jiān)控平臺(tái)就可以看到對(duì)應(yīng)的日常,并且一旦發(fā)生異常會(huì)發(fā)送郵件到你的郵箱,同樣可以看到異常的錯(cuò)誤描述信息,更多詳細(xì)使用教程你請(qǐng)參照官網(wǎng)文檔。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python創(chuàng)建exe文件的實(shí)現(xiàn)步驟
本文主要介紹了python創(chuàng)建exe文件的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09Python 實(shí)現(xiàn)黑客帝國中的字符雨的示例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)黑客帝國中的字符雨的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02淺談Pandas中map, applymap and apply的區(qū)別
下面小編就為大家分享一篇淺談Pandas中map, applymap and apply的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python數(shù)據(jù)可視化教程之Matplotlib實(shí)現(xiàn)各種圖表實(shí)例
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)可視化教程之利用Matplotlib實(shí)現(xiàn)各種圖表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2019-01-01Windows下python3安裝tkinter的問題及解決方法
這篇文章主要介紹了Windows下python3安裝tkinter問題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Python過濾函數(shù)filter()使用自定義函數(shù)過濾序列實(shí)例
這篇文章主要介紹了Python過濾函數(shù)filter()使用自定義函數(shù)過濾序列實(shí)例,配合自定義函數(shù)可以實(shí)現(xiàn)許多強(qiáng)大的功能,需要的朋友可以參考下2014-08-08