Sentry錯誤日志監控你會用了嗎?


無論作為新手還是老手程序員在程序的開發過程中,代碼運行時難免會拋出異常,而且項目在部署到測試、生產環境后,我們便不可能像在開發時那樣容易的及時發現處理錯誤了。一般我們都是在錯誤發生一段時間后,錯誤信息才會傳遞到開發人員那里,然后一頓操作查看程序運行的日志,就熟練使用awk和grep去分析日志,但是往往我們會因為日志中缺少上下文關系,導致很難分析真正的錯誤是什么。

Sentry由此應運而生成為了解決這個問題的一個很好的工具,設計了諸多特性幫助開發者更快、更方面、更直觀的監控錯誤信息。

關於日志管理

隨着不斷的開發應用變得越來越復雜,輸出日志五花八門,有print的,有寫stdout的,有寫stderr的, 有寫logging的,也有自定義xxx.log的。那么這將導致平台應用日志分布在各個地方,無法統一管理。而且可能用的還不止一種開發語言,想規范和統一日志不是一件容易的事。所以這也是我們為什么使用Sentry的原因,

Sentry的優點

Sentry是一個集中式日志管理系統。它具備以下優點:

  1. 多項目,多用戶
  2. 界面友好
  3. 可以配置異常觸發規則,例如監控到程序出現異常后發送郵件
  4. 支持主流語言接口,本篇博客值介紹在python中的應用,其他語言自行閱讀官方文檔

Sentry目前支持的語言眾多,下面展示一部分:

安裝和使用

Sentry支持部署到本地服務器,本博文不做過多介紹,可參照官方文檔進行部署:

本地部署官方文檔

對於大所屬個人和小型企業推薦使用Sentry官方提供的雲服務,進行快速搭建屬於自己的錯誤日志監控系統,只需要去官網進行注冊一個Sentry賬號即可

1、注冊新賬號

官網地址

注冊新賬號地址

Sentry免費版可用功能:

  1. 每月10k 錯誤日志上限
  2. 支持所有平台和語言,功能無縮水
  3. 無限項目數量,僅單用戶訪問,不提供團隊功能

如果想享受更多功能和服務可以看這里:付費版價格策略

2、安裝SDK

Sentry通過在應用程序運行時中使用SDK來捕獲數據。這些是特定於平台的,允許Sentry深入了解您的應用程序的工作方式。

使用pip以下命令安裝Python SDK 

pip install --upgrade sentry-sdk==0.10.2

3、配置SDK

在Sentry中完成項目設置后,您將獲得一個我們稱之為DSN數據源名稱的值它看起來很像標准URL,但它實際上只是Sentry SDK所需配置的表示。它由幾部分組成,包括協議,公鑰,服務器地址和項目標識符。

在應用程序的設置中盡早導入並初始化Sentry SDK:

import sentry_sdk
sentry_sdk.init("https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的")  # 注冊賬號后在文檔中自動生成

4、捕捉你的第一個異常

您可以通過在應用程序中插入除以零表達式來導致Python錯誤:

division_by_zero = 1 / 0

在雲監控系統中顯示的錯誤信息:

5、在django中的使用

安裝:sentry-sdk

pip install --upgrade 'sentry-sdk==0.10.2'

要配置SDK,請在settings.py文件中使用Django集成對其進行初始化

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn="https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的",
    integrations=[DjangoIntegration()]
)

您可以通過創建觸發錯誤的路由輕松驗證Sentry安裝:

from django.urls import path

def trigger_error(request):
    division_by_zero = 1 / 0

urlpatterns = [
    path('sentry-debug/', trigger_error),
    # ...
]

訪問此路由將觸發程序將捕獲的錯誤。

一旦你完成上面的配置,以后系統發生的所有錯誤異常都會被自動記錄到Sentry,通過錯誤日志監控平台就可以看到對應的日常,並且一旦發生異常會發送郵件到你的郵箱,同樣可以看到異常的錯誤描述信息,更多詳細使用教程你請參照官網文檔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM