原创 Prometheus部署(一)

Prometheus是最初在SoundCloud上構建的開源系統監視和警報工具包。自2012年成立以來,許多公司和組織都採用了Prometheus,該項目擁有非常活躍的開發人員和用戶社區。Prometheus 於2016年加入了

原创 Grafana部署

grafana 是一款採用 go 語言編寫的開源應用,主要用於大規模指標數據的可視化展現,是網絡架構和應用分析中最流行的時序數據展示工具,目前已經支持絕大部分常用的時序數據庫。 官網:https://grafana.com/

原创 26. 讀寫json數據

在web應用中常用JSON(JavaScript Object Notation)格式傳輸數據,例如: 利用http://httpbin.org/API對發送的http請求進行觀測。 爬蟲程序利用Spalsh渲染引擎渲染頁

原创 25. 讀寫csv數據

例如,我們編寫爬蟲從豆瓣網爬取了一些書籍的信息,以csv數據格式存儲: 書名, 作者, 出版社, 價格 精通scrapy網絡爬蟲, 劉碩, 清華大學出版社, 46.00 算法導論, Charles E.Leiserson, 人民郵

原创 23. 訪問文件的狀態

要求: 在某些項目中,我們需要獲得文件狀態,例如: 文件的類型(普通文件、目錄、符號鏈接、設備文件…)。 文件的訪問權限。 文件的最後的訪問/修改/節點狀態更改時間(即atime/mtime/ctime)。 普通文

原创 24. 使用臨時文件

例如,在某項目中,我們從傳感器採集數據,每收集到1G數據後,做數據分析,最終只保存分析結果。這樣很大的臨時文件如果常駐內存,將消耗大量內存資源。 要求:使用臨時文件存儲這些臨時數據(外部存儲)。臨時文件不用命名,且關閉後會自動被刪

原创 27. 解析簡單的xml文檔

xml是極爲常用的標記性語言,可以提供統一的方法來描述應用程序的結構化數據,例如demo.xml: <?xml version="1.0"?> <data> <country name="Liechtenstein">

原创 10. Kubernetes的日誌與監控

Kubernetes的日誌處理 日誌對比: 傳統服務的日誌: 固定機器、固定目錄 不受重啓影響 不用關注stdout、stderr k8s服務的日誌: 節點不固定

原创 45. 爲被裝飾函數保存元數據

在函數對象中保存着一些函數的元數據,例如: __name__ 函數的名字 __doc__ 函數文檔字符串 __module__ 函數所屬模塊名 __dict__ 屬性字典 __

原创 28. 構建xml文檔

有時,我們需要將其他格式數據轉換爲xml,例如把書籍信息csv文件轉換成xml: books.csv: 書名, 作者, 出版社, 價格 精通scrapy網絡爬蟲, 劉碩, 清華大學出版社, 46.00 ..

原创 42. 使用線程池

前面實現了一個多線程的web視頻監控服務器,由於服務器資源有限(CPU,內存,帶寬),需要對請求連接數(線程數)做限制,避免因資源耗盡而癱瘓。 要求:使用線程池,替代原來的每次請求創建線程。 解決方案: 使用標準庫彙總concur

原创 48. 在類中定義裝飾器

要求: 實現一個能將函數調用信息記錄到日誌的裝飾器: 把每次函數的調用時間、執行時間、調用次數寫入日誌; 可以對被裝飾函數分組,調用信息記錄到不同日誌; 動態修改參數,比如日誌格式; 動態打開關閉日誌輸出功能。 @call_i

原创 32. 讓對象支持上下文管理

例如,實現了一個telnet客戶端的類TelnetClient,調用實例的connect()、login()、interact()方法啓動客戶端與服務器交互,交互完畢後調用cleanup()方法關閉已連接的socket,以及將操作

原创 46. 定義帶參數的裝飾器

要求:實現一個裝飾器,它用來檢查被裝飾函數的參數類型。裝飾器可以通過參數指明函數參數的類型,調用時如果檢測出類型不匹配則拋出異常。 @type_assert(str, int, int) def f(a, b, c): .

原创 k8s部署redis cluster集羣

k8s以StatefulSet方式部署redis cluster集羣: 1. 部署nfs 2. 創建pv 3. 部署redis 4. 初始化redis集羣 主機說明: 系統 ip 角色 cpu 內存 hostn