什麼是Prometheus?數據庫
Prometheus是由SoundCloud開源的監控系統,是Google BorgMon監控系統的開源版本。伴隨着容器及Kubernetes技術的興起,Prometheus愈來愈受到你們的關注。後端
不管是傳統數據中心仍是雲數據中心,不管是物理機,虛擬機仍是容器,整個數據中心的建設都繞不開監控這個話題。優秀的監控系統不只須要兼容各類設備和環境,還須要具有高性能,高可靠及易運維等特性,Prometheus正是其中之一。伴隨着容器相關技術的興起,Prometheus正逐步成爲容器監控的標準,而且對於傳統應用和設備也有良好的兼容性。
Prometheus有GO語言編寫而成,採用Pull方式獲取監控信息,並提供了多維度的數據模型和靈活的查詢接口。Prometheus不只能夠經過靜態文件配置監控對象,還支持自動發現機制,可以經過Kubernetes,Consul,DNS等多種方式動態獲取監控對象。在數據採集方面,藉助Go語言的高併發特性,單機Prometheus能夠採集數百個節點的監控數據;在數據存儲方面,隨着本地時序數據庫的不斷優化,單機Prometheus每秒能夠採集一千萬個指標,若是須要存儲大量的歷史監控數據,則還支持遠端存儲。架構
Prometheus生態系統組件架構:併發
Prometheus Server負責定時在目標上抓取Metrics數據,每一個抓取目標都須要暴露一個HTTP服務接口用於Prometheus定時抓取。這種調用被監控對象獲取監控數據的方式被稱爲Pull。Pull方式體現了Prometheus獨特的設計哲學與大多數採用了Push方式的監控系統不一樣。
但某些現有系統是經過push方式實現的,爲了接入這個系統,Prometheus提供對PushGateway的支持,這些系統主動推送metrics到PushGateway,而Prometheus只是定時去Gateway上抓取數據。運維
AlertManager是獨立於Prometheus的一個組件,在觸發了預先設置在Prometheus中的高級規則後,Prometheus便會推送告警信息到AlertManager。分佈式
Prometheus支持兩種存儲方式: 高併發
Prometheus的優點:性能
Prometheus監控目標:優化
指標摘要:設計
一般來講,單個指標對咱們價值很小,每每須要聯合並可視化多個指標,這其中須要應用一些數學轉換。