prometheus-client

Prometheus Python Client

https://prometheus.io/

普羅米修斯-客戶 ·PyPI

用于服務(wù)器和容器等生產(chǎn)信息監(jiān)控。

1. Install the client:

pip install prometheus-client

2. 運(yùn)行該py,得到相關(guān)的信息

from prometheus_client import start_http_server, Summary

import random

import time

# Create a metric to track time spent and requests made.

REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')

# Decorate function with metric.

@REQUEST_TIME.time()

def process_request(t):

?? """A dummy function that takes some time."""

?? time.sleep(t)

if __name__ == '__main__':

?? # Start up the server to expose the metrics.

?? start_http_server(8000)

?? # Generate some requests.

?? while True:

? ? ?? process_request(random.random())


啟動服務(wù)IP

訪問http://localhost:8000/以查看指標(biāo)蛙粘。


3. 提供4種類型指標(biāo)

Counter, Gauge, Summary and Histogram(計(jì)數(shù)器、儀表、摘要和直方圖)

counter

一直累加的計(jì)數(shù)器,不可以減少形用。counter適合用來記錄訪問總次數(shù),累加值

定義它需要2個參數(shù)延曙,第一個是metrics的名字,第二個是metrics的描述信息:

gauge

可增可減薄湿,可以任意設(shè)置,就代表了某個指標(biāo)當(dāng)前的值而已偷卧。

histogram

用來統(tǒng)計(jì)百分位的

summary

分桶和分桶計(jì)數(shù)

python客戶端沒有完整實(shí)現(xiàn)summary算法

from prometheus_client import Counter

c = Counter('my_failures', 'Description of counter')

c.inc() ? ? # Increment by 1

c.inc(1.6)? # Increment by given value

# -*- coding: utf-8 -*-

from prometheus_client import Counter, Gauge, Summary, start_http_server, Histogram,ProcessCollector

import time

import random

ProcessCollector().collect()


# 定義4種metrics例子

c = Counter("cc", 'A counter')

g = Gauge('gg', 'A gauge')

h = Histogram('hh', 'A histogram', buckets=(-5, 0, 5))

s = Summary('ss', 'A summary', ['label1', 'label2'])? # metrics名字, metrics說明, metrics支持的label

# 在線程中啟動http服務(wù), 供metrics抓取

start_http_server(8880)

while True:

?? # counter:? 只增不減

?? c.inc(1000)

?? # gauge: 任意值

?? g.set(random.random())

?? # histogram: 任意值, 會給符合條件的bucket增加1次計(jì)數(shù)

?? h.observe(random.randint(-10, 10))

?? # summary:任意值, python client不支持summary的百分位統(tǒng)計(jì), 其他語言的client也許支持, 但一般不建議用, 性能和場景都有局限

?? s.labels('a', 'b').observe(17)

?? time.sleep(1)


4進(jìn)程收集

1.如何使用

Python 客戶端會自動導(dǎo)出有關(guān)進(jìn)程 CPU 使用率豺瘤、RAM、文件描述符和開始時間的指標(biāo)听诸。命名空間和 pid 構(gòu)造函數(shù)參數(shù)允許導(dǎo)出有關(guān)其他進(jìn)程的指標(biāo)

ProcessCollector(namespace='system', pid=1)

eg:

ProcessCollector(namespace='supervisord')

2.返回進(jìn)程的參數(shù)信息

supervisord_process_virtual_memory_bytes 3.38071552e+08虛擬內(nèi)存大凶蟆(以字節(jié)為單位)

supervisord_process_resident_memory_bytes 1.4118912e+07駐留內(nèi)存大小(以字節(jié)為單位)

supervisord_process_start_time_seconds 1.64171996791e+09進(jìn)程的開始時間(以秒為單位)

supervisord_process_cpu_seconds_total 0.09999999999999999用戶和系統(tǒng) CPU 總時間(以秒為單位)晌梨。

supervisord_process_open_fds 7.0打開文件描述符的數(shù)量桥嗤。

supervisord_process_max_fds 1024.0打開文件描述符的最大數(shù)量。

5.擴(kuò)展仔蝌,思考

from flask import Flask

from werkzeug.middleware.dispatcher import DispatcherMiddleware

from prometheus_client import make_wsgi_app

# Create my app

app = Flask(__name__)

# Add prometheus wsgi middleware to route /metrics requests

app.wsgi_app = DispatcherMiddleware(app.wsgi_app, {

?? '/metrics': make_wsgi_app()

})

文檔中有寫到flask和promethus的集成泛领,

在利用fastapi的繼承者發(fā)展,發(fā)現(xiàn)目前暫無方法可利用

如利用敛惊,只能將數(shù)值傳入渊鞋,并編寫相關(guān)的參數(shù)信息。

6流量

MultiProcessCollector

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市锡宋,隨后出現(xiàn)的幾起案子儡湾,更是在濱河造成了極大的恐慌,老刑警劉巖执俩,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徐钠,死亡現(xiàn)場離奇詭異,居然都是意外死亡奠滑,警方通過查閱死者的電腦和手機(jī)丹皱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宋税,“玉大人摊崭,你說我怎么就攤上這事〗苋” “怎么了呢簸?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乏屯。 經(jīng)常有香客問我根时,道長,這世上最難降的妖魔是什么辰晕? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任蛤迎,我火速辦了婚禮,結(jié)果婚禮上含友,老公的妹妹穿的比我還像新娘替裆。我一直安慰自己,他們只是感情好窘问,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布辆童。 她就那樣靜靜地躺著,像睡著了一般惠赫。 火紅的嫁衣襯著肌膚如雪把鉴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天儿咱,我揣著相機(jī)與錄音庭砍,去河邊找鬼。 笑死概疆,一個胖子當(dāng)著我的面吹牛逗威,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岔冀,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了使套?” 一聲冷哼從身側(cè)響起罐呼,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侦高,沒想到半個月后嫉柴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奉呛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年计螺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞧壮。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡登馒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咆槽,到底是詐尸還是另有隱情陈轿,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布秦忿,位于F島的核電站麦射,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏灯谣。R本人自食惡果不足惜潜秋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胎许。 院中可真熱鬧峻呛,春花似錦、人聲如沸呐萨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谬擦。三九已至切距,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惨远,已是汗流浹背谜悟。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留北秽,地道東北人葡幸。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像贺氓,于是被迫代替她去往敵國和親蔚叨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容