天天看點

Prometheus(1)_PromQL樣本資料

Prometheus-樣本資料

1.time-series:

#TYPE node_cpu counter                               #開頭的每一行表示目前Node Exporter采集到的一個監控樣本    
   node_cpu{cpu="cpu0",mode="idle"} 362812.7890625    
   #node_cpu表明了目前名額的名稱;大括号中的标簽則反映了目前樣本的一些特征和次元;浮點數則是該監控樣本的具體值;
           

2.樣本sample=time-series:

Prometheus會将所有采集到的樣本資料以時間序列(time-series)的方式儲存在記憶體的TSDB(時序資料庫)中,并且定時儲存到硬碟上。time-series是按照時間戳和值的序列順序存放的,我們稱之為向量(vector). 每條time-series通過名額名稱(metrics name)和一組标簽集(labelset)命名.

time-series中的每一個點稱為一個樣本(sample),樣本由以下三部分組成:
名額(metric):metric name和描述目前樣本特征的labelsets;
時間戳(timestamp):一個精确到毫秒的時間戳;
樣本值(value): 一個folat64的浮點型資料表示目前樣本的值。
<--------------- metric ---------------------><-timestamp -><-value->
http_request_total{status="200", method="GET"}@1434417560938 => 94355
           

3.名額:metric

<metric name>{<label name>=<label value>, ...}
#标簽(label)反映了目前樣本的特征次元,通過這些次元Prometheus可以對樣本資料進行過濾,聚合等
           

Prometheus定義了4中不同的名額類型(metric type):

  • Counter(計數器):隻增不減,例如記錄事件發生的次數

    一般在定義Counter類型名額的名稱時推薦使用_total作為字尾 如http_requests_total,node_cpu都是Counter類型的監控名額。

  • Gauge(儀表盤):可增可減,名額側重于反應系統的目前狀态
    delta(cpu_temp_celsius{host="zeus"}[2h])  #計算CPU溫度在兩個小時内的差異
               
  • Histogram(直方圖)/Summary(摘要):主用用于統計和分析樣本的分布情況
#Summary/Histogram類型的樣本同樣會反應目前名額的記錄的總數(以_count作為字尾)以及其值的總量(以_sum作為字尾)
prometheus_tsdb_wal_fsync_duration_seconds_sum 2.888716127000002
prometheus_tsdb_wal_fsync_duration_seconds_count 216
prometheus_tsdb_compaction_chunk_range_sum 1.1540798e+09
prometheus_tsdb_compaction_chunk_range_count 780
#Histogram名額直接反應了在不同區間内樣本的個數,區間通過标簽len進行定義
prometheus_tsdb_compaction_chunk_range_bucket{le="2.62144e+07"} 780
prometheus_tsdb_compaction_chunk_range_bucket{le="+Inf"} 780
#不同在于Histogram通過histogram_quantile函數是在伺服器端計算的分位數。 
#而Sumamry的分位數則是直接在用戶端計算完成
#是以對于分位數的計算而言,Summary在通過PromQL進行查詢時有更好的性能表現,而Histogram則會消耗更多的資源
#反之對于用戶端而言Histogram消耗的資源更少
           

繼續閱讀