1. 程式人生 > >Prometheus Monitoring System & Time Series Database

Prometheus Monitoring System & Time Series Database

社區 inf 發布 HR tools pos href 開始 理解

什麽是 TSDB (Time Series Database):

我們可以簡單的理解為.一個優化後用來處理時間序列數據的軟件,並且數據中的數組是由時間進行索引的.

時間序列數據庫的特點:

  • 大部分時間都是寫入操作
  • 寫入操作幾乎是順序添加;大多數時候數據到達後都以時間排序.
  • 寫操作很少寫入很久之前的數據,也很少更新數據.大多數情況在數據被采集到數秒或者數分鐘後就會被寫入數據庫.
  • 刪除操作一般為區塊刪除,選定開始的歷史時間並指定後續的區塊.很少單獨刪除某個時間或者分開的隨機時間的數據.
  • 數據一般遠遠超過內存大小,所以緩存基本無用.系統一般是 IO 密集型
  • 讀操作是十分典型的升序或者降序的順序讀,
  • 高並發的讀操作十分常見.

因此非常適用於用來存儲和處理監控數據。

什麽是Prometheus

Prometheus是SoundCloud發布的一個開源的系統監控和報警工具。自2012成立以來,許多公司和組織都采用了普羅米修斯,該項目擁有一個非常活躍的開發人員和用戶社區。它現在是一個獨立的開源項目,並且獨立於任何公司。為了強調這一點,並明確項目的治理結構,Prometheus在2016年加入了Cloud Native Computing Foundation,作為在 kubernetes之後的第二個由基金會主持的項目。

Prometheus是一個強大的監控平臺,提供了監控數據搜集、存儲、處理、可視化和告警一套完整的解決方案。

官方網站:https://prometheus.io

Features

prometheus主要的特性:

  • 多維數據模型(時序列數據由metric名和一組key/value組成)
  • 在多維度上靈活的查詢語言(PromQl)
  • 不依賴分布式存儲,單主節點工作.
  • 通過基於HTTP的pull方式采集時序數據
  • 可以通過中間網關進行時序列數據推送(pushing)
  • 目標服務器可以通過發現服務或者靜態配置實現
  • 多種可視化和儀表盤支持

Components

prometheus生態系統由多個組件組成,其中許多是可選的:

  • the main Prometheus server which scrapes and stores time series data
  • client libraries for instrumenting application code
  • a push gateway for supporting short-lived jobs
  • special-purpose exporters for services like HAProxy, StatsD, Graphite, etc.
  • an alertmanager to handle alerts
  • various support tools

Most Prometheus components are written in Go, making them easy to build and deploy as static binaries.

Architecture

技術分享圖片

Prometheus Monitoring System & Time Series Database