為什么80%的碼農都做不了架構師?>>> ??
當我剛開始準備使用Python寫一個promethues的client的時候,并沒有想到過程這么麻煩。github上的大佬們也沒興趣幫我解決這些細節的問題。以下是我在使用prometheus_client遇到的一些問題,僅供大家參考
首先參考下github上的例子
https://github.com/prometheus/client_python
我們使用Gauge這個數據類型來做示例,畢竟用的很多
from prometheus_client import Gauge
g = Gauge('my_inprogress_requests', 'Description of gauge')
g.set(value) #value自己定義,但是一定要為 整數或者浮點數
這個例子非常簡單,如果我們需要定義一些label,該如何做呢
from prometheus_client import Gauge
g = Gauge('my_inprogress_requests', 'Description of gauge',['mylabelname'])
g.labels(mylabelname='str').set(value) #value自己定義,但是一定要為 整數或者浮點數
#此時一定要注意,定義Gague標簽的時候是一個列表,列表可以存多個lablename,類型是字符串
#在給lable定義value的時候也要注意,mylablename 這里是一個方法,或者說是一個變量了,一定要注意.
好了,現在我們來啟動一個http?
from prometheus_client import Gauge,start_http_serverfrom prometheus_client import Gauge
a = Gauge('a', 'Description of gauge')
a.set(345) #value自己定義,但是一定要為 整數或者浮點數g = Gauge('g', 'Description of gauge',['mylabelname'])
g.labels(mylabelname='jastme').set(123) #value自己定義,但是一定要為 整數或者浮點數
#此時一定要注意,定義Gague標簽的時候是一個列表,列表可以存多個lablename,類型是字符串
#在給lable定義value的時候也要注意,mylablename 這里是一個方法,或者說是一個變量了,一定要注意.start_http_server(8000)
這樣你就可以通過http訪問到數據
但是請注意,這是個靜態頁面。
如果需要做一個動態頁面,請
?
from prometheus_client import Gauge,start_http_server
import randomfrom prometheus_client import Gauge
a = Gauge('a', 'Description of gauge')
a.set(random.random()) #value自己定義,但是一定要為 整數或者浮點數g = Gauge('g', 'Description of gauge',['mylabelname'])#此時一定要注意,定義Gague標簽的時候是一個列表,列表可以存多個lablename,類型是字符串
#在給lable定義value的時候也要注意,mylablename 這里是一個方法,或者說是一個變量了,一定要注意.start_http_server(8000)
while True:g.labels(mylabelname='jastme').set(random.random())
這樣g的值就是?隨機的,?而a的值一直是固定的。