prometheus筆記

1 基本原理

Prometheus的基本原理是通過HTTP協(xié)議周期性抓取被監(jiān)控組件target的狀態(tài),任意組件只要提供相應的HTTP接口就可以接入監(jiān)控。不需任何SDK或者其他的集成過程。
輸出監(jiān)控信息的HTTP接口叫exporter潮改,目前開源組件大都有exporter可以直接使用,比如Haproxy、Nginx凝果、MySQL、redis睦尽、rabbitmq器净、Linux系統(tǒng)信息(包括磁盤、內存当凡、CPU山害、網(wǎng)絡等)。


Architecture

Server 主要負責數(shù)據(jù)采集和存儲宁玫,提供PromQL查詢語言的支持粗恢。
Alertmanager 警告管理器,用來進行報警欧瘪。支持Prometheus的查詢語句眷射,提供靈活的報警方式(待完善)。
Push Gateway 支持臨時性Job主動推送指標的中間網(wǎng)關佛掖。

Prometheus Federation聯(lián)邦機制:一般分為Cross-service federation與Hierarchical federation妖碉。


Cross-service federation

Hierarchical federation

prometheus.yml

scrape_configs:
  - job_name: 'federate'
    scrape_interval: 15s

    honor_labels: true #避免監(jiān)控指標沖突
    metrics_path: '/federate'

    params:
      'match[]':
        - '{job="prometheus"}'
        - '{__name__=~"job:.*"}'
        - '{job=~"prometheus.*"}'
        - '{job="docker"}'
        - '{job="node"}'
    static_configs:
      - targets:
        - 'source-prometheus-1:9090'
        - 'source-prometheus-2:9090'

grafana UI:http://127.0.0.1:3000
prometheus UI:http://127.0.0.1:9090
pushgateway UI:http://127.0.0.1:9091

2 特點

  • 多維度時序數(shù)據(jù)模型,名稱metric+key/value芥被。
  • PromQL靈活的查詢語言欧宜。
  • 不依賴分布式存儲,單服務器節(jié)點是自主的。
  • 基于HTTP的pull方式采集時序數(shù)據(jù)清焕。
  • 可以通過中間網(wǎng)關進行時序列數(shù)據(jù)推送溯街。
  • 通過服務發(fā)現(xiàn)或者靜態(tài)配置來發(fā)現(xiàn)target目標服務對象。
  • 支持多種圖表和界面展示夏漱,比如Grafana等。

3 Metric類型:

  1. Counter: 累加metric顶捷,如請求的個數(shù)挂绰,錯誤數(shù)等
  2. Gauge: 常規(guī)metric,可任意加減服赎。其為瞬時的葵蒂,與時間沒有關系交播,可以任意變化。
  3. Histogram: 柱狀圖践付,用于觀察結果采樣秦士,分組及統(tǒng)計,如:請求持續(xù)時間荔仁,響應大小伍宦。
  4. Summary: 類似Histogram,用于表示一段時間內數(shù)據(jù)采樣結果乏梁,其直接存儲quantile數(shù)據(jù)次洼,而不是根據(jù)統(tǒng)計區(qū)間計算出來的。不需要計算遇骑,直接存儲結果卖毁。

4 PromQL (Prometheus Query Language)

Prometheus 自己開發(fā)的數(shù)據(jù)查詢 DSL 語言。
查詢結果類型:

  1. 瞬時數(shù)據(jù) (Instant vector): 包含一組時序落萎,每個時序只有一個點亥啦,例如:http_requests_total
  2. 區(qū)間數(shù)據(jù) (Range vector): 包含一組時序,每個時序有多個點练链,例如:http_requests_total[5m]
  3. 純量數(shù)據(jù) (Scalar): 純量只有一個數(shù)字翔脱,沒有時序,例如:count(http_requests_total)
    標簽查詢:logback_events_total{level=~"in.*"}
    QPS計算:rate(http_requests_total[5m])irate(http_requests_total[5m])媒鼓,后者適用變化率大場景届吁。
    其他函數(shù):count,sum,svg

5 配置

啟動時,可以加載運行參數(shù)-config.file指定配置文件绿鸣, 默認為程序根目錄下prometheus.yml疚沐。
全局配置global主要有四個屬性:
scrape_interval: 拉取 targets 的默認時間間隔。
scrape_timeout: 拉取一個 target 的超時時間潮模。
evaluation_interval: 執(zhí)行 rules 的時間間隔亮蛔。
external_labels: 額外的屬性,會添加到拉取的數(shù)據(jù)并存到數(shù)據(jù)庫中擎厢。
prometheus.yml

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# metrics collect
remote_write:
    - url: "http://10.0.0.153:9201/write"


# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
  - "myrule.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

# 動態(tài)加載模式究流,新增target無需重啟服務
  - job_name: 'linux'
    file_sd_configs:
  #  - refresh_interval: 1m
    - files:
      - ./conf/node-linux-*.json

  - job_name: 'windows'
    static_configs:
    - targets: ['10.0.0..89:9182']
    - targets: ['10.0.0.95:9182']

  - job_name: 'mysql'
    scrape_interval: 1m
    file_sd_configs:
    - files:
      - ./conf-mysql/*.json

myrule.yml

groups:
- name: zt_custom
  rules:
  - record: mysql_csc_slowquery_irate_2m
    expr: irate(mysql_csc_slowquery [2m])

./conf/node-linux-finance.json

[
  {
    "targets": ["10.0.0.80:9100"],
    "labels":{
       "env":"pro",
       "region":"dbjf",
       "instance":"finance-80"
    }
  },
  {
    "targets": ["10.0.0.90:9100"],
    "labels":{
       "env":"pro",
       "region":"dbjf",
       "instance":"finance-90"
    }
  }
]

6 exporter

詳見https://prometheus.io/docs/instrumenting/exporters/#exporters-and-integrations
linux系統(tǒng)、mysql动遭、redis等等都有相應的exporter梯嗽,按照說明運行代理即可。

參考:https://prometheus.io/docs/introduction/overview/

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末沽损,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子循头,更是在濱河造成了極大的恐慌绵估,老刑警劉巖炎疆,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異国裳,居然都是意外死亡形入,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門缝左,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亿遂,“玉大人,你說我怎么就攤上這事渺杉∩呤” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵是越,是天一觀的道長耳舅。 經(jīng)常有香客問我,道長倚评,這世上最難降的妖魔是什么浦徊? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮天梧,結果婚禮上盔性,老公的妹妹穿的比我還像新娘。我一直安慰自己呢岗,他們只是感情好冕香,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敷燎,像睡著了一般暂筝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硬贯,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天焕襟,我揣著相機與錄音,去河邊找鬼饭豹。 笑死鸵赖,一個胖子當著我的面吹牛,可吹牛的內容都是我干的拄衰。 我是一名探鬼主播它褪,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翘悉!你這毒婦竟也來了茫打?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎老赤,沒想到半個月后轮洋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡抬旺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年弊予,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片开财。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡汉柒,死狀恐怖,靈堂內的尸體忽然破棺而出责鳍,到底是詐尸還是另有隱情碾褂,我是刑警寧澤薇搁,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布斋扰,位于F島的核電站,受9級特大地震影響啃洋,放射性物質發(fā)生泄漏传货。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一宏娄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粮宛,春花似錦卖宠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳖宾。三九已至逆航,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間因俐,已是汗流浹背周偎。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工栏饮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人磷仰。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像境蔼,于是被迫代替她去往敵國和親灶平。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內容