導航:首頁 > 編程語言 > javayaml解析

javayaml解析

發布時間:2024-11-11 19:51:17

『壹』 ApkTool可以成功反編譯APK,但是回編譯總是失敗

打開要編譯文件夾目錄下的 apktool.yml,修改apkFileName參數為 非中文,問題可以解決

『貳』 瓚呰秺XML鍜孞SON錛歒AML錛孞ava寮鍙戜漢鍛樼殑鏂伴夋嫨

銆銆 涓篔ava寮鍙戣呭簹AML鏂囦歡鏍煎紡鍋氫竴涓楂樼駭浠嬬粛 鎵懼嚭瀹冧笌XML鍜孞SON鐨勪笉鍚屼箣澶 騫舵楠屽畠鐨勪紭瓚婃у拰緙洪櫡

銆銆鎵鏈夊姩鎬佽璦錛堝俁uby Groovy python絳夛級鍙婂叾鐩稿叧鐨勬嗘灦錛堝俁uby on rails錛夌櫨瀹朵簤楦 灝界¢槄璇繪湰鏂囩殑澶ч儴鍒咼ava寮鍙戣呮瘡澶╃殑澶у氭暟宸ヤ綔閮芥槸澶勭悊綰綺圭殑java 涓旀湭鏉ュ氬勾閮藉皢濡傛 浣嗚繖騫朵笉鎰忓懗鐫浠栦滑涓嶈兘瀛︿範鏂扮殑鐭ヨ瘑 鍦ㄤ粬浠鐨勫叺鍣ㄥ簱涓娣誨姞鏂扮殑鍏靛櫒 鏈鏂囦粙緇峐AML錛圷AML涓嶆槸鏍囪拌璦鐨勭畝鍐欙級鏂囦歡鏍煎紡錛堜嬌鐢≧uby on rails妗嗘灦榪涜岃茶В 鍥犱負瀹冩墍鏈夌殑閰嶇疆鏂囦歡閮芥槸浣跨敤鐨刌AML錛変互鍙婂畠涓嶺ML鍜孞SON鐨勫尯鍒 鏈鍚庤ㄨ轟簡YAML鐨勪紭鍔垮拰緙虹偣

銆銆 絀烘牸緙╄繘鍜孞SON閫夐」

銆銆YAML鏂囦歡鏍煎紡涓昏侀泦涓浜庣┖鏍肩緝榪涚殑姒傚康 瀹冪敤浜庢寚鍑烘暟鎹鐨勫眰嬈$粨鏋 鈥 鑰屼笉鏄浣跨敤XML宓屽楁爣璁版垨JSON鐨勫ぇ鎷鍙鳳紙{}錛夊拰鏂規嫭鍙鳳紙[]錛 瀹為檯涓 瀹冩槸JSON鐨勪竴涓瓚呴泦 鍥犳 鍦ㄤ嬌鐢ㄧ殑鏃跺 浣犲彲鑳介渶瑕侀噰鐢↗SON椋庢牸鐨勮娉曟潵璺沖嚭絀烘牸嫻 瀹冪殑鍒涘嬩漢灝嗗叾褰㈠逛負 涓烘墍鏈夌紪紼嬭璦鎻愪緵浜烘у寲鐨勬暟鎹搴忓垪鍖栨爣鍑 浠ユ垜鐨勭粡楠屾潵鐪 鍏墮噸鐐規槸浜烘у寲 涓嬮潰鏄涓涓浣跨敤絀烘牸緙╄繘鐨刌AML鏍蜂緥 鍒涘緩YAML鏂囦歡鏃朵笉瀹滀嬌鐢ㄥ滻瀹氬藉害瀛椾綋 鍥犱負絀烘牸鏄寰堝叧閿鐨 錛堝弬鑰冧晶杈規爮 YAML鍜屾爣絳

銆銆JFrame: defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame width: height: ponents: JTextArea: name: textArea text: | This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that JButton: name: button text: Button

銆銆 渚ц竟鏍 YAML鍜屾爣絳 鍩轟簬絀烘牸緙╄繘鐨勪換涓鏂囦歡鏍煎紡鏈甯歌佺殑闂棰樹箣涓鏄濡備綍瑙i噴鏍囩 鍦ㄨ繖涓猋AML渚嬪瓙涓 絳旀堢浉褰撶畝鍗 瀹冧笉鏀鎸佹爣絳 浣跨敤鏍囩懼瓧絎︾緝榪涗唬鏇跨┖鏍煎皢浼氬艱嚧澶勭悊寮傚父

銆銆闅忎綘鍠滄 浣犲彲浠ュ湪浠諱綍鑺傜偣浣跨敤JSON椋庢牸璇娉曟垨娣峰悎璇娉 渚嬪 涓婇潰鐨勪緥瀛愬彲鏀逛負

銆銆JFrame: defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame width: height: ponents: JTextArea: name: textArea text: | This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that JButton: {name: button text: Button } #JSON椋庢牸璇娉

銆銆鍦ㄥ簳灞傝妭鐐癸紙鍗沖畠浠娌℃湁瀛愯妭鐐 姝e備綘鐚滄祴鐨勯偅鏍 浜曞彿閿鍦╕AML涓鏄鐢ㄦ潵娉ㄩ噴鐨勶級鍒囨崲浣跨敤JSON椋庢牸璇娉曟樉寰楃壒鍒鏈夌敤

銆銆 YAML緇撴瀯緇勪歡

銆銆鍓嶉潰宸茬粡鐪嬩簡涓涓綆鍗曠殑YAML渚嬪瓙 涓嬮潰璁╂垜浠涓璧鋒潵浜嗚В涓涓媃AML鐨勭粨鏋 hash list 鍜宐lock literal

銆銆 hash錛堟暎鍒楋級

銆銆閫氳繃緙╄繘瀛愭靛拰鍦ㄥ叧閿瀛椾笌鍊間箣闂翠嬌鐢ㄥ啋鍙鳳紙:錛夋潵鍒嗗壊瀹炵幇hash鐨勫壋寤 濡

銆銆JFrame: defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame width: height:

銆銆榪樻湁涓縐嶆柟娉曞氨鏄浣跨敤涓嶫SON鍏煎圭殑澶ф嫭鍙瘋娉曪紙{}錛夎娉 姣忎竴瀵瑰叧閿瀛/鍊間嬌鐢ㄩ楀彿錛 錛夊垎鍓 濡

銆銆JFrame: {defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame

銆銆width: height: }

銆銆 list錛堟竻鍗曪級

銆銆閫氳繃鍦ㄦ瘡涓猯ist鍏冪礌鍓嶆斁涓涓鍑忓彿錛 錛夋潵鍒涘緩list 涓庣┖鏍肩緝榪涗竴璧鋒瀯鎴愪簡YAML鐨勫熀鐭

銆銆ponents: JTextArea Jbutton

銆銆榪樻湁涓縐嶆柟娉曞氨鏄浣跨敤JSON鍏煎圭殑鏂規嫭鍙鳳紙[]錛夎娉 濡

銆銆ponents: [JTextArea JButton]

銆銆 block literal錛堟枃瀛楀潡錛

銆銆榪欐槸YAML鐨勪寒鐐 鐗瑰埆鏄涓嶺ML鐩告瘮 瀹冪殑CDATA鏄懼緱鐩稿綋綆闄 block literal鍙浠ュ皢澶у潡鏂囨湰緇嗚嚧鍦版彃鍏ユ枃浠朵腑 浣犲彲浠ヤ嬌鐢ㄧ珫綰匡紙|錛夋寚浠ゅ湪浣犵殑鏂囨湰涓淇濈暀鏂拌 濡

銆銆text: | This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that

銆銆YAML緙栬瘧鍣ㄥ皢浼氫粠絎涓琛岀殑絎涓涓鏂囨湰瀛楃﹀紑濮嬬紪璇戱紙騫朵涪鎺夋墍鏈夌殑緙╄繘絀烘牸錛 浣嗘槸浼氬湪浣犵殑鏂囨湰涓淇濈暀鏂拌

銆銆鍙﹀ 浣犺繕鍙浠ヤ嬌鐢ㄥぇ浜庣﹀彿錛>錛夊憡璇塝AML緙栬瘧鍣ㄧ粰鎵鏈夋柊琛屽姞涓婃潯綰 騫跺皢杈撳叆鐨勬枃鏈浣滀負涓涓闀胯屽勭悊

銆銆text: > This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that

銆銆闄や簡榪欎袱涓鎸囦護涔嬪 浣犺繕鍙浠ヤ嬌鐢ㄧ珫綰垮拰鍔犲彿錛坾+錛 瀹冪粰浣嶄簬鍓嶉潰鐨勭┖鏍煎姞涓婃潯綰 淇濈暀鏂拌屽拰鏈灝劇殑絀烘牸 榪樺彲浠ヤ嬌鐢ㄥぇ浜庡彿鍜屽噺鍙鳳紙> 錛 瀹冪粰鎵鏈夌殑絀烘牸鍔犱笂鏉$汗

銆銆 YAML VS XML鍜孞SON

銆銆姝e備綘浠庡墠闈渚嬪瓙涓娓呮氬湴鐪嬪埌閭f牱 YAML娌℃湁XML閭d箞鍟板棪浜 澶ч儴鍒哬AML鏂囦歡鍐呭瑰氨鏄鐪熷疄鐨勬暟鎹 娌℃湁浜嗘棤絀峰敖鐨勬墦寮鍜屽叧闂鏍囪板垪琛 鍦╔ML涓 榪欎簺鏍囪板線寰姣斿畠浠鎻忚堪鐨勬暟鎹榪樺ぇ YAML鏇撮傚悎浣犻渶瑕佹墜宸ョ淮鎶ょ殑鏁版嵁鏂囦歡綾誨瀷

銆銆YAML娌℃湁鎻愪緵鏂規堟垨DTD姒傚康 鍥犳ゆ棤娉曢獙璇佹枃浠舵牸寮忔槸鍚︾﹀悎浣犵殑棰勬湡 XML鐨勫暟鍡︿篃鏈夊畠鐨勪環鍊 浣嗘葷殑璇存潵鏄鍥犱負XML鐨勬垚鐔熶嬌瀹冨叿鏈夊ぇ閲忛濆栫殑宸ュ叿鏉ラ獙璇佸畠鐨勬牸寮 鑰孻AML榪樻病鏈

銆銆JSON涔熼傚悎涓庝換浣曟暟鎹 瀹冧富瑕侀潰鍚戞彁楂樻ц兘鍜屾枃浠跺昂瀵哥殑澶у皬 鍥犱負瀹冨嚑涔庝笉浣跨敤絀烘牸鍜屽叧闂鏍囩 鐒惰 JSON鏂囦歡鐨勫唴瀹瑰炲姞浜嗗嶆潅鎬 瀹冪殑鍏抽棴鏍囪瘑灝辮薄涓嬪湴鐙變竴鏍 榪欏氨鏄疛avaFx浠g爜錛堝畠鍩轟簬JSON錛変腑鍙瑙佺殑鏈鐥涜嫤鐨勪簡 鍦ㄦ暟鎹鏂囦歡涓 浣跨敤UI緇撴瀯浣跨粨鏋滄洿澶嶆潅 鍏跺嶆潅紼嬪害鍑犱箮浣挎枃浠跺彉寰楁棤娉曠悊瑙

銆銆鏌ョ湅鐨凧avaFx紺轟緥浠g爜錛堢偣鍑 Edit this page 閾炬帴錛 璇風壒鍒鐣欏績瀹冩槸濡備綍緇撴潫鐨

銆銆

銆銆} } } } ] } } center: bookPanel }

銆銆鎺哄拰浜唟}緇撴瀯鍜孾]娓呭崟 浣垮緱鎵嬪伐緇存姢澶у瀷鐨凧SON椋庢牸鐨勬枃浠跺彉寰楃浉褰撳洶闅 YAML浣跨敤瀹冪殑絀烘牸緙╄繘鏂規硶宸у欏湴瑙e喅浜嗚繖涓闂棰 褰撶劧 鏃犺轟綍鏃 浣犻兘鍙浠ュ垏鎹㈠埌JSON椋庢牸鐨勮娉曪紙濡傚湪搴曞眰鑺傜偣錛

銆銆瑙f瀽YAML鏂囦歡鏈甯哥敤鐨凧ava搴撴槸JvYAML錛堬級 JRuby錛堝湪Java VM涓婅繍琛屽姩鎬佽璦鐨凴uby鐗堟湰錛夊湪瀹冪殑Ruby on Rails妗嗘灦涓鐨勮繘鍑哄彛浣跨敤JvYAML JvYAML鎻愪緵浜嗘枃浠朵竴鑸澶勭悊鐨勫姛鑳斤紙鍦ㄥ墠闈㈤偅涓渚嬪瓙涓 瀹冭繑鍥炰簡涓涓鏍囧噯Java瀛楃︿覆 Long Map鍜孡ist瀵硅薄鐨勫祵濂椾綋緋葷粨鏋勶級 浣跨敤闈欐乨ump()鏂規硶淇濆瓨涓烘枃浠 鐒跺悗浣跨敤闈欐乴oad()鏂規硶杞藉叆 渚嬪

銆銆

銆銆YAML mp(Object data Writer output); Object data = YAML load(Reader io);

銆銆鍙傝冧晶杈規爮 鍩轟簬YAML鐨勫紑婧愰」鐩浜嗚В鍏充簬鍩轟簬YAML鐨勫紑婧愰」鐩淇℃伅 浠ュ強濡備綍鍦↗ava涓瑁呭叆涓涓璇存槑鐨刄I

銆銆 渚ц竟鏍 鍩轟簬YAML鐨勫紑婧愰」鐩 璇峰師璋呮垜鍦ㄨ繖閲屽帤鑴哥毊鍦頒粙緇嶆垜浠鑷宸辯殑寮婧愰」鐩 褰撴垜鐪熺殑涓嶇煡閬撻櫎浜咼Ruby澶栧叾浠栫殑鍩轟簬YAML鐨勫紑婧愰」鐩 JRuby鐨凴uby on Rails妗嗘灦瀹炵幇涓ラ噸渚濊禆YAML 鑰屼笉鏄疿ML鎴朖SON 鐪嬬湅鎴戠殑Java Builder搴撳惂錛堬級 瀹冨埄鐢╕AML鏂囦歡鎻愪緵浜嗕竴縐嶆柟娉曞畾涔夊睆騫曟帶鍒 甯冨矓 浜嬩歡綰胯礬鍜屾暟鎹緇戝畾 浠ュ疄鐜板皢璇存槑UI瑁呭叆Java

銆銆瀹為檯涓 YAML鏂囦歡鐪熺殑闈炲父綆鍗 鐢氳嚦浣犲彲浠ヤ嬌鐢ㄤ換浣曠殑鏂囨湰緙栬緫鍣ㄩ兘鍙浠ョ淮鎶ゅ畠 浣嗘湁浜涗笓闂ㄧ殑鏂囨湰緙栬緫鍣ㄦ彁渚涗簡璇娉曞姞浜鍔熻兘 榪欏圭淮鎶ゅ伐浣滃緢鏈夊府鍔 瀵笶clipse鑰岃█ 鏈塃clipse YAML editor錛堬級 瀵筃etBeans鑰岃█ 浣犲彲浠ヤ嬌鐢ㄦ潵鑷猂uby鍖咃紙錛夌殑YAML緙栬緫鍣 鐒惰 鍦∟etBeans 涓鐨刌AML緙栬緫鍣ㄥ苟娌℃湁浠涔堢敤澶 瀹冨彧鏀鎸乊AML寰堝皬鐨勪竴涓瀛愰泦錛堜緥濡 瀹冧笉鏀鎸乥lock literal錛 甯屾湜鍦∟etBeans 涓鐨刌AML緙栬緫鍣ㄨВ鍐充簡榪欎釜闂棰

銆銆鎴戞病鏈夋満浼氭祴璇旾ntelliJ IDEA 浣嗘垜鎺ㄦ祴瀹冪殑Ruby on Rails鎻掍歡錛+IDEA+Ruby+Plugin錛夐檮甯︿簡YAML緙栬緫鍣

銆銆 娣誨姞YAML宸ュ叿

lishixin/Article/program/Java/JSP/201311/19416

『叄』 【實踐】2.Prometheus命令和配置詳解

Prometheus配置方式有兩種:
(1)命令行,用來配置不可變命令參數,主要是Prometheus運行參數,比如數據存儲位置
(2)配置文件,用來配置Prometheus應用參數,比如數據採集,報警對接

不重啟進程配置生效方式也有兩種:
(1)對進程發送信號SIGHUP
(2)HTTP POST請求,需要開啟--web.enable-lifecycle選項curl -X POST http://192.168.66.112:9091/-/reload

配置文件格式是yaml格式,說明:
.yml或者.yaml 都是 yaml格式的文件,
yaml格式的好處: 和json交互比較容易
python/go/java/php 有yaml格式庫,方便語言之間解析,並且這種格式存儲的信息量很大。

命令行可用配置可通過prometheus -h來查看。

配置文件使用yml格式,配置文件中一級配置項如下,說明參考#備注內容。

配置文件中通用欄位值格式
<boolean>: 布爾類型值為true和false
<scheme>: 協議方式包含http和https

原始配置文件內容:

全局默認的數據拉取間隔

全局默認的單次數據拉取超時,當報context deadline exceeded錯誤時需要在特定的job下配置該欄位。

全局默認的規則(主要是報警規則)拉取間隔

該服務端在與其他系統對接所攜帶的標簽

該欄位配置與Alertmanager進行對接的配置
樣例:

上面的配置中的 alert_relabel_configs 是指警報重新標記在發送到Alertmanager之前應用於警報。 它具有與目標重新標記相同的配置格式和操作,外部標簽標記後應用警報重新標記,主要是針對集群配置。

這個設置的用途是確保具有不同外部label的HA對Prometheus服務端發送相同的警報信息。

Alertmanager 可以通過 static_configs 參數靜態配置,也可以使用其中一種支持的服務發現機制動態發現,我們上面的配置是靜態的單實例。

此外, relabel_configs 允許從發現的實體中選擇 Alertmanager,並對使用的API路徑提供高級修改,該路徑通過 __alerts_path__ 標簽公開。

完成以上配置後,重啟Prometheus服務,用以載入生效,也可以使用熱載入功能,使其配置生效。然後通過瀏覽器,訪問 http://192.168.1.220:19090/alerts 就可以看 inactive pending firing 三個狀態,沒有警報信息是因為我們還沒有配置警報規則 rules 。

這里定義和prometheus集成的alertmanager插件,用於監控報警。後續會單獨進行alertmanger插件的配置、配置說明、報警媒介以及route路由規則記錄。

此項配置和 scrape_configs 欄位中 relabel_configs 配置一樣,用於對需要報警的數據進行過濾後發向 Alertmanager

說明
relabel-configs的配置允許你選擇你想抓取的目標和這些目標的標簽是什麼。所以說如果你想要抓取這種類型的伺服器而不是那種,可以使用relabel_configs

相比之下,metric_relabel_configs是發生在抓取之後,但在數據被插入存儲系統之前使用。因此如果有些你想過濾的指標,或者來自抓取本身的指標(比如來自/metrics頁面)你就可以使用metric_relabel_configs來處理。

該項目主要用來配置不同的 alertmanagers 服務,以及Prometheus服務和他們的鏈接參數。 alertmanagers 服務可以靜態配置也可以使用服務發現配置。Prometheus以pushing 的方式向alertmanager傳遞數據。

alertmanager 服務配置和target配置一樣,可用欄位如下

這個主要是用來設置告警規則,基於設定什麼指標進行報警(類似觸發器trigger)。這里設定好規則以後,prometheus會根據全局global設定的evaluation_interval參數進行掃描載入,規則改動後會自動載入。其報警媒介和route路由由alertmanager插件實現。
樣例:

"first_rules.yml"樣例:

Prometheus 支持兩種類型的 Rules ,可以對其進行配置,然後定期進行運算:recording rules 記錄規則 與 alerting rules 警報規則,規則文件的計算頻率與警報規則計算頻率一致,都是通過全局配置中的 evaluation_interval 定義。

不論是recording rules還是alerting rules都要在組裡面。

要在Prometheus中使用Rules規則,就必須創建一個包含必要規則語句的文件,並讓Prometheus通過Prometheus配置中的rule_files欄位載入該文件,前面我們已經講過了。 其實語法都一樣,除了 recording rules 中的收集的指標名稱 record: <string> 欄位配置方式略有不同,其他都是一樣的。

配置範例:

recording rules 是提前設置好一個比較花費大量時間運算或經常運算的表達式,其結果保存成一組新的時間序列數據。當需要查詢的時候直接會返回已經計算好的結果,這樣會比直接查詢快,同時也減輕了PromQl的計算壓力,同時對可視化查詢的時候也很有用,可視化展示每次只需要刷新重復查詢相同的表達式即可。

在配置的時候,除卻 record: <string> 需要注意,其他的基本上是一樣的,一個 groups 下可以包含多條規則 rules ,Recording 和 Rules 保存在 group 內,Group 中的規則以規則的配置時間間隔順序運算,也就是全局中的 evaluation_interval 設置。

配置範例:

上面的規則其實就是根據 record 規則中的定義,Prometheus 會在後台完成 expr 中定義的 PromQL 表達式周期性運算,以 job 為維度使用 sum 聚合運算符 計算 函數rate 對http_requests_total 指標區間 10m 內的增長率,並且將計算結果保存到新的時間序列 job:http_requests_total:rate10m 中, 同時還可以通過 labels 為樣本數據添加額外的自定義標簽,但是要注意的是這個 lables 一定存在當前表達式 Metrics 中。

模板是在警報中使用時間序列標簽和值展示的一種方法,可以用於警報規則中的注釋(annotation)與標簽(lable)。模板其實使用的go語言的標准模板語法,並公開一些包含時間序列標簽和值的變數。這樣查詢的時候,更具有可讀性,也可以執行其他PromQL查詢 來向警報添加額外內容,ALertmanager Web UI中會根據標簽值顯示器警報信息。

{{ $lable.<lablename>}} 可以獲取當前警報實例中的指定標簽值

{{ $value }} 變數可以獲取當前PromQL表達式的計算樣本值。

調整好rules以後,我們可以使用 curl -XPOST http://localhost:9090/-/reload 或者 對Prometheus服務重啟,讓警報規則生效。

這個時候,我們可以把閾值調整為 50 來進行故障模擬操作,這時在去訪問UI的時候,當持續1分鍾滿足警報條件,實際警報狀態已轉換為 Firing,可以在 Annotations中看到模板信息 summary 與 description 已經成功顯示。

規則檢查

拉取數據配置,在配置欄位內可以配置拉取數據的對象(Targets),job以及實例

定義job名稱,是一個拉取單元。每個job_name都會自動引入默認配置如

這些也可以在單獨的job中自定義

服務端拉取過來的數據也會存在標簽,配置文件中也會有標簽,這樣就可能發生沖突。

true就是以抓取數據中的標簽為准
false就會重新命名抓取數據中的標簽為「exported」形式,然後添加配置文件中的標簽

切換抓取數據所用的協議

定義可選的url參數

每次抓取數據請求的認證信息

password和password_file互斥只可以選擇其一

bearer_token和bearer_token_file互斥只可以選擇其一

抓取ssl請求時證書配置

通過代理去主去數據

Prometheus支持多種服務現工具,詳細配置這里不再展開

更多參考官網: https://prometheus.io/docs/prometheus/latest/configuratio n/configuration/

服務發現來獲取抓取目標為動態配置,這個配置項目為靜態配置,靜態配置為典型的targets配置,在改配置欄位可以直接添加標簽

採集器所採集的數據都會帶有label,當使用服務發現時,比如consul所攜帶的label如下:

這些lable是數據篩選與聚合計算的基礎。

抓取數據很繁雜,尤其是通過服務發現添加的target。所以過濾就顯得尤為重要,我們知道抓取數據就是抓取target的一些列metrics,Prometheus過濾是通過對標簽操作操現的,在欄位relabel_configs和metric_relabel_configs裡面配置,兩者的配置都需要relabel_config欄位。該欄位需要配置項如下

target配置示例

target中metric示例

target中metric示例

使用示例
由以上可知當使用服務發現consul會帶入標簽__meta_consul_dc,現在為了表示方便需要將該標簽變為dc

需要做如下配置,這裡面action使用的replacement

過濾採集target

為了防止Prometheus服務過載,使用該欄位限制經過relabel之後的數據採集數量,超過該數字拉取的數據就會被忽略

Prometheus可以進行遠程讀/寫數據。欄位remote_read和remote_write

(1)Prometheus 配置詳解
https://www.dazhuanlan.com/2019/12/12/5df11ada207ce/
(2)Prometheus配置文件prometheus.yml 四個模塊詳解
http://www.21yunwei.com/archives/7321
(3)官方文檔說明
https://prometheus.io/docs/prometheus/latest/configuration/configuration/
(4)Prometheus監控神器-Rules篇
https://zhuanlan.hu.com/p/179295676
(5)Prometheus監控神器-Alertmanager篇(1)
https://zhuanlan.hu.com/p/179292686
(6)Prometheus監控神器-Alertmanager篇(2)
https://zhuanlan.hu.com/p/179294441

『肆』 5大最新雲原生鏡像構建工具全解析,3個來自Google,你了解幾個

在雲原生時代,鏡像構建和持續集成、安全緊密相連,為開發環境和生產環境的無縫協作提供了關鍵支撐。雲原生技術的核心,即容器化和Kubernetes編排,旨在簡化部署流程,確保環境一致性、穩定性和安全性。開發者如今追求的是無需Dockerfile的無縫構建,以滿足環境共享、質量控制和企業對製品安全的高要求。


1. Google的KO工具


專為Golang開發者打造的KO,整合了Kubernetes的強大功能,只需一個命令即可完成鏡像構建和部署。它支持K8s yaml,包括live server在內的開發體驗優化,得益於基礎鏡像distroless的有力支持,使得環境一致性易於實現。


2. 簡化與便利


KO支持go mole,通過鏡像地址和二進制文件名構建,無需docker daemon,這讓Java開發者也有了一站式的解決方案,如Jib,雖易用但未全面集成K8s。然而,這些工具在安全性和便利性間尋找平衡,如S2I(Red Hat的簡化方案),盡管支持多種語言,但其復雜性要求用戶具備一定的學習成本。


3. Kaniko與Makisu


谷歌的Kaniko是Dockerfile構建工具中的翹楚,無需docker daemon,支持多registry,利用本地緩存提升效率。而Uber的Makisu則強調優化,可直接載入到daemon,但存儲在國外,對某些構建上下文支持有限。每個工具都有其優勢和局限,選擇取決於團隊的技術棧和特定場景。


4. 選擇與策略


團隊在選擇雲原生鏡像構建工具時,通常會傾向於容器化最佳實踐,藉助開源社區資源,同時關註定製需求和最終交付的高質量。比如,Kaniko適用於廣泛場景,而Makisu在處理大型鏡像優化方面表現卓越。


總結來說,Docker和Kubernetes的部署雖然相對直觀,但選擇哪種工具需考慮語言支持、團隊需求以及安全性和效率之間的權衡。對於特定場景,如非Dockerfile構建或者對語言支持有特殊要求,S2I可能是一個選項,但可能需要額外的團隊維護。而Kaniko和Makisu則提供了不同的選擇,以適應不同的項目需求和團隊策略。

閱讀全文

與javayaml解析相關的資料

熱點內容
java視頻錄制 瀏覽:754
口頭指派式命令 瀏覽:470
php開發工程師面試題 瀏覽:954
linux內核源碼pdf 瀏覽:66
mc命令方塊怎麼提取 瀏覽:367
有關程序員的五大魔咒你中了幾個 瀏覽:204
本地文件如何上傳linux伺服器 瀏覽:17
傳奇資源網站源碼 瀏覽:377
f26app怎麼下載 瀏覽:120
程序員與酒 瀏覽:439
php政府網站源碼 瀏覽:912
前端面試常問演算法 瀏覽:153
pythonopen可以打開文件夾嗎 瀏覽:635
不銹鋼加密網帶廠家 瀏覽:347
哪一年除夕不演算法定節假日 瀏覽:40
程序員對鍵盤的需求 瀏覽:605
程序員的崢嶸歲月 瀏覽:58
python調用類裡面的函數 瀏覽:473
pre加密頭發醫院 瀏覽:547
優先順序高服務演算法 瀏覽:840