1. 程式人生 > >SpringBoot+Logback+Sentry(日誌監控平臺)

SpringBoot+Logback+Sentry(日誌監控平臺)

相關地址:

官網:https://getsentry.com/welcome/

github:https://github.com/getsentry/sentry

安裝手冊:https://docs.getsentry.com/hosted/quickstart/

別人家的:http://blog.gaoyuan.xyz/2013/12/18/deploy-sentry-in-product/

Sentry介紹:

無論測試如何完善的程式,bug總是免不了會存在的,有些bug不是每次都會出現,測試時執行好好的程式碼可能在某個使用者使用時就歇菜了,可是當程式在使用者面前崩潰時,你是看不到錯誤的,當然你會說:”Hey, 我有記日誌呢”。 但是說實話,程式每天每時都在產生大量的日誌,而且分佈在各個伺服器上,並且如果你有多個服務在維護的話,日誌的數量之多你是看不過來的吧。等到某天某個使用者實在受不了了,打電話來咆哮的時候,你再去找日誌你又會發現日誌其實沒什麼用:缺少上下文,不知道使用者什麼操作導致的異常,異常太多(從不看日誌的緣故)不知如何下手 等等。

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

Sentry是一個日誌平臺, 它分為客戶端和服務端,客戶端(目前客戶端有Python, PHP,C#, Ruby等多種語言)就嵌入在你的應用程式中間,程式出現異常就向服務端傳送訊息,服務端將訊息記錄到資料庫中並提供一個web節目方便檢視。Sentry由python編寫,原始碼開放,效能卓越,易於擴充套件,目前著名的使用者有Disqus, Path, mozilla, Pinterest等。

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

Sentry 是一個錯誤記錄和聚合的平臺,只要看看它漂亮的介面就會喜歡上它:

Logback整合:


下面這段logback整合配置xml:



總結:

雖然從上面測試看起來,程式效率下降了大概1/4左右,但測試畢竟和實際應用有一些差距,實際執行的應用有更復雜的邏輯,更多的運算和更多的io操作,所以實際上sentry的影響會很小,而帶來的好處則很多,並且,Sentry是一個平臺級的服務,一旦構建好,所有應用都可以使用受益。

當然,Sentry和log不是相互重疊的東西,他們各有用處,不能把Sentry當做log來使用,大量的網路操作對應用程式來說還是會有影響的。而且有了Sentry後log還是需要的,Sentry在伺服器網路異常時會失效,並且業務邏輯的跟蹤等等也離不開log。

祝大家生活愉快,(*^__^*)