實時事件日誌記錄和聚合的平臺——Sentry

  不管你用什麼編程語言,都會面臨如何處理錯誤日誌的問題。很多程序員對錯誤日誌放任自流,直到出現故障了才追悔莫及,如果問小編怎麼辦,我會給你推薦 Sentry

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

什麼是Sentry?

   無論測試如何完善的程序,bug總是免不了會存在的,有些bug不是每次都會出現,測試時運行好好的代碼可能在某個用戶使用時就歇菜了,可是當程序在用戶面前崩潰時,你是看不到錯誤的,當然你會說:“Hey, 我有記日誌呢?”

    但是說實話,程序每天每時都在產生大量的日誌,而且分佈在各個服務器上,並且如果你有多個服務在維護的話,日誌的數量之多你是看不過來的吧。等到某天某個用戶實在受不了了,打電話來咆哮的時候,你再去找日誌你又會發現日誌其實沒什麼用:缺少上下文,不知道用戶什麼操作導致的異常,異常太多(從不看日誌的緣故)不知如何下手 等等。

   Sentry就是來幫我們解決這個問題的,它是一款精緻的Django應用,目的在於幫助開發人員從散落在多個不同服務器上毫無頭緒的日誌文件裏發掘活躍的異常,繼而找到潛在的“臭蟲”。

   Sentry是一個日誌平臺, 它分爲客戶端和服務端,客戶端(目前客戶端有Python, PHP,C#, Ruby等多種語言)就嵌入在你的應用程序中間,程序出現異常就向服務端發送消息,服務端將消息記錄到數據庫中並提供一個web節目方便查看。Sentry由python編寫,源碼開放,性能卓越,易於擴展,目前著名的用戶有Disqus, Path, mozilla, Pinterest等。

爲什麼使用Sentry?

多項目,多用戶

界面友好

可以配置異常出發規則,例如發送郵件

支持主流語言接口

 Sentry的權限介紹

   Sentry目前用戶類型有四種: 超級管理員 管理員普通用戶System agents. 超級用戶只能通過命令行來創建,其他用戶可以自己註冊或由其他用戶邀請註冊加入,然後由超級管理員或管理員分配項目權限。爲了更好支持團隊協助以及信息安全,

   所謂Team就是一個團隊,一些用戶組織在一起對某些項目有操作權限的組織。一個項目只能屬於一個Team, 一個用戶卻可以屬於多個Team, 並可在不同Team中扮演不同角色, 如用戶A在Team X是管理員而在Team Y中是System agents. Sentry對用戶角色的指定只能到Team級別,不能到Project級別, 所以將某個用戶加入到某個Team之後,這個用戶就對所有所有屬於這個Team下所有project有了相同的權限。

   Sentry的如此設計雖說不夠細緻,但我們使用時只要遵照現實世界的情況來劃分Teamproject即可。比如我們目前有一個團隊,這個團隊負責兩個項目,我們在Sentry上就建立一個Team A和屬於這個Team的project a和project b. 當在使用過程中我們發現project b的等級較高,不能讓所有人都可以看到信息,我們可以建立一個虛擬Team B,然後將project b的team 改Team B, 然後再給Team B添加用戶和相應權限即可. Sentry對team的owner, project的owner, project屬於的team 等等實體關係的修改都極爲簡單,沒有副作用。

  • 下面簡單介紹一下Sentry中各個類型用戶的權限:

超級管理員: 能創建各種用戶, team和project只能由超級管理員創建。項目的一些設置比如改變Owner, 數據公開可見與否(設爲public的數據可以通過url不登陸也能查看)以及客戶端domain限制的設定。另外還有管理項目的api key(客戶端只有得到此api key才能向Sentry發送消息)的權限等等。

管理員: 能創建用戶, team和項目設定中除改變owner之外的權限, 可以對項目中具體數據做resolve, bookmark, public/public和remove操作。

普通用戶: 無Team界面,只能對項目中具體數據做resolve, bookmark, public/unpublic和remove操作。

System agents: 無Team界面,只能對項目中具體數據做bookmark, unpublic和remove操作。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

  • Sentry的權限和實體設置基本可以滿足現實的需求:

1、如果一個團隊負責多個項目,可以通過一個Team多個項目方式來實現。

2、如果一個人參與多個團隊, 可以將該用戶添加到多個team中去。

3、一個team或project設置相應的Owner,則可以由此人負責該team或project內的活動。(唯一的缺點是team owner不可以創建project)

4、一個team或項目的分工應該是有一個管理者來設定項目的基本設定,管理api key, 並將api key分發給項目開發者,項目開發者以普通用戶身份登陸Sentry查看錯誤和resolve錯誤, 運維以System agents身份登陸Sentry查看系統運行狀態。

   你是否已經開始找Sentry的下載資源了?別急,在好雨·雲市就可以找到Sentry,而且不僅免費試用,還可以無需安裝一鍵使用,你還在等什麼?掃描下方二維碼或點擊“閱讀全文”馬上使用Sentry吧!

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章