微服務(wù)實踐04--DevOps07--度量指標(biāo)00--度量指標(biāo)(Metrics)

微服務(wù)實踐目錄,可以參見連接。

起因:

在很多人的想法里認(rèn)為事務(wù)是無法考量的。無法說明的,就想老子所說的:

道可道,非常道。名可名,非常名。

人對不了解的事務(wù)的學(xué)習(xí)與分析過程中有個分歧:

  1. 追求了解事務(wù)最根本的真相,不斷的分解、抽象、聯(lián)想去組織處合適的理論。
  2. 賦予這個事務(wù)神話的色彩。以神的意志,解釋不可理解的事務(wù)

對于現(xiàn)代學(xué)科來說,現(xiàn)代的理學(xué)和文學(xué)都最終會歸化到數(shù)學(xué),數(shù)學(xué)會歸化的哲學(xué)。例如:美學(xué)中的黃金比例,文學(xué)中的邏輯學(xué),經(jīng)濟(jì)學(xué)中統(tǒng)計學(xué)等等。

但是,對于軟件工程一門工程類學(xué)科來說無法考量與度量某一項事務(wù)是否是可行?答案自然是明確的軟件工程必須是可以度量的,雖然在這么多年的發(fā)展過程中沒有一套完整適應(yīng)時代與技術(shù)的度量方法。但是度量對于一個工程類學(xué)科來說是必須的,而且之后也會不斷的朝著可度量的方向發(fā)展。

度量是了解事務(wù)內(nèi)部特征的最基礎(chǔ)的方法。但在國內(nèi)度量其實是從上到下都回避的一件事,所以,需要考量加入度量指標(biāo)的時間點,以及加入的度量指標(biāo),加入方式等。不過可度量的標(biāo)準(zhǔn)是公司達(dá)到一定水平是一個標(biāo)志。

本文主要描述度量指標(biāo)的實踐,上面這些社會學(xué)的理論請自行把握。

度量指標(biāo):

在網(wǎng)上找了很多關(guān)于度量、指標(biāo)、維度的資料。這幾個詞可以從《統(tǒng)計學(xué)》到《軟件運營》、再從《分析指標(biāo)體系》到《軟件過程度量模型》。就這幾個詞我找了很大一圈還是沒有找到很好的解釋,所以,我就妄自尊大的自己對度量指標(biāo)進(jìn)行一個解釋:

度量是指對于一個物體或是事件的某個性質(zhì)給予一個數(shù)字,使其可以和其他物體或是事件的相同性質(zhì)比較。度量可以是對一物理量(如長度、尺寸或容量等)的估計或測定,也可以是其他較抽象的特質(zhì)。

指標(biāo) : 預(yù)期中打算達(dá)到的指數(shù)、規(guī)格、標(biāo)準(zhǔn)

度量出自維基百科,指標(biāo)出自以上是從Wiki上找到的介紹。簡單的看度量就是描述事物的一個特定方面的數(shù)字。

度量指標(biāo)(Metrics) : 指用于描述一個物體或事物的某個性質(zhì)的指數(shù)、規(guī)格、標(biāo)準(zhǔn),使其可以和其他的物體或者事物的提交。

從軟件的角度講度量即把所有東西都量化、數(shù)據(jù)化、可采集。指標(biāo)即表示對這些量化后的數(shù)據(jù)的目標(biāo)值。維度即標(biāo)識一個事物某一個側(cè)面的一組指標(biāo)。

軟件指標(biāo)定義:

大概說明了度量指標(biāo)的內(nèi)容之后,接下來以工程化實施方案的思維方式思考如果要實施度量指標(biāo)需要完成怎樣的工作。借鑒一些ToGAF的概念,每一項事都是需要有目標(biāo)的,在目標(biāo)的指導(dǎo)下去做具體的實施工作。度量指標(biāo)工作具體的實施步驟如下:

  1. 制定度量指標(biāo)所關(guān)心的目標(biāo),所要解決的問題;(明確要解決的問題域)
  2. 建立一套針對問題域的分析方法,并找到要進(jìn)行分析的數(shù)據(jù)域;(制定方法論,解決域)
  3. 對數(shù)據(jù)域中的數(shù)據(jù)進(jìn)行可度量化的拆解與分析;(度量指標(biāo)拆解)
  4. 針對解決域中的方法以及分解出的具體指標(biāo),制定實施方案;(具體實施)
  5. 實施完成后可以產(chǎn)出數(shù)據(jù)與報表。針對結(jié)果進(jìn)行評估平調(diào)整整個解決過程。(持續(xù)優(yōu)化)
  • 指標(biāo)系統(tǒng)目標(biāo):

“指標(biāo)體系”這個概念是應(yīng)用比較廣泛的,我們從正式出版物中摘取一個定義:指標(biāo)體系,即統(tǒng)計指標(biāo)體系,是由一系列具有相互聯(lián)系的指標(biāo)所組成的整體,可以從各個側(cè)面完整地反映現(xiàn)象總體或樣本的數(shù)量特征。

統(tǒng)計指標(biāo)體系從其功能和作用不同,可分為描述統(tǒng)計指標(biāo)體系,評價統(tǒng)計指標(biāo)體系和預(yù)警統(tǒng)計指標(biāo)體系三種。描述統(tǒng)計指標(biāo)體系是由若干對社會經(jīng)濟(jì)活動狀況做出完整而系統(tǒng)描述的基礎(chǔ)指標(biāo)所組成的。評價統(tǒng)計指標(biāo)體系是由若干對社會經(jīng)濟(jì)行為結(jié)果進(jìn)行比較、評估、考核,以檢查其工作和綜合效益的統(tǒng)計指標(biāo)所組成。預(yù)警統(tǒng)計指標(biāo)體系主要用于對社會經(jīng)濟(jì)宏觀運行的監(jiān)測,并根據(jù)指標(biāo)值的變化,預(yù)報社會經(jīng)濟(jì)即將出現(xiàn)的不平衡狀態(tài)、突發(fā)事件及某些結(jié)構(gòu)性障礙等。

引自《統(tǒng)計學(xué)教程》(主編:王懷偉 清華大學(xué)出版社)

度量體系

從上圖可以看到在軟件行業(yè)內(nèi)指標(biāo)體系可以分為很多種。最終對客戶有意義的,有價值的肯定是運營指標(biāo)體系。運行軟件指標(biāo)體系是本次的目標(biāo),主要描述軟件運行過程中的一些參數(shù)?!盾浖^程指標(biāo)》、《軟件指令指標(biāo)》、《DevOps指標(biāo)》都是軟件在開發(fā)以及運營過程中的軟件過程指標(biāo)。

下圖中是指標(biāo)體系的一個實例,用于描述DevOps指標(biāo)體系中的一些指標(biāo):


DevOps之度量體系

這個實例中描述了DevOps的幾個指標(biāo)。主要的指標(biāo)目標(biāo)是為了體現(xiàn)DevOps怎樣為客戶提供價值,并在這個基礎(chǔ)上提出適應(yīng)多變的環(huán)境(需求環(huán)境,開發(fā)環(huán)境,質(zhì)量環(huán)境,過程環(huán)境等)。

真對于軟件運行指標(biāo)體系的目標(biāo)是提高穩(wěn)定性,減少故障,降低運營成本。

  • 指標(biāo)分析方法與選型:

在驅(qū)動指標(biāo)體系搭建形成閉環(huán)的最后一步就是數(shù)據(jù)應(yīng)用,在采集的數(shù)據(jù)驗證無誤后應(yīng)用于實際業(yè)務(wù)中,驅(qū)動業(yè)務(wù)增長。常用的分析理論有:4P理論、PESTEL理論、SWOT理論、5W2H理論、邏輯樹理論、用戶使用行為理論、AARRR理論??梢詤⒄眨?a href="http://www.lxweimin.com/p/c62b194269da" target="_blank">數(shù)據(jù)分析方法論(二)——常用數(shù)據(jù)分析方法

真對于軟件運行指標(biāo)體系的目標(biāo),分析方法需要滿足故障檢測,平穩(wěn)程度,自動化程度幾個方向。分析方法以統(tǒng)計方法為主,統(tǒng)計故障情況,統(tǒng)計自動化占比,統(tǒng)計測試質(zhì)量等。

  • 度量指標(biāo)體系:

上面說明了度量指標(biāo)的目標(biāo)和指標(biāo)分析方法。都是一些通用性的分析,未對某一個特定領(lǐng)域中的指標(biāo)體系進(jìn)行分析。一個特定領(lǐng)域中的指標(biāo)體系包括的內(nèi)容有哪些,這些內(nèi)容起著怎樣的作用。這些內(nèi)容會在本節(jié)加以分析與描述。

先給出一個指標(biāo)體系的整體架構(gòu):

指標(biāo)體系結(jié)構(gòu)

上圖出自數(shù)據(jù)體系搭建 | 梳理架構(gòu)和指標(biāo)體系,類似于軟件指標(biāo)定義中提到的內(nèi)容一個指標(biāo)體系從上到下可以分為:分析(模型,方法),數(shù)據(jù)可視化,基礎(chǔ)數(shù)據(jù)平臺部分。

分析方法:
在整個指標(biāo)體系中分析方法提供跟業(yè)務(wù)相關(guān)的,對業(yè)務(wù)負(fù)責(zé)的內(nèi)容。因為分析方法是根據(jù)要解決的問題域進(jìn)行建立的,并對業(yè)務(wù)是有意義的。分析方法是多變的,在針對同樣的行業(yè)、同樣的場景、不同的公司時使用的分析與建模的方法都可能是不同的。因為分析方法是真對大環(huán)境去把控的,所以,需要做的是真對這些元知識(分析方法),進(jìn)行分析與總結(jié)之后在應(yīng)用于不同的場景。

從某個側(cè)面來說,數(shù)據(jù)分析技術(shù)(大數(shù)據(jù),BI等)最終有意義的方面都是分析方法。具體使用哪項分析方法,怎樣做展示其實對整個數(shù)據(jù)分析來說意義不大。

數(shù)據(jù)可視化:
數(shù)據(jù)需要展示出來才可以體現(xiàn)出數(shù)據(jù)的意義,所以,就像敏捷中“交付價值”一樣。數(shù)據(jù)有了必須要提供價值才可以展現(xiàn)出數(shù)據(jù)的意義。這里的數(shù)據(jù)可視化的方式還是需要針對度量進(jìn)行相關(guān)的分析與展示的,或者直接使用相關(guān)的內(nèi)容進(jìn)行展示的能力。下面說明另種可以進(jìn)行定制化的展示的可視化工具。

數(shù)據(jù)基礎(chǔ)平臺:
數(shù)據(jù)基礎(chǔ)平臺即包括數(shù)據(jù)采集,數(shù)據(jù)接收,數(shù)據(jù)存儲,數(shù)據(jù)分析基礎(chǔ)等內(nèi)容。主要滿足基礎(chǔ)的數(shù)據(jù)處理要求,可以與現(xiàn)在流程的DMP概念認(rèn)為是等同的。大數(shù)據(jù)的基礎(chǔ)也就是:

數(shù)據(jù)基礎(chǔ)平臺基礎(chǔ)棧

數(shù)據(jù)收集部分這里寫的不是很完全,數(shù)據(jù)接收、存儲、分析都還算比較完善,不過也沒有做更多的深入。在之后的實施部分里會說明本文的技術(shù)選型。

  1. Grafana是一個開源的度量分析和可視化套件。它最常用于可視化基礎(chǔ)設(shè)施和應(yīng)用程序分析的時間序列數(shù)據(jù),但也用于許多其他領(lǐng)域,包括工業(yè)傳感器,家庭自動化,天氣和過程控制。
  2. Kibana是一款開源的數(shù)據(jù)分析和可視化平臺,它是 Elastic Stack 成員之一,設(shè)計用于和 Elasticsearch 協(xié)作。您可以使用 Kibana 對 Elasticsearch 索引中的數(shù)據(jù)進(jìn)行搜索、查看、交互操作。您可以很方便的利用圖表、表格及地圖對數(shù)據(jù)進(jìn)行多元化的分析和呈現(xiàn)。

至于其他的指標(biāo)可視化工具:Tableau,F(xiàn)indReport,Splunk。都是商業(yè)版軟件,不適合在小公司使用。所以,不會選擇這些商業(yè)化軟件。

  • 度量指標(biāo)拆解:

上面定義了軟件指標(biāo)的目標(biāo)以及方法,現(xiàn)在需要將度量指標(biāo)體系確定并細(xì)化到可度量級別。所以,就需要對指標(biāo)進(jìn)行拆解工作。

事件、參數(shù)和屬性

事件、參數(shù)和屬性說明:先給大家解釋三個概念,事件、參數(shù)和屬性。事件可以理解為用戶的某個行為,比如登錄、注冊、購買,都統(tǒng)稱為事件;事件和參數(shù)結(jié)合起來就是指標(biāo),比如登錄次數(shù)、注冊人數(shù)、購買金額這些我們稱為指標(biāo),而次數(shù)、人數(shù)、金額就是事件的參數(shù)。事件屬性可以從某個維度對事件進(jìn)行拆分分析,比如登錄方式就是登錄的屬性,分析不同登錄方式的登錄次數(shù)。

上圖為運營指標(biāo)的實例,軟件運行指標(biāo)體系的例子服務(wù)從異步消息系統(tǒng)接收到一個消息。事件即接收到消息,參數(shù)可以是處理時長(消息處理時長以及消息處理事件)。指標(biāo)是處理時長必須在10ms之內(nèi)。屬性是消息可以是定時任務(wù),異步任務(wù)等等。

下面會具體的介紹軟件運行指標(biāo)體系中會涉及到的度量。

類別 信息 觸發(fā)機(jī)制 單位 說明
jvm 系統(tǒng)內(nèi)存總量 定時 Kb mem
jvm 空閑內(nèi)存數(shù)量 定時 Kb mem.free
jvm 處理器數(shù)量 初始化 processors
jvm 系統(tǒng)正常運行時間 定時 毫秒 uptime
jvm 應(yīng)用上下文正常運行時間 定時 毫秒 instance.uptime
jvm 系統(tǒng)平均負(fù)載 定時 百分比 systemload.average
jvm 堆信息 定時 Kb heap,heap.committed,heap.init,heap.used
jvm 線程信息 定時 threads,thread.peak,thead.daemon
jvm 類加載信息 定時 Info classes,classes.loaded,classes.unloaded
jvm 垃圾收集信息 定時 gc.xxx.count, gc.xxx.time
tomcat 容器session 定時 httpsessions.active,httpsessions.max
數(shù)據(jù)庫 連接 定時 最大連接數(shù), 最小連接數(shù), 活動連接數(shù),連接池的使用情況
...

指標(biāo)分類:

軟件本來就是數(shù)字化的事物,不過就是涉及到度量的維度。根據(jù)度量維度的不同,可能會涉及到很多模糊不清的指標(biāo)。所以針對每一個度量指標(biāo)必須遵循SMART原則:

  1. S代表具體(Specific)
  2. M代表可度量(Measurable)
  3. A代表可實現(xiàn)(Attainable)
  4. R代表現(xiàn)實性(Realistic)
  5. T代表有時限(Timebound)

這樣既有度量目標(biāo),又可以具體的去實施。不存在不可度量的指標(biāo),方便具體的落地實施工作。

  1. Counter(計數(shù)器)
    Counter是一個累計度量指標(biāo),它是一個只能遞增的數(shù)值。計數(shù)器主要用于統(tǒng)計服務(wù)的請求數(shù)、任務(wù)完成數(shù)和錯誤出現(xiàn)的次數(shù)等等。計數(shù)器是一個遞增的值。

  2. Gauge(測量器)
    Gauges是一個最簡單的計量,一般用來統(tǒng)計瞬時狀態(tài)的數(shù)據(jù)信息。它表示一個既可以遞增, 又可以遞減的值。比如系統(tǒng)中處于pending狀態(tài)的job。

  3. Histogram(柱狀圖)
    Histograms主要使用來統(tǒng)計數(shù)據(jù)的分布情況,最大值、最小值、平均值、中位數(shù),百分比(75%、90%、95%、98%、99%和99.9%)。

  4. Meters(碼表)
    Meters用來度量某個時間段的平均處理次數(shù)(request per second),每1、5、15分鐘的TPS。比如一個service的請求數(shù),通過metrics.meter()實例化一個Meter之后,然后通過meter.mark()方法就能將本次請求記錄下來。統(tǒng)計結(jié)果有總的請求數(shù),平均每秒的請求數(shù),以及最近的1、5、15分鐘的平均TPS。

  5. Timers(計時器)
    Timers主要是用來統(tǒng)計某一塊代碼段的執(zhí)行時間以及其分布情況,具體是基于Histograms和Meters來實現(xiàn)的。

以上的度量指標(biāo)分類是從Metrics-Java版的指標(biāo)度量工具之一
Metrics Core整理出來的。

總結(jié):

本階段主要分析了度量指標(biāo)的成因,以及度量指標(biāo)中相關(guān)的分類方法。所以,這里只介紹了度量指標(biāo)的前期概念。在下面一篇文章中給出相關(guān)的技術(shù)設(shè)計以及具體實踐。

參考:

度量
互聯(lián)網(wǎng)運營,該分析哪些數(shù)據(jù)和指標(biāo)
數(shù)據(jù)分析方法論(一)——構(gòu)建數(shù)據(jù)指標(biāo)體系
數(shù)據(jù)分析方法論(二)——常用數(shù)據(jù)分析方法
創(chuàng)業(yè)公司如何構(gòu)建數(shù)據(jù)指標(biāo)體系?
電商數(shù)據(jù)分析基礎(chǔ)指標(biāo)體系
如何搭建指標(biāo)體系
從 0 到 1 搭建數(shù)據(jù)運營體系
數(shù)據(jù)體系搭建 | 梳理架構(gòu)和指標(biāo)體系

監(jiān)控:

metrics
Metrics-Java版的指標(biāo)度量工具之一
JAVA Metrics度量工具 - Metrics Core 翻譯
第 44 課 度量指標(biāo)(Metrics)
度量指標(biāo)類型

軟件度量指標(biāo):

智能分析最佳實踐——指標(biāo)邏輯樹
利用Metrics+influxdb+grafana構(gòu)建監(jiān)控
基于dropwizard/metrics ,kafka,zabbix構(gòu)建應(yīng)用統(tǒng)計數(shù)據(jù)收集展示系統(tǒng)

軟件過程度量指標(biāo):

軟件度量
軟體度量
軟件過程質(zhì)量度量與控制
軟件過程度量模型
軟件度量與軟件過程管理
質(zhì)量度量指標(biāo)設(shè)定分析-1
常見軟件項目度量指標(biāo)介紹
敏捷軟件估算和度量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內(nèi)容