最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

軟件測(cè)試 | 普羅米修斯-基本使用

2023-03-08 11:32 作者:愛測(cè)軟件測(cè)試  | 我要投稿

快速了解普羅米修斯

普羅米修斯是用 go 語言編寫的軟件并且利用了 go 語言的交叉編譯特性編譯成了純二進(jìn)制文件, 運(yùn)行的時(shí)候不需要額外安裝依賴。 直接從官網(wǎng)上下載就可以。 下載地址:?Download | Prometheus?這里面除了普羅米修斯的主程序意外, 一些 額外的組件,比如 pushgateway, alertmanager 以及各種官方 exporter 的下載包都可以在這里找到。 由于我們現(xiàn)在部署普羅米修斯都是容器化部署的, 所以這里我選擇用 docker 進(jìn)行部署。

docker run --name=prometheus ?-d -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml ?prom/prometheus

部署方式很簡(jiǎn)單, 只不過需要通過-v 來掛載一個(gè)配置文件到容器里。 至于這個(gè)配置文件, 大概張下面這個(gè)樣子:

global:?

?scrape_interval: ? ? 15s ?

evaluation_interval: 15s?

?scrape_configs: ?

- job_name: 'prometheus' ?

??static_configs: ??

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

??- job_name: 'node_exporter' ?

??static_configs: ??

?- targets: ['localhost:9100']?

??- job_name: 'mysql' ??

?static_configs: ?

??- targets: ['localhost:9104']?

??- job_name: 'cadvisor' ?

??static_configs: ??

?- targets: ['localhost:8091']?

??- job_name: 'pushgateway' ? ?

static_configs: ??

?- targets: ['localhost:9091'] ??

? ?labels: ? ? ?

??instance: pushgateway

上面便是一個(gè)普羅米修斯的配置文件 其中 global 是全局的配置,上面配置了我們每隔 15s 便向各個(gè) exporter 抓取一次監(jiān)控?cái)?shù)據(jù),而 scrape_configs 配置的是普羅米修斯主服務(wù)要去抓取的各個(gè) exporter 的配置。 普羅米修斯是標(biāo)準(zhǔn)的 pull 架構(gòu), 主服務(wù)并不負(fù)責(zé)監(jiān)控任務(wù), 真正負(fù)責(zé)監(jiān)控的是各種不同的 exporter。 比如要監(jiān)控一個(gè) linux 服務(wù)器的各項(xiàng)性能指標(biāo),則需要在那臺(tái)服務(wù)器上部署一個(gè) node_exporter。然后在普羅米修斯的配置文件上配置上這個(gè) node_exporter 的地址即可。 普羅米修斯的主服務(wù)自然會(huì)周期性的去拉監(jiān)控?cái)?shù)據(jù)并保存在本地。 PS: 普羅米修斯本身就是一個(gè)時(shí)序數(shù)據(jù)庫,所有監(jiān)控?cái)?shù)據(jù)都是帶有時(shí)間戳的。 我們?cè)谄樟_米修斯的 UI 上或者通過 grafana, HTTP 接口等查詢監(jiān)控?cái)?shù)據(jù)的時(shí)候, 都是主服務(wù)直接查詢本地的時(shí)序數(shù)據(jù)庫返回的結(jié)果。 下面是服務(wù)啟動(dòng)后便可通過 9090 端口訪問主服務(wù)的 UI 界面:

如圖如果我們部署了在每臺(tái)機(jī)器 上 都部署了 node_exporter, 就會(huì)通過 PromQL(普羅米修斯自己定義的一個(gè)類 SQL 語言,后面再講)查詢到當(dāng)前的性能信息。 上圖用了 node_load15 這個(gè)語句從所有 node_exporter 獲取到的數(shù)據(jù)中查詢到了當(dāng)前所有機(jī)器的 15 分鐘內(nèi) CPU 的平均負(fù)載。 至于部署 node_exporter 的方法也很 簡(jiǎn)單, 可以二進(jìn)制包部署也可以 docker 部署。 就在上面的鏈接里能下載的到。

總用量 16524?

-rw-r--r-- 1 work work ? ?11357 5月 ?29 2019 LICENSE?

-rwxr-xr-x 1 work work 16900416 5月 ?29 2019 node_exporter?

-rw-r--r-- 1 work work ? ? ?463 5月 ?29 2019 NOTICE

上面就是下載了 node_exporter 解壓后的結(jié)果。 其中 node_exporter 就是個(gè)二進(jìn)制文件 , 直接運(yùn)行就可以了。

上面是普羅米修斯的架構(gòu)圖。 剛才說過普羅米修斯是 pull 架構(gòu), 主服務(wù)會(huì)根據(jù)配置的時(shí)間參數(shù)周期性的拉取各個(gè) exporter 提供的接口來抓取數(shù)據(jù)。 但是這樣的架構(gòu)有兩個(gè)缺陷:

  • 需要 exporter 是一個(gè)持續(xù)運(yùn)行著的并且對(duì)外暴露 http 接口的服務(wù), 可是有些時(shí)候我們的監(jiān)控?cái)?shù)據(jù)的收集不能滿足這樣的條件

  • 主服務(wù)周期性的抓取數(shù)據(jù), 就會(huì)有事件遺漏的可能性。 比如我們要監(jiān)控 k8s 集群中 pod 的事件, 如果有 pod 掛掉需要監(jiān)控到這個(gè)數(shù)據(jù)。 但是很多 pod 的重啟時(shí)間是很快的, 可能 10s 就完成了重啟, 而普羅米修斯的主服務(wù)在 pod crash 的期間沒有調(diào)用 exporter 抓取數(shù)據(jù),那么這個(gè)事件就會(huì)遺漏掉監(jiān)控不到。 PS:大部分的 exporter 的邏輯都是反應(yīng)當(dāng)前這一時(shí)刻的系統(tǒng)狀態(tài),不會(huì)保存歷史狀態(tài)。 所以一旦事件過去了, 主程序才來抓取 exporter, 就無法采樣到這個(gè)事件的數(shù)據(jù)了。

基于以上兩個(gè)原因, 普羅米修斯又推出了上圖中右邊的 pushgateway 和相關(guān)的 client。 pushgateway 可以理解為一種特別的 exporter, 主服務(wù)還是根據(jù)配置周期性的抓取數(shù)據(jù)。 只不過, pushgateway 本身并不監(jiān)控?cái)?shù)據(jù),它的數(shù)據(jù)都來自使用普羅米修斯開源的 client 開發(fā)的程序上 。 這些程序不用像 exporter 一樣需要是持續(xù)運(yùn)行的服務(wù),它可是任何形式的程序,只要它按自己的邏輯收集到監(jiān)控?cái)?shù)據(jù)后, 通過主動(dòng) push 的方式發(fā)送給 pushgateway 就好了。 通過這個(gè)機(jī)制就補(bǔ)全了普羅米修斯沒有主動(dòng) push 機(jī)制的缺點(diǎn)。 在做測(cè)試項(xiàng)目的時(shí)候 , 我們往往在測(cè)試程序中把收集到的測(cè)試數(shù)據(jù)通過 push 到 pushgateway 上, 這樣 就可以讓測(cè)試自定義的監(jiān)控能力無縫的對(duì)接到產(chǎn)品提供的普羅米修斯上了(產(chǎn)品里一般都是會(huì)部署 pushgateway 的)。

對(duì)接 grafana

普羅米修斯本身并不擅長(zhǎng)可視化的能力, 所以對(duì)應(yīng)的可視化報(bào)表一般都是交給 grafana。 所以可以先部署一個(gè) grafana。

docker run --name grafana -d?

-p 8000:3000 grafana/grafana

然后按照下面的步驟進(jìn)行配置:

granfa 的配置非常的復(fù)雜, 所以一般我們都是在社區(qū)找一個(gè)開源的模板 import 進(jìn)來然后自己改吧改吧。 比如可以在https://grafana.com/grafana/dashboardsnode_exporter 的模板。然后引入到 grafana 中。比如我們搜到下面的模板,中搜到 把 id 復(fù)制過來,或者直接下載模板 json。

通過如此配置就可以快速搭建一個(gè)可用的儀表盤了。


軟件測(cè)試 | 普羅米修斯-基本使用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
谢通门县| 镇宁| 巴马| 富宁县| 阜新| 瑞安市| 溧阳市| 宜丰县| 镇安县| 彰化市| 三门县| 乐昌市| 二连浩特市| 五常市| 沙洋县| 丰宁| 台湾省| 昌乐县| 十堰市| 张掖市| 西城区| 康定县| 巴林右旗| 太白县| 南部县| 克东县| 临江市| 通江县| 嫩江县| 拜泉县| 资兴市| 平阴县| 绍兴县| 乡宁县| 沐川县| 思南县| 应用必备| 泉州市| 微博| 新竹县| 德保县|