chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

vivo服務(wù)端監(jiān)控架構(gòu)設(shè)計與實踐

PLC工控專欄 ? 來源:加密狗破解 ? 作者:加密狗破解 ? 2022-02-22 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當(dāng)今時代處在信息大爆發(fā)的時代,信息借助互聯(lián)網(wǎng)的潮流在全球自由的流動,產(chǎn)生了各式各樣的平臺系統(tǒng)和軟件系統(tǒng),越來越多的業(yè)務(wù)也會導(dǎo)致系統(tǒng)的復(fù)雜性。

當(dāng)核心業(yè)務(wù)出現(xiàn)了問題影響用戶體驗,開發(fā)人員沒有及時發(fā)現(xiàn),發(fā)現(xiàn)問題時已經(jīng)為時已晚,又或者當(dāng)服務(wù)器的CPU持續(xù)增高,磁盤空間被打滿等,需要運(yùn)維人員及時發(fā)現(xiàn)并處理,這就需要一套有效的監(jiān)控系統(tǒng)對其進(jìn)行監(jiān)控和預(yù)警。

如何對這些業(yè)務(wù)和服務(wù)器進(jìn)行監(jiān)控和維護(hù)是我們開發(fā)人員和運(yùn)維人員不可忽視的重要一環(huán),這篇文章全篇大約5000多字,我將對vivo服務(wù)端監(jiān)控的原理和架構(gòu)演進(jìn)之路做一次系統(tǒng)性整理,以便大家做監(jiān)控技術(shù)選型時參考。

vivo服務(wù)端監(jiān)控旨在為服務(wù)端應(yīng)用提供包括系統(tǒng)監(jiān)控、JVM監(jiān)控以及自定義業(yè)務(wù)指標(biāo)監(jiān)控在內(nèi)的一站式數(shù)據(jù)監(jiān)控,并配套實時、多維度、多渠道的告警服務(wù),幫助用戶及時掌握應(yīng)用多方面狀態(tài),事前及時預(yù)警發(fā)現(xiàn)故障,事后提供詳實的數(shù)據(jù)用于追查定位問題,提升服務(wù)可用性。目前vivo服務(wù)端監(jiān)控累計接入業(yè)務(wù)方數(shù)量達(dá)到200+,本文介紹的是服務(wù)端監(jiān)控,我司還有其他類型的優(yōu)秀監(jiān)控包括通用監(jiān)控、調(diào)用鏈監(jiān)控和客戶端監(jiān)控等。

1.1 監(jiān)控系統(tǒng)的基本流程

無論是開源的監(jiān)控系統(tǒng)還是自研的監(jiān)控系統(tǒng),整體流程都大同小異。

1)數(shù)據(jù)采集:可以包括JVM監(jiān)控數(shù)據(jù)如GC次數(shù),線程數(shù)量,老年代和新生代區(qū)域大?。幌到y(tǒng)監(jiān)控數(shù)據(jù)如磁盤使用使用率,磁盤讀寫的吞吐量,網(wǎng)絡(luò)的出口流量和入口流量,TCP連接數(shù);業(yè)務(wù)監(jiān)控數(shù)據(jù)如錯誤日志,訪問日志,視頻播放量,PV,UV等。

2)數(shù)據(jù)傳輸:將采集的數(shù)據(jù)以消息形式或者 HTTP 協(xié)議的形式等上報給監(jiān)控系統(tǒng)。

3)數(shù)據(jù)存儲:有使用 MySQL、Oracle 等 RDBMS 存儲的,也有使用時序數(shù)據(jù)庫OpenTSDB、InfluxDB 存儲的,還有使用 HBase 直接存儲的。

4)數(shù)據(jù)可視化:數(shù)據(jù)指標(biāo)的圖形化展示,可以是折線圖,柱狀圖,餅圖等。

5)監(jiān)控告警:靈活的告警設(shè)置,以及支持郵件、短信、IM 等多種通知通道。

1.2 如何規(guī)范的使用監(jiān)控系統(tǒng)

在使用監(jiān)控系統(tǒng)之前,我們需要了解監(jiān)控對象的基本工作原理,例如JVM監(jiān)控,我們需要清楚JVM的內(nèi)存結(jié)構(gòu)組成和常見的垃圾回收機(jī)制;其次需要確定如何去描述和定義監(jiān)控對象的狀態(tài),例如監(jiān)控某個業(yè)務(wù)功能的接口性能,可以監(jiān)控該接口的請求量,耗時情況,錯誤量等;在確定了如何監(jiān)控對象的狀態(tài)之后,需要定義合理的告警閾值和告警類型,當(dāng)收到告警提醒時,幫助開發(fā)人員及時發(fā)現(xiàn)故障;最后建立完善的故障處理體系,收到告警時迅速響應(yīng),及時處理線上故障。

二、vivo服務(wù)端監(jiān)控系統(tǒng)架構(gòu)及演進(jìn)之路

在介紹vivo服務(wù)端監(jiān)控系統(tǒng)架構(gòu)之前,先帶大家了解一下OpenTSDB時序數(shù)據(jù)庫,在了解之前說明下為什么我們會選擇OpenTSDB,原因有以下幾點:

1) 監(jiān)控數(shù)據(jù)采集指標(biāo)在某一時間點具有唯一值,沒有復(fù)雜的結(jié)構(gòu)及關(guān)系。

2)監(jiān)控數(shù)據(jù)的指標(biāo)具有隨著時間不斷變化的特點。

3)基于HBase分布式、可伸縮的時間序列數(shù)據(jù)庫,存儲層不需要過多投入精力,具有HBase的高吞吐,良好的伸縮性等特點。

4)開源,Java實現(xiàn),并且提供基于HTTP的應(yīng)用程序編程接口,問題排查快可修改。

2.1 OpenTSDB簡介

1)基于HBase的分布式的,可伸縮的時間序列數(shù)據(jù)庫,主要用途就是做監(jiān)控系統(tǒng)。譬如收集大規(guī)模集群(包括網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)、應(yīng)用程序)的監(jiān)控數(shù)據(jù)并進(jìn)行存儲和查詢,支持秒級數(shù)據(jù)采集,支持永久存儲,可以做容量規(guī)劃,并很容易地接入到現(xiàn)有的監(jiān)控系統(tǒng)里,OpenTSDB的系統(tǒng)架構(gòu)圖如下:

vivo服務(wù)端監(jiān)控架構(gòu)設(shè)計與實踐

存儲結(jié)構(gòu)單元為Data Point,即某個Metric在某個時間點的數(shù)值。Data Point包括以下部分:

Metric,監(jiān)控指標(biāo)名稱;

Tags,Metric的標(biāo)簽,用來標(biāo)注類似機(jī)器名稱等信息,包括TagKey和TagValue;

Value,Metric對應(yīng)的實際數(shù)值,整數(shù)或小數(shù);

Timestamp,時間戳。

核心存儲兩張表:tsdb和tsdb-uid。表tsdb用來存儲監(jiān)控數(shù)據(jù),如下圖:

vivo服務(wù)端監(jiān)控架構(gòu)設(shè)計與實踐

Row Key為Metric+Timestamp的小時整點+TagKey+TagValue,取相應(yīng)的字節(jié)映射組合起來;列族t下的Qualifier為Timestamp的小時整點余出的秒數(shù),對應(yīng)的值即為Value。

表tsdb-uid用來存儲剛才提到的字節(jié)映射,如下圖:

vivo服務(wù)端監(jiān)控架構(gòu)設(shè)計與實踐

圖中的“001”表示tagk=hots或者tagv=static,提供正反查詢。

2)OpenTSDB使用策略說明:

不使用OpenTSDB提供的rest接口,通過client與HBase直連;

工程端禁用compact動作的Thrd線程;

間隔10秒獲取Redis緩沖數(shù)據(jù)批量寫入OpenTSDB。

2.2OpenTSDB在實踐中需要關(guān)注的點

1)精確性問題

String value = "0.51";
float f = Float.parseFloat(value);
int raw = Float.floatToRawIntBits(f);
byte[] float_bytes = Bytes.fromInt(raw);
int raw_back = Bytes.getInt(float_bytes, 0);
double decode = Float.intBitsToFloat(raw_back);
/**
 * 打印結(jié)果:
 * Parsed Float: 0.51
 * Encode Raw: 1057132380
 * Encode Bytes: 3F028F5C
 * Decode Raw: 1057132380
 * Decoded Float: 0.5099999904632568
 */
System.out.println("Parsed Float: " + f);
System.out.println("Encode Raw: " + raw);
System.out.println("Encode Bytes: " + UniqueId.uidToString(float_bytes));
System.out.println("Decode Raw: " + raw_back);
System.out.println("Decoded Float: " + decode);

如上代碼,OpenTSDB在存儲浮點型數(shù)據(jù)時,無法知悉存儲意圖,在轉(zhuǎn)化時會遇到精確性問題,即存儲"0.51",取出為"0.5099999904632568"。

2)聚合函數(shù)問題

OpenTSDB的大部分聚合函數(shù),包括sum、avg、max、min都是LERP(linear interpolation)的插值方式,即所獲取的值存在被補(bǔ)缺的現(xiàn)象,對于有空值需求的使用很不友好。詳細(xì)原理參見OpenTSDB關(guān)于interpolation的文檔。

目前vmonitor服務(wù)端監(jiān)控使用的OpenTSDB是我們改造后的源碼,新增了nimavg函數(shù),配合自帶的zimsum函數(shù)滿足空值插入需求。

2.3vivo服務(wù)端監(jiān)控采集器原理

vivo服務(wù)端監(jiān)控架構(gòu)設(shè)計與實踐

1)定時器

內(nèi)含3種采集器:OS采集器、JVM采集器和業(yè)務(wù)指標(biāo)采集器,其中OS及JVM每分鐘執(zhí)行采集和匯聚,業(yè)務(wù)指標(biāo)采集器會實時采集并在1分鐘的時間點完成匯聚重置,3份采集器的數(shù)據(jù)打包上報至RabbitMQ,上報動作異步超時。

2)業(yè)務(wù)指標(biāo)采集器

業(yè)務(wù)指標(biāo)采集方式有2種:日志輸出過濾和工具類代碼上報(侵入式),日志輸出過濾是通過繼承l(wèi)og4j的Filter,從而獲取指標(biāo)配置中指定的Appender輸出的renderedMessage,并根據(jù)指標(biāo)配置的關(guān)鍵詞、聚合方式等信息進(jìn)行同步監(jiān)聽采集;代碼上報根據(jù)代碼中指定的指標(biāo)code進(jìn)行message信息上報,屬于侵入式的采集方式,通過調(diào)用監(jiān)控提供的Util實現(xiàn)。業(yè)務(wù)指標(biāo)配置每隔5分鐘會從CDN刷新,內(nèi)置多種聚合器供聚合使用,包括count計數(shù)、 sum求和、average平均、max最大值和min最小值統(tǒng)計。

2.4 vivo服務(wù)端監(jiān)控老版本架構(gòu)設(shè)計

vivo服務(wù)端監(jiān)控架構(gòu)設(shè)計與實踐

1)數(shù)據(jù)采集及上報:需求方應(yīng)用接入的監(jiān)控采集器vmonitor-agent根據(jù)監(jiān)控指標(biāo)配置采集相應(yīng)數(shù)據(jù),每分鐘上報1次數(shù)據(jù)至RabbitMQ,所采用的指標(biāo)配置每5分鐘從CDN下載更新,CDN內(nèi)容由監(jiān)控后臺上傳。

2)計算及存儲:監(jiān)控后臺接收RabbitMQ的數(shù)據(jù),拆解后存儲至OpenTSDB,供可視化圖表調(diào)用,監(jiān)控項目、應(yīng)用、指標(biāo)和告警等配置存儲于MySQL;通過Zookeeper和Redis實現(xiàn)分布式任務(wù)分發(fā)模塊,實現(xiàn)多臺監(jiān)控服務(wù)協(xié)調(diào)配合運(yùn)作,供分布式計算使用。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 監(jiān)控
    +關(guān)注

    關(guān)注

    6

    文章

    2357

    瀏覽量

    58967
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    10033

    瀏覽量

    90507
  • vivo
    +關(guān)注

    關(guān)注

    13

    文章

    3332

    瀏覽量

    66129
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    分布式光伏環(huán)境監(jiān)測站的技術(shù)架構(gòu)與應(yīng)用實踐

    分布式光伏環(huán)境監(jiān)測站的技術(shù)架構(gòu)與應(yīng)用實踐 柏峰【BF-GFQX】一、系統(tǒng)技術(shù)架構(gòu)解析 分布式光伏環(huán)境監(jiān)測站采用“感知層-傳輸層-應(yīng)用層”三層架構(gòu)設(shè)計,實現(xiàn)環(huán)境數(shù)據(jù)的全鏈路智能化處理。
    的頭像 發(fā)表于 10-13 10:05 ?165次閱讀
    分布式光伏環(huán)境監(jiān)測站的技術(shù)<b class='flag-5'>架構(gòu)</b>與應(yīng)用<b class='flag-5'>實踐</b>

    TensorRT-LLM的大規(guī)模專家并行架構(gòu)設(shè)

    之前文章已介紹引入大規(guī)模 EP 的初衷,本篇將繼續(xù)深入介紹 TensorRT-LLM 的大規(guī)模專家并行架構(gòu)設(shè)計與創(chuàng)新實現(xiàn)。
    的頭像 發(fā)表于 09-23 14:42 ?477次閱讀
    TensorRT-LLM的大規(guī)模專家并行<b class='flag-5'>架構(gòu)設(shè)</b>計

    Zabbix與Prometheus運(yùn)維監(jiān)控系統(tǒng)的對比

    在當(dāng)今云原生和微服務(wù)架構(gòu)盛行的時代,監(jiān)控系統(tǒng)已成為運(yùn)維工程師不可或缺的核心工具。面對市場上眾多監(jiān)控解決方案,Zabbix和Prometheus作為兩大主流選擇,各自擁有獨(dú)特的優(yōu)勢和適用
    的頭像 發(fā)表于 09-18 14:57 ?264次閱讀

    華納云:海外服務(wù)器負(fù)載均衡與高可用架構(gòu)設(shè)

    在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,海外服務(wù)器承擔(dān)著跨境業(yè)務(wù)、高并發(fā)請求和實時數(shù)據(jù)傳輸?shù)年P(guān)鍵角色。單臺服務(wù)器難以支撐大量并發(fā)請求,一旦發(fā)生故障,可能導(dǎo)致服務(wù)中斷和業(yè)務(wù)損失。因此,合理設(shè)計負(fù)載均衡與高可用架構(gòu)
    的頭像 發(fā)表于 08-28 18:32 ?399次閱讀

    深入剖析RabbitMQ高可用架構(gòu)設(shè)

    在微服務(wù)架構(gòu)中,消息隊列故障導(dǎo)致的系統(tǒng)不可用率高達(dá)27%!如何構(gòu)建一個真正可靠的消息中間件架構(gòu)?本文將深入剖析RabbitMQ高可用設(shè)計的核心要點。
    的頭像 發(fā)表于 08-18 11:19 ?630次閱讀

    蔚來模型化架構(gòu)如何大幅提升安全上限

    2024年7月,蔚來將行業(yè)首個基于模型化架構(gòu)的「自動緊急制動 AEB」推送上車,蔚來也成為了行業(yè)首家使用模型化
    的頭像 發(fā)表于 08-15 15:35 ?570次閱讀

    不用聯(lián)網(wǎng)不用編程,PLC通過智能網(wǎng)關(guān)快速實現(xiàn)HTTP協(xié)議JSON格式與MES等系統(tǒng)平臺雙向數(shù)據(jù)通訊

    智能網(wǎng)關(guān)IGT-DSER支持POST/GET/PUT等多種方法,可同時作為HTTP協(xié)議的客戶服務(wù)端。作為客戶通訊時將JSON文件提交給HTTP的服務(wù)端, 如果
    的頭像 發(fā)表于 05-13 14:40 ?788次閱讀
    不用聯(lián)網(wǎng)不用編程,PLC通過智能網(wǎng)關(guān)快速實現(xiàn)HTTP協(xié)議JSON格式與MES等系統(tǒng)平臺雙向數(shù)據(jù)通訊

    一文帶你厘清自動駕駛架構(gòu)差異

    [首發(fā)于智駕最前沿微信公眾號]隨著自動駕駛技術(shù)飛速發(fā)展,智能駕駛系統(tǒng)的設(shè)計思路也經(jīng)歷了從傳統(tǒng)模塊化架構(gòu)大模型轉(zhuǎn)變。傳統(tǒng)模塊化架構(gòu)將感知、預(yù)測、規(guī)劃和控制等子任務(wù)拆分開,分別由不
    的頭像 發(fā)表于 05-08 09:07 ?670次閱讀
    一文帶你厘清自動駕駛<b class='flag-5'>端</b>到<b class='flag-5'>端</b><b class='flag-5'>架構(gòu)</b>差異

    設(shè)備遠(yuǎn)程監(jiān)控與預(yù)測性維護(hù)系統(tǒng)架構(gòu)設(shè)計及應(yīng)用實踐

    本文探討了在工業(yè)4.0與數(shù)字化轉(zhuǎn)型背景下,設(shè)備管理系統(tǒng)從傳統(tǒng)人工巡檢向智能運(yùn)維的深刻變革。文章從技術(shù)架構(gòu)、實施路徑和典型應(yīng)用三個方面深入解析了設(shè)備遠(yuǎn)程監(jiān)控與預(yù)測性維護(hù)系統(tǒng)的實現(xiàn)方法。
    的頭像 發(fā)表于 04-15 10:16 ?793次閱讀
    設(shè)備遠(yuǎn)程<b class='flag-5'>監(jiān)控</b>與預(yù)測性維護(hù)系統(tǒng)<b class='flag-5'>架構(gòu)設(shè)</b>計及應(yīng)用<b class='flag-5'>實踐</b>

    芯片架構(gòu)設(shè)計的關(guān)鍵要素

    芯片架構(gòu)設(shè)計的目標(biāo)是達(dá)到功能、性能、功耗、面積(FPA)的平衡。好的芯片架構(gòu)能有效提升系統(tǒng)的整體性能,優(yōu)化功耗,并確保在成本和時間的限制下完成設(shè)計任務(wù)。
    的頭像 發(fā)表于 03-01 16:23 ?1200次閱讀

    TinyEngine服務(wù)端Java版本開源

    你是否曾經(jīng)在埋頭編碼的時候,別人用一行JavaScript代碼就解決了問題?這就像一個編碼魔術(shù)。
    的頭像 發(fā)表于 02-10 14:25 ?829次閱讀
    TinyEngine<b class='flag-5'>服務(wù)端</b>Java版本開源

    面向服務(wù)的整車EE架構(gòu)(SOA)設(shè)計開發(fā)咨詢服務(wù)

    經(jīng)緯恒潤多年來一直致力于為客戶提供先進(jìn)電子電氣架構(gòu)解決方案,近年來,經(jīng)緯恒潤在國內(nèi)率先開展整車SOA架構(gòu)的技術(shù)研發(fā)和業(yè)務(wù)布局,參與多款SOA架構(gòu)下量產(chǎn)車型的研發(fā),積累了豐富的SOA架構(gòu)設(shè)
    的頭像 發(fā)表于 12-12 15:11 ?1254次閱讀
    面向<b class='flag-5'>服務(wù)</b>的整車EE<b class='flag-5'>架構(gòu)</b>(SOA)設(shè)計開發(fā)咨詢<b class='flag-5'>服務(wù)</b>

    SSR與微服務(wù)架構(gòu)的結(jié)合應(yīng)用

    隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,前端技術(shù)棧不斷更新迭代,后端架構(gòu)也經(jīng)歷了從單體應(yīng)用到微服務(wù)的變革。在這個過程中,服務(wù)端渲染(SSR)作為一種提升頁面加載速度和SEO性能的技術(shù),與微服務(wù)
    的頭像 發(fā)表于 11-18 11:34 ?1128次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-網(wǎng)絡(luò)編程示例之開發(fā)板測試

    )開發(fā)板做TCP客戶,虛擬機(jī)做TCP服務(wù)端。以開發(fā)板IP:192.168.2.98,虛擬機(jī)IP:192.168.2.97 為例進(jìn)行以下測試。注意:在測試之前要保證開發(fā)板和虛擬機(jī)能夠互ping成功。(1)在
    發(fā)表于 11-14 08:55

    GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)設(shè)

    眾所周知,在大型模型訓(xùn)練中,通常采用每臺服務(wù)器配備多個GPU的集群架構(gòu)。在上一篇文章《高性能GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)(上篇)》中,我們對GPU網(wǎng)絡(luò)中的核心術(shù)語與概念進(jìn)行了詳盡介紹。本文
    的頭像 發(fā)表于 11-05 16:20 ?1822次閱讀
    GPU<b class='flag-5'>服務(wù)</b>器AI網(wǎng)絡(luò)<b class='flag-5'>架構(gòu)設(shè)</b>計