成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入淺出理解 Prometheus,看這篇就夠了

開發 前端
對很多人來說,未知、不確定、不在掌控的東西,會有潛意識的逃避。當我第一次接觸 Prometheus 的時候也有類似的感覺。對初學者來說, Prometheus 包含的概念太多了,門檻也太高了。

[[347045]] 

背景

對很多人來說,未知、不確定、不在掌控的東西,會有潛意識的逃避。當我第一次接觸 Prometheus 的時候也有類似的感覺。對初學者來說, Prometheus 包含的概念太多了,門檻也太高了。

概念:Instance、Job、Metric、Metric Name、Metric Label、Metric Value、Metric Type(Counter、Gauge、Histogram、Summary)、DataType(Instant Vector、Range Vector、Scalar、String)、Operator、Function

馬云說:“雖然阿里巴巴是全球最大的零售平臺,但阿里不是零售公司,是一家數據公司”。Prometheus 也是一樣,本質來說是一個基于數據的監控系統。

日常監控

假設需要監控 WebServerA 每個API的請求量為例,需要監控的維度包括:服務名(job)、實例IP(instance)、API名(handler)、方法(method)、返回碼(code)、請求量(value)。

如果以SQL為例,演示常見的查詢操作:

查詢 method=put 且 code=200 的請求量(紅框)

  1. SELECT * from http_requests_total WHERE code=”200” AND method=”put” AND created_at BETWEEN 1495435700 AND 1495435710

查詢 handler=prometheus 且 method=post 的請求量(綠框)

  1. SELECT * from http_requests_total WHERE handler=”prometheus” AND method=”post” AND created_at BETWEEN 1495435700 AND 1495435710

查詢 instance=10.59.8.110 且 handler 以 query 開頭 的請求量(綠框)

  1. SELECT * from http_requests_total WHERE handler=”query” AND instance=”10.59.8.110” AND created_at BETWEEN 1495435700 AND 1495435710

通過以上示例可以看出,在常用查詢和統計方面,日常監控多用于根據監控的維度進行查詢與時間進行組合查詢。如果監控100個服務,平均每個服務部署10個實例,每個服務有20個API,4個方法,30秒收集一次數據,保留60天。那么總數據條數為:100(服務) 10(實例) 20(API) 4(方法) 86400(1天秒數)* 60(天) / 30(秒)= 138.24 億條數據,寫入、存儲、查詢如此量級的數據是不可能在Mysql類的關系數據庫上完成的。因此 Prometheus 使用 TSDB 作為 存儲引擎

存儲引擎

TSDB 作為 Prometheus 的存儲引擎完美契合了監控數據的應用場景

  • 存儲的數據量級十分龐大
  • 大部分時間都是寫入操作
  • 寫入操作幾乎是順序添加,大多數時候數據到達后都以時間排序
  • 寫操作很少寫入很久之前的數據,也很少更新數據。大多數情況在數據被采集到數秒或者數分鐘后就會被寫入數據庫
  • 刪除操作一般為區塊刪除,選定開始的歷史時間并指定后續的區塊。很少單獨刪除某個時間或者分開的隨機時間的數據
  • 基本數據大,一般超過內存大小。一般選取的只是其一小部分且沒有規律,緩存幾乎不起任何作用
  • 讀操作是十分典型的升序或者降序的順序讀
  • 高并發的讀操作十分常見

那么 TSDB 是怎么實現以上功能的呢?

  1. "labels": [{ 
  2.  
  3. "latency""500" 
  4.  
  5. }] 
  6.  
  7. "samples":[{ 
  8.  
  9. "timestamp"1473305798
  10.  
  11. "value"0.9 
  12.  
  13. }] 

原始數據分為兩部分 label, samples。前者記錄監控的維度(標簽:標簽值),指標名稱和標簽的可選鍵值對唯一確定一條時間序列(使用 series_id 代表);后者包含包含了時間戳(timestamp)和指標值(value)。

  1. series 
  2.  
  3.  
  4. │. . . . . . . . . . . . server{latency="500"
  5.  
  6. │. . . . . . . . . . . . server{latency="300"
  7.  
  8. │. . . . . . . . . . . server{} 
  9.  
  10. │. . . . . . . . . . . . 
  11.  
  12.  
  13. <-------- time ----------> 

TSDB 使用 timeseries:doc:: 為 key 存儲 value。為了加速常見查詢查詢操作:label 和 時間范圍結合。TSDB 額外構建了三種索引:Series, Label Index 和 Time Index。

以標簽 latency 為例:

Series

存儲兩部分數據。一部分是按照字典序的排列的所有標簽鍵值對序列(series);另外一部分是時間線到數據文件的索引,按照時間窗口切割存儲數據塊記錄的具體位置信息,因此在查詢時可以快速跳過大量非查詢窗口的記錄數據

Label Index

每對 label 為會以 index:label: 為 key,存儲該標簽所有值的列表,并通過引用指向 Series 該值的起始位置。

Time Index

數據會以 index:timeseries:: 為 key,指向對應時間段的數據文件

數據計算

強大的存儲引擎為數據計算提供了完美的助力,使得 Prometheus 與其他監控服務完全不同。Prometheus 可以查詢出不同的數據序列,然后再加上基礎的運算符,以及強大的函數,就可以執行 metric series 的矩陣運算(見下圖)。

如此,Promtheus體系的能力不弱于監控界的“數據倉庫”+“計算平臺”。因此,在大數據的開始在業界得到應用,就能明白,這就是監控未來的方向。

一次計算,處處查詢

當然,如此強大的計算能力,消耗的資源也是挺恐怖的。因此,查詢預計算結果通常比每次需要原始表達式都要快得多,尤其是在儀表盤和告警規則的適用場景中,儀表盤每次刷新都需要重復查詢相同的表達式,告警規則每次運算也是如此。因此,Prometheus提供了 Recoding rules,可以預先計算經常需要或者計算量大的表達式,并將其結果保存為一組新的時間序列, 達到 一次計算,多次查詢的目的。 

 

責任編輯:張燕妮 來源: 高效運維
相關推薦

2019-01-16 17:05:02

Python亂碼網絡

2019-08-16 09:41:56

UDP協議TCP

2021-09-30 07:59:06

zookeeper一致性算法CAP

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2021-05-07 07:52:51

Java并發編程

2022-03-29 08:23:56

項目數據SIEM

2019-01-07 15:29:07

HadoopYarn架構調度器

2017-07-02 18:04:53

塊加密算法AES算法

2012-05-21 10:06:26

FrameworkCocoa

2021-07-20 15:20:02

FlatBuffers阿里云Java

2022-09-26 09:01:15

語言數據JavaScript

2024-08-27 11:00:56

單例池緩存bean

2017-03-30 22:41:55

虛擬化操作系統軟件

2023-09-25 08:32:03

Redis數據結構

2021-09-10 13:06:45

HDFS底層Hadoop

2023-10-04 00:32:01

數據結構Redis

2021-07-28 13:29:57

大數據PandasCSV

2023-11-07 07:46:02

GatewayKubernetes

2009-11-30 16:46:29

學習Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区高清在线 | 国产一区二区三区www | jlzzjlzz国产精品久久 | 91av免费版| 欧美日韩一卡 | 亚洲国产一区二区三区, | 国产精品成人在线播放 | 激情一区二区三区 | 久久人操| 国产精品亚洲一区二区三区在线 | 亚洲视频在线一区 | 91高清在线观看 | 欧美成人精品在线 | www.天天干.com| 中文字幕av中文字幕 | 欧美a区| 欧美精品一区二区三区视频 | 成人av免费播放 | 天天爽夜夜爽精品视频婷婷 | 久久久久久999| 日韩精品免费视频 | 日韩成人一区 | 紧缚调教一区二区三区视频 | 夜夜操天天干 | 亚洲va在线va天堂va狼色在线 | 日韩午夜精品 | 日本中文字幕一区 | 一区二区成人 | 国产成人精品一区二区三区四区 | 成人性生交大片免费看r链接 | 免费国产视频 | 欧美综合视频在线 | 欧美国产精品久久久 | 人人鲁人人莫人人爱精品 | 一区二区三区国产好 | 国产网站在线免费观看 | 国产精品久久久久久久久久久久久 | 日韩字幕一区 | 日本理论片好看理论片 | 精品国产乱码久久久久久闺蜜 | 国产乱码精品一区二区三区中文 |