Prometheus操作指南 -- http://www.mianshigee.com/tutorial/prometheus-book/readme.md
prometheus的數據類型介紹 -- https://blog.csdn.net/polo2044/article/details/83277299
簡介
Prometheus將所有采集到的樣本數據以時間序列(time-series)的方式保存在內存數據庫中,並定時保存在硬盤上。時間序列中的每一個樣本由以下三部分組成。
- 指標(metric): metric name和描述當前樣本特征的labelsets組成,參考格式如
{ - 時間截(timestamp):一個精確到毫秒的時間截;
- 樣本值(value):一個float64的浮點類型數據表示當前的樣本值。
特點
- 多維數據模型,包含key/value標識標簽的時間序列數據;
- PromQL,一種靈活的查詢語言 ,內置的函數可以讓我們快速運算得到我們想要的結果;
- 不依賴分布式存儲,默認是本地存儲,也可以選擇遠程讀寫;
- 通過http請求拉取(pull)exporter數據;
- 也可以通過網關(gateway)推送(push)數據;
- 配置可以通過服務發現或靜態配置發現監控目標;
- 多種圖形和儀表板支持模式,特別是grafana的支持,讓我們可以快速完成好看的圖表。
四種指標類型
- counters
計數器,從0開始累積,理想情況永遠的增長趨勢。比如每天用戶訪問量,從1 一直累加到10000,最多某分鍾保持不變。(當然 這個是分時間段的,在第二天又是從1開始。可以通過數學計算強制填坑)
- gauges
最簡單的度量指標,只有一個簡單的返回值(瞬時狀態)。衡量隊列中的任務個數。當監控硬盤的容量、內存的使用量。隨時間的推移,不斷的、沒有規則變化的數據。特點:沒有規律、采集回來多少就是多少。
- Histograms
比例性估算數值,統計數據的分布情況,代表的是近似的百分比估算數值。比如http請求中的響應時間,代表依次http請求中的總共花費時間。這個數據一般在nginx訪問日志中會存儲這個數值。如果我們想監控用戶的訪問時間,結果會發現這類數據會分為幾個區段,基本符合正態分布圖。通過這種圖,就可以針對特別慢的用戶,進行排查原因,或者過長的時間進行報警。或者一天時間中,某幾分鍾因為系統的原因,訪問時間變的特別慢,我們想通過監控對這段時間出現問題的時候,及時報警出來。histogram類型會分別統計出全部用戶的響應時間的各個區段的個數,可以很輕松的知道,當前我們系統中,處於正常狀態的用戶,有多少百分比用戶。
Prometheus表達式語言數據類型
1、瞬時向量(Instant vector) 一組時間序列,每個時間序列包含單個樣本,它們共享相同的時間戳。也就是說,表達式的返回值中只會包含該時間序列中的最新的一個樣本值。而相應的這樣的表達式稱之為瞬時向量表達式。
2、區間向量(Range vector) - 一組時間序列,每個時間序列包含一段時間范圍內的樣本數據。
3、標量(Scalar) - 一個浮點型的數據值。
4、字符串(String) - 一個簡單的字符串值。