免费国产成人av_国产又黄又猛的视频_免费国产a级片_国产日韩一区二区在线观看_久久av喷吹av高潮av_国产亚洲视频一区_成人网站免费观看入口_91高清国产视频_www国产黄色_久久av秘一区二区三区_日本男女交配视频_免费看av软件

全球最新:prometheus 服務(wù)發(fā)現(xiàn)原理

首頁 > 探索 > > 正文

日期:2023-03-26 21:17:04    來源:騰訊云    

服務(wù)發(fā)現(xiàn)

概述

如上圖,Prometheus核心功能包括服務(wù)發(fā)現(xiàn)、數(shù)據(jù)采集和數(shù)據(jù)存儲(chǔ)。服務(wù)發(fā)現(xiàn)模塊專門負(fù)責(zé)發(fā)現(xiàn)需要監(jiān)控的目標(biāo)采集點(diǎn)(target)信息,數(shù)據(jù)采集模塊從服務(wù)發(fā)現(xiàn)模塊訂閱該信息,獲取到target信息后,其中就包含協(xié)議(scheme)、主機(jī)地址:端口(instance)、請(qǐng)求路徑(metrics_path)、請(qǐng)求參數(shù)(params)等;然后數(shù)據(jù)采集模塊就可以基于這些信息構(gòu)建出一個(gè)完整的Http Request請(qǐng)求,定時(shí)通過pull http協(xié)議不斷的去目標(biāo)采集點(diǎn)(target)拉取監(jiān)控樣本數(shù)據(jù)(sample);最后,將采集到監(jiān)控樣本數(shù)據(jù)交由TSDB模塊進(jìn)行數(shù)據(jù)存儲(chǔ)。


【資料圖】

為什么需要服務(wù)發(fā)現(xiàn)模塊?

類似于微服務(wù)通過引入注冊中心組件解決眾多微服務(wù)間錯(cuò)綜復(fù)雜的依賴調(diào)用。無論是服務(wù)主動(dòng)停止,意外掛掉,還是因?yàn)榱髁吭黾訉?duì)服務(wù)實(shí)現(xiàn)進(jìn)行擴(kuò)容,這些服務(wù)數(shù)據(jù)或狀態(tài)上的動(dòng)態(tài)變化,通過注冊中心屏蔽服務(wù)狀態(tài)變更造成的影響,簡化了調(diào)用方處理邏輯。

同理,Prometheus最開始設(shè)計(jì)是一個(gè)面向云原生應(yīng)用程序的,云原生、容器場景下按需的資源使用方式對(duì)于監(jiān)控系統(tǒng)而言就意味著沒有了一個(gè)固定的監(jiān)控目標(biāo),所有的監(jiān)控對(duì)象(基礎(chǔ)設(shè)施、應(yīng)用、服務(wù))都在動(dòng)態(tài)的變化。Prometheus解決方案就是引入一個(gè)中間的代理人,這個(gè)代理人掌握著當(dāng)前所有監(jiān)控目標(biāo)的訪問信息,Prometheus只需要向這個(gè)代理人詢問有哪些監(jiān)控目標(biāo)即可,這種模式被稱為服務(wù)發(fā)現(xiàn)(service discovery)。

目前,Prometheus支持的服務(wù)發(fā)現(xiàn)協(xié)議是非常豐富的,最新版本(2.41)已支持接近三十種服務(wù)發(fā)現(xiàn)協(xié)議:

服務(wù)發(fā)現(xiàn)配置解析

1、Prometheus服務(wù)啟動(dòng)加載prometheus.yml配置文件會(huì)被解析Config結(jié)構(gòu)體:

?

Config結(jié)構(gòu)體是配置類的最頂層結(jié)構(gòu),內(nèi)部包含6個(gè)字段分別對(duì)應(yīng)prometheus配置的6大組成部分。

?

2、其中數(shù)據(jù)采集配置部分ScrapeConfigs對(duì)應(yīng)的是一個(gè)*ScrapeConfig類型切片,一個(gè)ScrapeConfig對(duì)應(yīng)的是scrape_configs配置下的一個(gè)job抓取任務(wù),服務(wù)發(fā)現(xiàn)協(xié)議配置對(duì)應(yīng)其中ServiceDiscoveryConfigs字段:

3、discovery.Configs對(duì)應(yīng)的是Config切片:

type Configs []Config

所以,一個(gè)job抓取任務(wù)下可以配置多個(gè)服務(wù)發(fā)現(xiàn)協(xié)議,如:

- job_name: "prometheus"  metrics_path: /metrics  static_configs:    - targets: ["124.222.45.207:9090"]  file_sd_configs:    - files:      - targets/t1.json      - targets/t2.json      refresh_interval: 5m

4、Config是一個(gè)接口:

Config是一個(gè)接口的定義,每種服務(wù)發(fā)現(xiàn)協(xié)議都會(huì)存在一個(gè)對(duì)應(yīng)Config接口的實(shí)現(xiàn)(見下圖)。該接口主要定義兩個(gè)方法:

1、Name() string:定義服務(wù)發(fā)現(xiàn)協(xié)議類型,如eureka、kubernetes等等;2、NewDiscoverer(DiscovererOptions) (Discoverer, error):返回一個(gè)Discoverer類型變量,該類型也是一個(gè)接口,其只定義了一個(gè)方法Run方法,即Discoverer是對(duì)應(yīng)的服務(wù)發(fā)現(xiàn)協(xié)議具體運(yùn)行邏輯封裝,通過Run方法提供統(tǒng)一的運(yùn)行入口。
服務(wù)發(fā)現(xiàn)核心原理

說明:

Prometheus服務(wù)發(fā)現(xiàn)核心邏輯的入口主要關(guān)注Manager結(jié)構(gòu)體的ApplyConfig方法:基于服務(wù)發(fā)現(xiàn)的配置使其生效;

ApplyConfig方法包括四個(gè)主要步驟:

type provider struct { name   string d      Discoverer subs   []string config interface{}}

?一個(gè)job下一個(gè)服務(wù)發(fā)現(xiàn)協(xié)議對(duì)應(yīng)一個(gè)Discoverer。?

provider還有額外三個(gè)字段:

1、nameprovider名稱,格式:fmt.Sprintf("%s/%d", typ, len(m.providers))

2、subsstring切片,存放job名稱,因?yàn)榭赡懿煌?code>job下存在一致的服務(wù)發(fā)現(xiàn)配置,就只會(huì)生成一個(gè)provider,然后subs存放job列表;

3、config:服務(wù)發(fā)現(xiàn)配置

啟動(dòng)Discoverer接口Run方法,讓服務(wù)發(fā)現(xiàn)邏輯運(yùn)行;協(xié)程中運(yùn)行updater方法;Discoverer接口Run方法主要基于具體服務(wù)發(fā)現(xiàn)協(xié)議發(fā)現(xiàn)target,然后通過通道傳遞給updater處理邏輯,將其解析處理放入到Manager結(jié)構(gòu)體中targets字段中,并向triggerSend通道發(fā)送信號(hào),表示當(dāng)前targets發(fā)生變更;Manager結(jié)構(gòu)體sender方法每5秒監(jiān)聽triggerSend通道信號(hào),并將Manager結(jié)構(gòu)體中targets字段處理后放入到syncCh通道中;數(shù)據(jù)采集模塊(scrape)監(jiān)聽syncCh通道,就可以獲取到服務(wù)發(fā)現(xiàn)生成的targets信息,然后reloadtarget納入監(jiān)控開始抓取監(jiān)控指標(biāo)。啟動(dòng)provider:遍歷Manager結(jié)構(gòu)體中providers切片,啟動(dòng)每個(gè)provider,該步驟主要是啟動(dòng)兩個(gè)協(xié)程:?Manager結(jié)構(gòu)體sender方法是在Prometheus啟動(dòng)時(shí)discoveryManagerScrape.Run()方法中啟動(dòng)。?取消服務(wù)發(fā)現(xiàn):配置變更也會(huì)調(diào)用ApplyConfig方法,這時(shí)就要把基于之前配置運(yùn)行的服務(wù)發(fā)現(xiàn)服務(wù)取消,然后基于當(dāng)前配置重新生成;清空:主要清空discoverCanceltargetsproviders幾個(gè)容器元素,因?yàn)橐诋?dāng)前配置重新生成;注冊providerprovider是對(duì)Discoverer的封裝,不同服務(wù)發(fā)現(xiàn)協(xié)議都會(huì)實(shí)現(xiàn)Config接口,其中NewDiscoverer方法就是創(chuàng)建Discoverer

「Prometheus服務(wù)發(fā)現(xiàn)核心就是三個(gè)協(xié)程之間協(xié)作:」

「協(xié)程1:」負(fù)責(zé)運(yùn)行Discoverer接口Run方法,基于協(xié)議發(fā)現(xiàn)采集點(diǎn);「協(xié)程2:」負(fù)責(zé)將協(xié)程1發(fā)現(xiàn)的采集點(diǎn)信息更新到Manager結(jié)構(gòu)體中targets字段的map中;「協(xié)程3:」負(fù)責(zé)將Manager結(jié)構(gòu)體中targets字段的數(shù)據(jù)通過通道發(fā)送給scrape模塊;

scrape模塊獲取到采集點(diǎn)如何進(jìn)行數(shù)據(jù)采集后續(xù)scrape模塊分析。

監(jiān)控指標(biāo)

Prometheus服務(wù)發(fā)現(xiàn)通用指標(biāo)主要有如下5個(gè),都定義在discovery/manager.go中:

prometheus_sd_discovered_targetsprometheus_sd_failed_configsprometheus_sd_received_updates_totalprometheus_sd_updates_delayed_totalprometheus_sd_updates_total

「1、采集點(diǎn)數(shù)量指標(biāo)」

服務(wù)發(fā)現(xiàn)主要基于協(xié)議發(fā)現(xiàn)采集目標(biāo),prometheus_sd_discovered_targets指標(biāo)反饋各個(gè)job發(fā)現(xiàn)的采集目標(biāo)數(shù):

prometheus_sd_discovered_targets:gauge類型,當(dāng)前發(fā)現(xiàn)的目標(biāo)數(shù)config:job名稱name:取值scrape和notify,區(qū)分指標(biāo)抓取服務(wù)發(fā)現(xiàn)還是告警通知服務(wù)發(fā)現(xiàn)示例:prometheus_sd_discovered_targets{config="auth_es1", name="scrape"}  12

?這里基于協(xié)議發(fā)現(xiàn)的目標(biāo)數(shù),還未進(jìn)入采集模塊,并不能區(qū)分是在線還是離線。?

「2、服務(wù)發(fā)現(xiàn)協(xié)議異常錯(cuò)誤指標(biāo)」

服務(wù)發(fā)現(xiàn)會(huì)給每個(gè)發(fā)現(xiàn)配置項(xiàng)生成一個(gè)provider,并為每個(gè)provider使用協(xié)程運(yùn)行,如果基于配置項(xiàng)生成provider錯(cuò)誤就可以通過prometheus_sd_failed_configs指標(biāo)反饋:

prometheus_sd_failed_configs:gauge類型,當(dāng)前無法加載的服務(wù)發(fā)現(xiàn)配置數(shù)配置數(shù):一個(gè)job可能存在多個(gè)服務(wù)發(fā)現(xiàn)協(xié)議配置,對(duì)應(yīng)配置項(xiàng)則是多個(gè)示例:prometheus_sd_failed_configs{name="scrape"}  10prometheus_sd_failed_configs{name="notify"} 5

一個(gè)job可能對(duì)應(yīng)多個(gè)服務(wù)發(fā)現(xiàn)配置項(xiàng),如下:這個(gè)job下配置了static_configsfile_sd_configs兩個(gè)服務(wù)發(fā)現(xiàn)協(xié)議配置,則對(duì)應(yīng)兩個(gè)服務(wù)發(fā)現(xiàn)配置項(xiàng),注冊兩個(gè)provider,每個(gè)provider在獨(dú)立協(xié)程中運(yùn)行:

scrape_configs:  # The job name is added as a label `job=` to any timeseries scraped from this config.  - job_name: "test"    static_configs:    - targets: ["localhost:9090"]    file_sd_configs:    - refresh_interval: 5m      files:      - targets/manual.*.json

「3、協(xié)程交互指標(biāo)」

服務(wù)發(fā)現(xiàn)主要涉及3類協(xié)程:

Discoverer協(xié)程(多個(gè)):封裝provider,基于協(xié)議發(fā)現(xiàn)采集點(diǎn),這里可能會(huì)存在多個(gè),一個(gè)provider對(duì)應(yīng)一個(gè)Discoverer協(xié)程updater協(xié)程(1個(gè)):Discoverer協(xié)程發(fā)現(xiàn)采集點(diǎn),通過channel通道通知到updater協(xié)程updater協(xié)程將采集點(diǎn)更新到Manager結(jié)構(gòu)體targets字段中,然后向Manager結(jié)構(gòu)體triggerSend通道寫入數(shù)據(jù),告訴sender協(xié)程targets有更新;sender協(xié)程(1個(gè)):sender協(xié)程每5秒檢測triggerSend通道數(shù)據(jù),檢測到更新則將Manager結(jié)構(gòu)體targets數(shù)據(jù)處理封裝寫入到Manager結(jié)構(gòu)體syncCh通道中,scrape模塊監(jiān)測該通道,即完成將服務(wù)發(fā)現(xiàn)模塊scrape模塊交互。

這其中涉及三個(gè)指標(biāo):

prometheus_sd_received_updates_totalprometheus_sd_updates_delayed_totalprometheus_sd_updates_total

關(guān)鍵詞:

下一篇:命運(yùn)兩端:停產(chǎn)邊緣的恒馳5,即將投產(chǎn)的FF91
上一篇:最后一頁

科技

 
免费国产成人av_国产又黄又猛的视频_免费国产a级片_国产日韩一区二区在线观看_久久av喷吹av高潮av_国产亚洲视频一区_成人网站免费观看入口_91高清国产视频_www国产黄色_久久av秘一区二区三区_日本男女交配视频_免费看av软件
日韩在线观看不卡| 精品久久免费| 国产精品视区| 亚洲伦乱视频| 麻豆久久久久久| 视频一区二区三区在线| 亚洲成人不卡| 成人精品久久| 国产videos久久| 精品视频在线观看网站| 91福利精品在线观看| 一区二区三区国产盗摄| 久久高清国产| 久久xxxx精品视频| 亚洲精品午夜av福利久久蜜桃| av资源亚洲| 久久中文字幕av| 欧美日韩精品免费观看视欧美高清免费大片| 91在线成人| 欧美国产先锋| av中文资源在线资源免费观看| 国产精品黄网站| 国产精品tv| 精品国产不卡一区二区| 久久久久久色| 日韩国产高清在线| 日韩精品免费视频一区二区三区| 蜜桃视频免费观看一区| 综合激情视频| 91精品丝袜国产高跟在线| 亚洲字幕久久| 国产亚洲高清在线观看| 久久99影视| 天堂√8在线中文| 亚洲国产一区二区在线观看| 美女精品在线观看| 国产亚洲一区二区三区啪| 精品亚洲a∨一区二区三区18| 欧美韩日一区| 99精品99| 国产精品久久乐| 亚洲成人不卡| 中文字幕日本一区二区| 国产精品sm| 欧美.日韩.国产.一区.二区| 免费在线观看精品| 国产精品白丝一区二区三区| 国产 日韩 欧美 综合 一区| 亚洲福利精品| 日韩av一区二| 亚洲福利国产| 麻豆国产欧美一区二区三区| 久久亚洲专区| 国产精品亚洲人成在99www| 99国产精品免费视频观看| 亚洲最新av| 日韩免费高清| 日本aⅴ免费视频一区二区三区| 国产一区二区三区成人欧美日韩在线观看| 精品三级久久| 国产精品v亚洲精品v日韩精品| 久久精品不卡| 日韩欧美在线精品| 天堂中文在线播放| 日韩av资源网| 午夜一级在线看亚洲| 中国字幕a在线看韩国电影| 一区二区三区国产在线| 久久国产免费| 国产麻豆一区| 国产婷婷精品| 日韩欧美一区二区三区在线视频| 91亚洲无吗| 亚洲一区有码| 五月天激情综合网| 热三久草你在线| 国产免费播放一区二区| 欧美中文字幕| 欧美日韩国产一区二区三区不卡| 激情中国色综合| 欧美亚洲综合视频| 蜜桃一区二区三区在线观看| 国产真实久久| 欧美午夜精彩| 91精品蜜臀一区二区三区在线| 国产精品任我爽爆在线播放| 蜜桃久久精品一区二区| 亚洲性色视频| 婷婷成人综合| 亚洲五月婷婷| 国产综合激情| 久久婷婷av| 久久中文字幕av一区二区不卡| 亚洲精品福利电影| 国产传媒在线| 蜜臀国产一区| 久久婷婷av| 欧美日韩一二三四| 亚洲欧美一区在线| 亚洲免费激情| 久久中文字幕av| 在线视频精品| 日韩一区精品字幕| 亚洲日韩视频| 国产黄色一区| 大香伊人久久精品一区二区| 92国产精品| 激情五月综合网| 免费日韩视频| 国产精品久久久免费| 国产精品观看| 色欧美自拍视频| 欧美日韩精品免费观看视欧美高清免费大片 | 久久亚洲欧美| 免费在线观看视频一区| 日韩三级久久| 美女性感视频久久| 日韩在线观看不卡| 欧美日韩精品免费观看视频完整| 久久亚洲不卡| 精品福利久久久| 亚洲精品网址| 日韩高清电影免费| 日本一区二区免费高清| 久久亚洲国产| 日韩精品高清不卡| 亚洲深夜视频| 亚洲久久一区| 欧美日韩尤物久久| 少妇精品在线| 久久免费国产| 国产欧美一区二区三区精品观看| 亚洲啊v在线| 中文字幕一区二区av| 97精品中文字幕| 日韩视频一二区| 一本大道色婷婷在线| 久久国产精品毛片| 成人午夜在线| 日本成人中文字幕在线视频| 中国字幕a在线看韩国电影| 在线视频亚洲欧美中文| 亚洲伦乱视频| 国产精品久久久久久模特| 影音国产精品| 国产一区调教| 亚洲另类av| 99精品视频精品精品视频| 日韩精品免费视频一区二区三区| 久久九九精品| 国产乱人伦精品一区| 中文日韩在线| 99国产精品免费视频观看| 青青草伊人久久| 午夜亚洲精品| 女人天堂亚洲aⅴ在线观看| 九九99久久精品在免费线bt| 蜜桃视频一区二区| 欧美日韩高清| 国产精品99免费看| 精品一二三区| 国产九九精品| 综合亚洲视频| 国产美女精品| 欧美+亚洲+精品+三区| 亚洲啊v在线| 久久精品一本| 国产精品1区在线| 国产精品第一| 国产视频一区二区在线播放| 国产农村妇女精品一区二区| 99久久夜色精品国产亚洲1000部| 国产精品2023| 国产欧美日韩精品高清二区综合区| 免费在线观看精品| 蜜臀av亚洲一区中文字幕| 99精品99| 免费精品视频最新在线| 婷婷成人在线| 蜜桃视频欧美| 国产精品毛片一区二区三区| 亚洲激情精品| 久久亚洲色图| 亚洲尤物av| 久久激情av| 国产一区二区三区日韩精品| 黄毛片在线观看| 久久精品亚洲欧美日韩精品中文字幕| 久久精品亚洲欧美日韩精品中文字幕| 日韩精品永久网址| 国产一区日韩欧美| 亚洲精选91| 精品久久美女| 日韩欧美二区| 亚洲欧美日本国产专区一区| 偷拍亚洲精品| 成人一区而且| 好吊一区二区三区| 亚洲精选91| 丁香婷婷久久|