若是你已經玩轉了 Python 編程語言語法,確定想用這些知識,開發一款應用程序,它能夠是在網上,能夠炫耀或出售,那就須要全棧式開發 Python。具體如何建立,部署和運行生產 Python Web 應用程序,參考 Full Stack Python,本文主要介紹一點,監控。html
Web 應用程序在執行時,監控工具收集分析並顯示其相關信息,每一個有問題的應用程序都有網絡堆棧。經過監控工具提供的堆棧信息,開發和運營團隊可以響應並解決問題。python
收集和分析生產環境的數據在保持穩定性,維持高性能方面是十分重要的,尤爲對錯誤的 Web 應用程序進行優化頗有必要。git
監控和日誌都旨在幫助應用程序診斷問題,在調試過程當中他們的目的很是類似。惟一的差異是,日誌數據只會根據明確的事件而進行記錄,而監控數據則集合數據背景進行分析。github
例如,當錯誤發生時,該事件被記錄在日誌中。同時,監控應用的代碼還要收集數據,不只是異常 log,還包括函數的性能數據。web
其實,倆二者之間的區別也不是那麼明顯,畢竟解決問題不是隻有一條路徑。只要對 Web 生產應用程序有用都是能夠用的。數據庫
在操做系統和網絡堆棧方面有如下幾個重要的資源須要監控編程
CPU 使用率vim
內存利用率瀏覽器
持久性存儲消耗與空閒服務器
網絡帶寬和延遲
應用級監控包括如下幾個方面,不一樣應用程序因不一樣的讀寫程度,或受流量波動影響而須要不一樣的響應時間,有不一樣的資源佔用狀況。
應用程序的警告和錯誤(例如 500 HTTP 錯誤)
應用程序代碼的性能
模板渲染時間
瀏覽器爲應用程序所需的渲染時間
數據庫的查詢性能
statsd 監聽和彙總指標轉移到其餘的服務的 Node.js 的網絡守護進程,如到 Graphite。
Graphite 存儲時間序列數據,並經過一個 Django web 應用顯示圖形。
Bucky 測量來自最終用戶的瀏覽器 web 應用程序的性能,併發送該數據回服務器。
Sensu 是用 Ruby 編寫的開源監控框架,但適用於任何編程語言的 Web 應用程序。
Graph Explorer 是基於 Graphite 的儀表盤,添加了一些功能和亮眼設計。
PacketBeat Elasticsearch 容許開發人員搜索收集的數據並經過 Kibana 用戶界面的 Web 應用程序可視化事件。
Munin 是客戶端基於插件來監控系統發送監控流量到 Munin 節點,進行數據分析和可視化。注意,此項目是用 Perl 編寫的,因此須要在 Node 上安裝 Perl 5。
OneAPM 監控終端的用戶體驗,服務器性能,支持追蹤數據庫、第三方 API 和 Web 服務器的各類問題,打造 ITOA 一站式 IT 管理解決方案。
Status.io 專一於 Web 應用程序的正常運行時間和指標響應時間。
StatusPage.io 提供了只要簡單設置狀態頁面便可監控應用運行時間的方法。
Appdynamics 致力於應用程序性能管理和 IT 運營分析。專一於管理的整個雲計算環境應用的性能和可用性,以及數據中心內部可視化。
New Relic 用於獲取和分析堆棧有關的數據應用和數據庫監控以及插件。
CopperEgg 是監控服務器和基礎設施等較低級別的監控。在 DevOps 商店中由於改變生產環境可以將修改的結果即時反饋而受到歡迎。
PagerDuty 對於指定的我的或團隊在穩定性,性能,或運行時間有問題的應用程序進行報警。
App Enlight 提供了性能,異常和錯誤監控,目前針對 Python We應用程序。
回顧一下 SaaS 開源監視工具,第三方服務每每更容易創建和託管數據爲您服務。開源項目給你更多的控制權,但你須要準備額外的服務器。
建議使用第三方監控工具,看看它是如何監控你的應用程序。固然能夠本身測試不一樣第三方監測工具對你應用級的監控能力。
OneAPM 可以幫你查看 Python 應用程序的方方面面,不只可以監控終端的用戶體驗,還能監控服務器性能,同時還支持追蹤數據庫、第三方 API 和 Web 服務器的各類問題。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客。
本文轉自 OneAPM 官方博客