日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

使用 prometheus python 庫編寫自定義指標的方法(完整代碼)

瀏覽:177日期:2022-07-19 13:29:11

雖然 prometheus 已有大量可直接使用的 exporter 可供使用,以滿足收集不同的監控指標的需要。例如,node exporter 可以收集機器 cpu,內存等指標,cadvisor 可以收集容器指標。然而,如果需要收集一些定制化的指標,還是需要我們編寫自定義的指標。

本文講述如何使用 prometheus python 客戶端庫和 flask 編寫 prometheus 自定義指標。

安裝依賴庫

我們的程序依賴于flask 和prometheus client 兩個庫,其 requirements.txt 內容如下:

flask==1.1.2prometheus-client==0.8.0

運行 flask

我們先使用 flask web 框架將 /metrics 接口運行起來,再往里面添加指標的實現邏輯。

#!/usr/bin/env python# -*- coding:utf-8 -*-from flask import Flaskapp = Flask(__name__)@app.route(’/metrics’)def hello(): return ’metrics’if __name__ == ’__main__’: app.run(host=’0.0.0.0’, port=5000)

打開瀏覽器,輸入 http://127.0.0.1:5000/metrics,按下回車后瀏覽器顯示 metrics 字符。

編寫指標

Prometheus 提供四種指標類型,分別為 Counter,Gauge,Histogram 和 Summary。

Counter

Counter 指標只增不減,可以用來代表處理的請求數量,處理的任務數量,等。

可以使用 Counter 定義一個 counter 指標:

counter = Counter(’my_counter’, ’an example showed how to use counter’)

其中,my_counter 是 counter 的名稱,an example showed how to use counter 是對該 counter 的描述。

使用 counter 完整的代碼如下:

#!/usr/bin/env python# -*- coding:utf-8 -*-from flask import Flask, Responsefrom prometheus_client import Counter, generate_latestapp = Flask(__name__)counter = Counter(’my_counter’, ’an example showed how to use counter’)@app.route(’/metrics’)def hello(): counter.inc(1) return Response(generate_latest(counter), mimetype=’text/plain’)if __name__ == ’__main__’: app.run(host=’0.0.0.0’, port=5000)

訪問 http://127.0.0.1:5000/metrics,瀏覽器輸出:

# HELP my_counter_total an example showed how to use counter# TYPE my_counter_total countermy_counter_total 6.0# HELP my_counter_created an example showed how to use counter# TYPE my_counter_created gaugemy_counter_created 1.5932468510424378e+09

在定義 counter 指標時,可以定義其 label 標簽:

counter = Counter(’my_counter’, ’an example showed how to use counter’, [’machine_ip’])

在使用時指定標簽的值:

counter.labels(’127.0.0.1’).inc(1)

這時瀏覽器會將標簽輸出:

my_counter_total{machine_ip='127.0.0.1'} 1.0

Gauge

Gauge 指標可增可減,例如,并發請求數量,cpu 占用率,等。

可以使用 Gauge 定義一個 gauge 指標:

registry = CollectorRegistry()gauge = Gauge(’my_gauge’, ’an example showed how to use gauge’, [’machine_ip’], registry=registry)

為使得 /metrics 接口返回多個指標,我們引入了 CollectorRegistry ,并設置 gauge 的 registry 屬性。

使用 set 方法設置 gauge 指標的值:

gauge.labels(’127.0.0.1’).set(2)

訪問 http://127.0.0.1:5000/metrics,瀏覽器增加輸出:

# HELP my_gauge an example showed how to use gauge# TYPE my_gauge gaugemy_gauge{machine_ip='127.0.0.1'} 2.0

Histogram

Histogram 用于統計樣本數值落在不同的桶(buckets)里面的數量。例如,統計應用程序的響應時間,可以使用 histogram 指標類型。

使用 Histogram 定義一個 historgram 指標:

buckets = (100, 200, 300, 500, 1000, 3000, 10000, float(’inf’))histogram = Histogram(’my_histogram’, ’an example showed how to use histogram’, [’machine_ip’], registry=registry, buckets=buckets)

如果我們不使用默認的 buckets,可以指定一個自定義的 buckets,如上面的代碼所示。

使用 observe() 方法設置 histogram 的值:

histogram.labels(’127.0.0.1’).observe(1001)

訪問 /metrics 接口,輸出:

# HELP my_histogram an example showed how to use histogram# TYPE my_histogram histogrammy_histogram_bucket{le='100.0',machine_ip='127.0.0.1'} 0.0my_histogram_bucket{le='200.0',machine_ip='127.0.0.1'} 0.0my_histogram_bucket{le='300.0',machine_ip='127.0.0.1'} 0.0my_histogram_bucket{le='500.0',machine_ip='127.0.0.1'} 0.0my_histogram_bucket{le='1000.0',machine_ip='127.0.0.1'} 0.0my_histogram_bucket{le='3000.0',machine_ip='127.0.0.1'} 1.0my_histogram_bucket{le='10000.0',machine_ip='127.0.0.1'} 1.0my_histogram_bucket{le='+Inf',machine_ip='127.0.0.1'} 1.0my_histogram_count{machine_ip='127.0.0.1'} 1.0my_histogram_sum{machine_ip='127.0.0.1'} 1001.0# HELP my_histogram_created an example showed how to use histogram# TYPE my_histogram_created gaugemy_histogram_created{machine_ip='127.0.0.1'} 1.593260699767071e+09

由于我們設置了 histogram 的樣本值為 1001,可以看到,從 3000 開始,xxx_bucket 的值為 1。由于只設置一個樣本值,故 my_histogram_count 為 1 ,且樣本總數 my_histogram_sum 為 1001。讀者可以自行試驗幾次,慢慢體會 histogram 指標的使用,遠比看網上的文章理解得快。

Summary

Summary 和 histogram 類型類似,可用于統計數據的分布情況。

定義 summary 指標:

summary = Summary(’my_summary’, ’an example showed how to use summary’, [’machine_ip’], registry=registry)

設置 summary 指標的值:

summary.labels(’127.0.0.1’).observe(randint(1, 10))

訪問 /metrics 接口,輸出:

# HELP my_summary an example showed how to use summary# TYPE my_summary summarymy_summary_count{machine_ip='127.0.0.1'} 4.0my_summary_sum{machine_ip='127.0.0.1'} 16.0# HELP my_summary_created an example showed how to use summary# TYPE my_summary_created gaugemy_summary_created{machine_ip='127.0.0.1'} 1.593263241728389e+09

附:完整源代碼

#!/usr/bin/env python# -*- coding:utf-8 -*-from random import randintfrom flask import Flask, Responsefrom prometheus_client import Counter, Gauge, Histogram, Summary, generate_latest, CollectorRegistryapp = Flask(__name__)registry = CollectorRegistry()counter = Counter(’my_counter’, ’an example showed how to use counter’, [’machine_ip’], registry=registry)gauge = Gauge(’my_gauge’, ’an example showed how to use gauge’, [’machine_ip’], registry=registry)buckets = (100, 200, 300, 500, 1000, 3000, 10000, float(’inf’))histogram = Histogram(’my_histogram’, ’an example showed how to use histogram’, [’machine_ip’], registry=registry, buckets=buckets)summary = Summary(’my_summary’, ’an example showed how to use summary’, [’machine_ip’], registry=registry)@app.route(’/metrics’)def hello(): counter.labels(’127.0.0.1’).inc(1) gauge.labels(’127.0.0.1’).set(2) histogram.labels(’127.0.0.1’).observe(1001) summary.labels(’127.0.0.1’).observe(randint(1, 10)) return Response(generate_latest(registry), mimetype=’text/plain’)if __name__ == ’__main__’: app.run(host=’0.0.0.0’, port=5000)

參考資料

https://github.com/prometheus/client_pythonhttps://prometheus.io/docs/concepts/metric_types/https://prometheus.io/docs/instrumenting/writing_clientlibs/https://prometheus.io/docs/instrumenting/exporters/https://pypi.org/project/prometheus-client/https://prometheus.io/docs/concepts/metric_types/http://www.coderdocument.com/docs/prometheus/v2.14/best_practices/histogram_and_summary.htmlhttps://prometheus.io/docs/practices/histograms/

總結

到此這篇關于使用 prometheus python 庫編寫自定義指標的文章就介紹到這了,更多相關prometheus python 庫編寫自定義指標內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91亚洲一区| 99久久婷婷这里只有精品| 国产精品久久免费视频| 日韩在线观看中文字幕| 日韩精品一级中文字幕精品视频免费观看| 日韩午夜av| 日韩精品成人在线观看| 亚洲另类av| 国产精品日韩欧美一区| 欧美日韩精品免费观看视频完整| 日韩精品成人在线观看| 日韩高清在线不卡| 青青青国产精品| 国产一区二区三区亚洲| 国产综合色区在线观看| 欧美亚洲在线日韩| 中文字幕一区二区三区日韩精品 | 日韩一区二区三区在线看| 亚洲精品女人| 国产福利一区二区三区在线播放| 国精品产品一区| 激情久久五月| 日本不卡视频在线| 久久不见久久见免费视频7| 丁香六月综合| 婷婷综合电影| 欧美视频久久| 国产免费成人| 91精品一区| 欧美精品日日操| 亚洲精品少妇| 国产不卡精品在线| 男人的天堂久久精品| 久久女人天堂| 日本一不卡视频| 国产欧美高清| 免费在线观看不卡| 麻豆精品少妇| 亚洲香蕉视频| 欧美日一区二区三区在线观看国产免| 精品国产精品国产偷麻豆| 欧美日韩一二| 国产精品久久久久毛片大屁完整版| 日韩欧美少妇| 国产欧美日韩在线一区二区| 欧美日中文字幕| 国产欧美亚洲一区| 亚洲一区国产一区| 国产+成+人+亚洲欧洲在线| 中文视频一区| 亚洲精品国产嫩草在线观看 | 香蕉视频亚洲一级| 91亚洲无吗| 亚洲欧美日韩精品一区二区| 午夜久久中文| 亚洲精品在线国产| 日韩免费福利视频| 久久精品99久久久| 午夜精品亚洲| 成人在线观看免费视频| 亚洲精品高潮| 亚洲先锋成人| 国产传媒在线| 国产精品igao视频网网址不卡日韩| 亚洲自啪免费| 欧美日韩色图| 精品中文字幕一区二区三区 | 日韩三区免费| 久久麻豆视频| 日韩精品欧美精品| 国产日韩专区| 久久久久免费av| 福利一区二区免费视频 | 国产欧美一区| 日韩精品电影一区亚洲| 在线视频免费在线观看一区二区| 日韩专区精品| 久久精品国产一区二区| 日本精品在线播放| 中文字幕一区二区三区四区久久 | 欧美久久香蕉| 日韩国产在线不卡视频| 在线一区二区三区视频| 国产韩日影视精品| 欧美成人综合| 免费视频一区二区三区在线观看 | 免费人成在线不卡| 午夜精品免费| 亚洲激精日韩激精欧美精品| 私拍精品福利视频在线一区| 国产成人精品亚洲线观看| 欧美黑人做爰爽爽爽| 久久国产三级| 欧美亚洲tv| 国产亚洲电影| 久久99精品久久久野外观看| 色8久久久久| 亚洲久久在线| 午夜天堂精品久久久久| 日韩高清一区| 久久精品72免费观看| 亚洲a级精品| 欧美一区精品| 国产精品极品| 日本一区二区免费高清| 亚洲性色av| 久久精品人人| 国产成人精品一区二区三区免费| 久久久久久夜| 久久婷婷丁香| 不卡中文一二三区| 亚洲特色特黄| 亚洲在线国产日韩欧美| 午夜在线一区二区| 日本中文字幕视频一区| 日韩av在线免费观看不卡| 国产毛片一区二区三区| 国产欧美欧美| 中文字幕在线高清| 亚洲女同一区| 日韩超碰人人爽人人做人人添| 国产精品日韩精品中文字幕| 久久久久免费| 99国产精品99久久久久久粉嫩| 亚洲精品影视| 国产一区二区三区视频在线| 国产va在线视频| 亚洲免费播放| 国产欧美日韩一区二区三区在线| 高清日韩中文字幕| 日韩视频精品在线观看| 青青青国产精品| 国产va在线视频| 中文亚洲欧美| 国产精品2区| 欧美日韩国产高清电影| 日本不卡中文字幕| 成人看片网站| 日韩欧美久久| 国产亚洲一区二区手机在线观看| 蜜桃传媒麻豆第一区在线观看| 国产日韩欧美一区| 亚洲成人精品| 国产亚洲欧美日韩在线观看一区二区 | 亚洲精一区二区三区| 精品一区二区三区视频在线播放| 1000部精品久久久久久久久| 国产日韩欧美在线播放不卡| 激情欧美一区二区三区| 久久丁香四色| 国产一级久久| 四季av一区二区凹凸精品| 99热免费精品| 日韩成人精品一区| 亚洲精品日本| 亚洲午夜视频| 国产在线观看91一区二区三区| 综合激情在线| 天堂√中文最新版在线| 青青草91视频| 国产精品腿扒开做爽爽爽挤奶网站| 韩日一区二区| 欧美日韩伊人| 免费看的黄色欧美网站| 日韩在线短视频| 久久国产乱子精品免费女| 日韩视频中文| 福利片在线一区二区| 日本一区二区中文字幕| 欧美日韩在线二区| 精品久久91| 国产日产一区| 四虎国产精品免费久久| 在线亚洲国产精品网站| 亚洲一级少妇| 九九99久久精品在免费线bt| 日韩国产在线一| 亚洲午夜国产成人| 欧美在线亚洲| 久久国产日韩| 美女性感视频久久| 涩涩涩久久久成人精品| 神马日本精品| 中文字幕人成乱码在线观看| 麻豆91精品视频| 国产毛片一区二区三区| 日韩精品三级| 亚洲精品九九| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲调教视频在线观看| 欧美日韩精品免费观看视完整 | 在线一区二区三区视频| 国产日韩专区| 亚洲深夜福利| 免费视频一区三区| 99久久婷婷| 国产一区日韩欧美| 香蕉久久99| 国户精品久久久久久久久久久不卡 | 国产精品一区二区av交换|