監(jiān)控簡介
監(jiān)視工具捕獲,分析和顯示W(wǎng)eb應(yīng)用程序執(zhí)行信息青抛。每個應(yīng)用程序在Web堆棧的所有層都可能出現(xiàn)問題旗闽。監(jiān)控工具通過展示幫助開發(fā)人員和運營團(tuán)隊響應(yīng)并修復(fù)問題。
捕獲和分析有關(guān)生產(chǎn)環(huán)境的數(shù)據(jù)對于主動處理Web應(yīng)用程序的穩(wěn)定性蜜另,性能和錯誤至關(guān)重要适室。
監(jiān)視和日志記錄的目的非常相似,它們有助于診斷應(yīng)用程序的問題并幫助調(diào)試蚕钦。主要差異為日志基于事件觸發(fā)亭病,而監(jiān)視是被動的背景數(shù)據(jù)集合。
例如發(fā)生錯誤時嘶居,通過異常處理程序中的代碼顯式記錄該事件罪帖。同時,監(jiān)視代理程序?qū)Υa進(jìn)行檢測邮屁,并且不僅收集有關(guān)已記錄異常的數(shù)據(jù)整袁,還收集有關(guān)函數(shù)和方法性能的數(shù)據(jù)。
操作系統(tǒng)和網(wǎng)絡(luò)的監(jiān)控關(guān)注: CPU佑吝、內(nèi)存和磁盤利用率坐昙,網(wǎng)絡(luò)帶寬和延遲
應(yīng)用程序級別監(jiān)視包含幾個方面。 基于應(yīng)用程序是重讀芋忿,重寫還是受到快速波動的影響而有所不同炸客。涉及應(yīng)用程序警告和錯誤(500級HTTP錯誤)疾棵、應(yīng)用代碼性能、模板渲染時間痹仙、瀏覽器渲染應(yīng)用程序的時間是尔、數(shù)據(jù)庫查詢性能等。
開源監(jiān)控項目
錯誤跟蹤
最初只是一個Python監(jiān)控項目开仰,但現(xiàn)在可以用于任何編程語言拟枚。
度量
是一個node.js網(wǎng)絡(luò)守護(hù)程序,它監(jiān)聽指標(biāo)并聚合它們以便轉(zhuǎn)移到另一服務(wù)(如Graphite)众弓。
存儲時間序列數(shù)據(jù)恩溅,并通過Django Web應(yīng)用程序在圖形中顯示它們。
是一個用Ruby編寫的開源監(jiān)控框架谓娃,但適用于任何編程語言Web應(yīng)用程序脚乡。
Vimeo的Graph Explorer是一個基于Graphite的儀表板,具有附加功能和平滑的設(shè)計傻粘。
基于客戶端插件的監(jiān)控系統(tǒng)每窖,可以將監(jiān)控流量發(fā)送到Munin節(jié)點,在那里可以分析和可視化數(shù)據(jù)弦悉。請注意窒典,此項目是用Perl編寫的,因此必須在收集數(shù)據(jù)的節(jié)點上安裝Perl 5稽莉。
用戶監(jiān)控
測量來自最終用戶瀏覽器的Web應(yīng)用程序的性能瀑志,并將該數(shù)據(jù)發(fā)送回服務(wù)器以進(jìn)行收集。
本文最新版本地址 https://china-testing.github.io/python_monitor.html
第三方監(jiān)控服務(wù)
第三方監(jiān)控軟件沒有部署和操作軟件的負(fù)擔(dān)污秆。但是劈猪,托管監(jiān)控成本不低,應(yīng)用程序數(shù)據(jù)有危險良拼,因此這些服務(wù)并不適合每個項目战得。
錯誤跟蹤
用于服務(wù)器端和客戶端,用于捕獲和報告異常庸推。 pyrollbar代碼庫為Python Web應(yīng)用程序提供了快速集成常侦。還有一些常見Web框架的具體說明,例如Django和Pyramid贬媒。
是開源工具的托管版本聋亡,用于貨幣化并支持二次開發(fā)。
應(yīng)用程序性能監(jiān)控(APM)
提供應(yīng)用程序和數(shù)據(jù)庫監(jiān)控以及用于捕獲和分析堆棧中其他devleoper工具(如Twilio)的數(shù)據(jù)的插件际乘。
專為django而建坡倔。 Opbeat將性能指標(biāo),發(fā)布跟蹤和錯誤記錄結(jié)合到一個簡單的服務(wù)中。
監(jiān)控Django和Flask應(yīng)用程序的性能罪塔,自動檢測視圖投蝉,SQL查詢,模板等征堪。
狀態(tài)頁面
Web應(yīng)用程序的正常運行時間和響應(yīng)指標(biāo)可視化墓拜。
簡單的設(shè)置狀態(tài)頁面,用于監(jiān)控應(yīng)用程序的運行時間请契。
事件管理
如果應(yīng)用程序存在穩(wěn)定性,性能或正常運行時間問題夏醉,PagerDuty會向指定人員或組發(fā)出警報爽锥。
監(jiān)控資源
How to Add Hosted Monitoring to Flask Web Applications及[How to Monitor Bottle Web Applications]
(https://www.fullstackpython.com/blog/monitor-python-web-applications.html)系列文章,介紹如何將托管監(jiān)控添加到主要的Python Web框架應(yīng)用程序畔柔。
Effortless Monitoring with collectd, Graphite, and Docker
Practical Guide to StatsD/Graphite Monitoring是一個詳細(xì)的指南氯夷,其中包含用于監(jiān)控基礎(chǔ)架構(gòu)的代碼示例。
"10 Things They Forgot to Monitor
描述了超出磁盤和內(nèi)存使用等標(biāo)準(zhǔn)靶擦。
四個Linux服務(wù)器監(jiān)控工具 Four Linux server monitoring tools
如何設(shè)計有用的監(jiān)控和圖形可視化 How to design useful monitoring and graphing visualizations
5 years of metrics and monitoring
是一個很好的演示腮考,突出了可視化。線圖通常不是最佳解決方案玄捕,而且它們被過度使用踩蔚。
Collector Highlight Series有一篇關(guān)于StatsD
的文章,解釋了如何安裝它以及它是如何工作的枚粘。
survey on monitoring tools有一些關(guān)于開發(fā)人員和運營人員在其環(huán)境中使用的數(shù)據(jù)和圖表馅闽。
Ryan Frantz寫了一篇關(guān)于Solving Monitoring
的好文章,其中新的定義是基于當(dāng)今復(fù)雜系統(tǒng)的監(jiān)控手段馍迄,以及該實踐應(yīng)如何發(fā)展福也。
監(jiān)控學(xué)習(xí)清單
查看下面的軟件即服務(wù)和開源監(jiān)控工具。第三方服務(wù)往往更容易設(shè)置和托管數(shù)據(jù)攀圈。開源項目為您提供了更多控制權(quán)暴凑,但您需要為監(jiān)控準(zhǔn)備其他服務(wù)器。
我的建議是在試用期內(nèi)安裝New Relic的免費選項赘来,以了解它如何與您的應(yīng)用配合使用现喳。它將使您對應(yīng)用程序級監(jiān)視工具的功能有所了解。
作為您的應(yīng)用程序比例撕捍,請查看如何使用Graphite設(shè)置其中一個開源監(jiān)視項目拿穴,例如StatsD。這兩個項目的組合將為您提供對您正在收集和可視化的系統(tǒng)指標(biāo)的細(xì)粒度控制忧风。
python監(jiān)控庫參考:https://github.com/china-testing/python-api-tesing#%E7%9B%91%E6%8E%A7
參考資料
- 討論 釘釘群21745728 qq群144081101 567351477
- 本文最新版本地址
- 本文涉及的python測試開發(fā)庫 謝謝點贊默色!
- 本文相關(guān)海量書籍下載
- Monitoring