Python 全棧開發 -- 監控篇

若是你已經玩轉了 Python 編程語言語法,確定想用這些知識,開發一款應用程序,它能夠是在網上,能夠炫耀或出售,那就須要全棧式開發 Python。具體如何建立,部署和運行生產 Python Web 應用程序,參考 Full Stack Python,本文主要介紹一點,監控。html

Python 全棧開發 -- 監控篇

爲何要監控?

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 開源監視工具,第三方服務每每更容易創建和託管數據爲您服務。開源項目給你更多的控制權,但你須要準備額外的服務器。瀏覽器

  • 建議使用第三方監控工具,看看它是如何監控你的應用程序。固然能夠本身測試不一樣第三方監測工具對你應用級的監控能力。服務器

參考:Full Stack Python

OneAPM 可以幫你查看 Python 應用程序的方方面面,不只可以監控終端的用戶體驗,還能監控服務器性能,同時還支持追蹤數據庫、第三方 API 和 Web 服務器的各類問題。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客 本文轉自 OneAPM 官方博客

相關文章
相關標籤/搜索