官术网_书友最值得收藏!

1.2 Prometheus 1.0

Prometheus 1.0發布于2016年7月。從首個版本到1.0版本,Prometheus進行了多次迭代,增加了很多功能,本節所述功能并非在1.0版本中一次性添加,但是截至1.0版本發布時這些功能已經存在。由于新增功能較多,本節僅選取其中比較重要的一些功能進行講解。

1.0版本對本地存儲模塊進行了重大改進,大幅提高了存儲性能,這些改進通過完善大量代碼實現。該版本支持的樣本類型增加了Histogram,在此之前僅支持Counter、Gauge和Summary類型。為了解決標簽集的哈希指紋重復的問題,1.0版本變更了監控項的指紋哈希算法,通過在標簽集的各個字符串之間添加分割符來避免哈希指紋重復。1.0版本非常重要的改進之一是改進了數據存儲編碼,采用delta-on-delta(增量的增量)編碼,大約減少了40%的內存和硬盤資源消耗。在遠程存儲方面,1.0版本在原有OpenTSDB的基礎上增加了InfluxDB和Graphite作為遠程存儲。

1.0版本將配置文件格式由ProtoBuf格式轉變為YAML格式,解析和加載方法也相應修改。1.0版本增加了運行時加載配置的功能,由SIGHUP信號觸發加載過程。在監控目標管理方面,1.0版本增加了對多種監控目標的自動發現功能,包括Kubernetes、Azure、Consul、Serverset(ZooKeeper)、File、DNS、EC2(AWS)、Marathon和Nerve(SmartStack)共9種。在警報消息處理方面,1.0版本開始支持將警報消息發送到Alertmanager(警報管理系統)。在Web API方面,1.0版本開始支持federate(聯邦)功能,并且在提供監控數據查詢功能的基礎上支持對監控項元數據的條件查詢功能,用戶可以查詢符合指定條件的監控項元數據,而不是全量數據。

總之,1.0版本主要是在不變更存儲架構的情況下對存儲性能進行了優化,在配置信息處理方面轉為使用YAML格式,并且實現了對多種監控目標的自動發現。1.0版本的主要代碼文件目錄以及各個模塊在代碼文件中的分布如代碼清單1-2所示。

代碼清單1-2 Prometheus 1.0主要代碼文件目錄

.
|-- cmd       # 包含主程序,以及由工具箱發展而來的Promtool模塊
|-- config    # YAML配置信息處理模塊,實現了配置信息的結構定義和編解碼,以及配置文件的加載等
|-- console_libraries    # Web用戶界面模塊所使用的模板定義,包括導航欄、菜單、通用函數等
|-- consoles       # Web用戶界面使用的HTML文件,其中的導航欄等內容來自console_libraries
|-- documentation  # 配置文件及說明文檔
|-- notifier       # 通知器模塊,支持向多個Alertmanager接口發送消息
|-- promql         # 數據查詢語言模塊
|-- retrieval      # 采樣管理器模塊和監控目標管理器模塊,包含監控目標自動發現功能
|-- rules          # 規則模塊,包含告警規則管理器模塊和轉錄規則管理器模塊
|-- scripts            # 僅包含一個代碼檢查工具,用于檢查各個代碼文件的許可聲明是否存在
|-- storage   # 本地存儲模塊和遠程存儲模塊,完善了本地存儲,遠程存儲增加對InfluxDB和Graphite
|                      # 的支持,代碼量增加約60%
|-- template           # 底層模塊,用于增強監控數據的處理能力
|-- util               # 底層數據結構模塊,包含緩存、文件操作、定時器、字符串處理和HTTP客戶端等
|-- vendor             # 實現其他模塊功能所需的外部庫,包含自動發現功能所需的外部庫
`-- web                # 該模塊包含Web API和Web用戶界面兩個模塊,增加了聯邦功能
主站蜘蛛池模板: 博湖县| 湖州市| 夏河县| 稻城县| 宁化县| 新宾| 辽宁省| 错那县| 高邮市| 盐亭县| 彩票| 桓台县| 吉木乃县| 丹阳市| 武胜县| 乌拉特中旗| 吴旗县| 正镶白旗| 呼玛县| 乳山市| 永州市| 上饶县| 钟山县| 武义县| 岳池县| 罗甸县| 时尚| 林甸县| 江津市| 湖北省| 宜州市| 广水市| 肥城市| 平和县| 玉环县| 吴桥县| 墨竹工卡县| 黔南| 镇宁| 鲁甸县| 大渡口区|