++++++++++++++++ 壹 ++++++++++++++++++、
Prometheus簡介
- 分布式監控系統。
- 同時也是時間序列數據庫。
- 完全開源
- 被很多雲廠商(架構)內置,在這些廠商(架構)中,可以簡單部署Prometheus,用來監控整個雲基礎架構設施。
- Prometheus主要用於對基礎設施的監控。包括服務器,數據庫,VPS,幾乎所有東西都可以通過Prometheus進行監控。
如前所述,Prometheus由各種不同的組件組成。從系統中提取監控指標,可以通過不同的方式做到:
- 通過應用程序給定監控項,對給定的公開URL上Prometheus兼容的指標。Prometheus將其定義為目標並加入監控系統。
- 通過使用雲廠商內置Prometheus程序,會定義好整個監控項和監控工具集擁。例如,可以 Linux機器監控模版(節點導出器),數據庫的模版(SQL導出器或MongoDB導出器),以及HTTP代理或者負載程序的模版(例如HAProxy導出器)等這些模版直接就可以加入監控並使用。
- 通過使用Pushgateway:應用程序或作業不會直接公開指標。某些應用程序要么沒有合適的監控模版(例如批處理作業),對他們選擇不能直接通過應用程序公開這些指標。如果我們忽略您可能使用Pushgateway的極少數情況,Prometheus是一個基於主動請求pull的監控系統。
Prometheus可以做什么
- 在業務層用作埋點系統 Prometheus支持各個主流開發語言(Go,java,python,ruby官方提供客戶端,其他語言有第三方開源客戶端)。
- 我們可以通過客戶端方面的對核心業務進行埋點。如下單流程、添加購物車流程。
- 在應用層用作應用監控系統 一些主流應用可以通過官方或第三方的導出器,來對這些應用做核心指標的收集。如redis,mysql。
- 在系統層用作系統監控 除了常用軟件, prometheus也有相關系統層和網絡層exporter,用以監控服務器或網絡。
- 集成其他的監控 prometheus還可以通過各種exporte,集成其他的監控系統,收集監控數據,如AWS CloudWatch,JMX,Pingdom等等。
不要用Prometheus做什么
prometheus也提供了Grok exporter等工具可以用來讀取日志,但是prometheus是監控系統,不是日志系統。應用的日志還是應該走ELK等工具棧。
grafana
prometheus一般配合grafana做前端展示
++++++++++++++++ 貳 ++++++++++++++++++
一、Pushgateway 簡介
Pushgateway 是 Prometheus 生態中一個重要工具,使用它的原因主要是:
- Prometheus 采用 pull 模式,可能由於不在一個子網或者防火牆原因,導致 Prometheus 無法直接拉取各個 target 數據。
- 在監控業務數據的時候,需要將不同數據匯總, 由 Prometheus 統一收集。
由於以上原因,不得不使用 pushgateway,但在使用之前,有必要了解一下它的一些弊端:
- 將多個節點數據匯總到 pushgateway, 如果 pushgateway 掛了,受影響比多個 target 大。
- Prometheus 拉取狀態
up
只針對 pushgateway, 無法做到對每個節點有效。 - Pushgateway 可以持久化推送給它的所有監控數據。
因此,即使你的監控已經下線,prometheus 還會拉取到舊的監控數據,需要手動清理 pushgateway 不要的數據。
++++++++++++++++ 叄 ++++++++++++++++++
埋點
摘自:程序員雜貨鋪 https://blog.csdn.net/Zbylant
所謂“埋點”,是數據采集領域(尤其是用戶行為數據采集領域)的術語。指的是針對特定用戶行為或事件進行捕獲、處理和發送的相關技術及其實施過程。 埋點的技術實質,是先監聽軟件應用運行過程中的事件,當需要關注的事件發生時進行判斷和捕獲。
摘自:https://zhuanlan.zhihu.com/p/25195217
所謂埋點就是在應用中特定的流程收集一些信息,用來跟蹤應用使用的狀況,后續用來進一步優化產品或是提供運營的數據支撐,包括: 1、訪問(Visits) 2、訪客(Visitor) 3、停留時間(Time On Site) 4、頁面查看(Page Views,又稱為頁面瀏覽) 5、跳出率(Bounce Rate,又可稱為蹦失率) 這樣的信息收集可以大致分為兩種: 1、頁面統計(track this virtual page view) 2、統計操作行為(track this button by an event)
意義何在?
-
流量監測(在線情況分析、按時段分析、按來源分析);
-
構建行為路徑, 通過對處理后的信息進行關聯,獲取用戶的整條行為鏈路;
-
通過對埋點數據的處理、分析、建模,可以挖掘用戶的喜好、需求,判斷產品的效果和未來走向;
-
監控應用運行狀態,提供問題跟蹤定位的數據支持;
-
為營銷策略提供數據支持;
-
實施 AB Testing;
-
作為數據平台中,數據采集的一個不可缺少的環節;
埋點的技術難點
現在的業務技術架構都不僅僅是單獨的一種技術方案能解決的。現在只要是做互聯網的公司,其業務系統都會包含如下系統模塊:
-
大前端。這里包含 WEB、HTML5, App(IOS、Android、Hybrid形式)
-
后端應用系統
-
服務器系統