Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
lement,一套為開發者、設計師和產品經理準備的基于 Vue 2.0 的組件庫,提供了配套設計資源,幫助你的開發快速成型。由餓了么公司前端團隊開源。
開源版本持續更新至2.3.2版;
一致性 Consistency
與現實生活一致:與現實生活的流程、邏輯保持一致,遵循用戶習慣的語言和概念;
在界面中一致:所有的元素和結構需保持一致,比如:設計樣式、圖標和文本、元素的位置等。
反饋 Feedback
控制反饋:通過界面樣式和交互動效讓用戶可以清晰的感知自己的操作;
頁面反饋:操作后,通過頁面元素的變化清晰地展現當前狀態。
效率 Efficiency
簡化流程:設計簡潔直觀的操作流程;
清晰明確:語言表達清晰且表意明確,讓用戶快速理解進而作出決策;
幫助用戶識別:界面簡單直白,讓用戶快速識別而非回憶,減少用戶記憶負擔。
可控 Controllability
用戶決策:根據場景可給予用戶操作建議或安全提示,但不能代替用戶進行決策;
結果可控:用戶可以自由的進行操作,包括撤銷、回退和終止當前操作等。
導航可以解決用戶在訪問頁面時:在哪里,去哪里,怎樣去的問題。一般導航會有「側欄導航」和「頂部導航」2 種類型。
推薦使用 npm 的方式安裝,它能更好地和 webpack 打包工具配合使用。
# npm i --save element-angular
或者CDN
目前可以通過 unpkg.com/element-ui 獲取到最新版本的資源,在頁面上引入 js 和 css 文件即可開始使用。
<!-- 引入樣式 -->
<link rel="stylesheet" >
<!-- 引入組件庫 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
開始前, 你還需要一個主題包, 這里我們推薦使用element-theme-default.
npm install element-theme-default --save
import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from 'element-react';
import 'element-theme-default';
ReactDOM.render(<Button type="primary">Hello</Button>, document.getElementById('app'));
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <!-- import CSS --> <link rel="stylesheet" ></head><body> <div id="app"> <el-button @click="visible = true">Button</el-button> <el-dialog :visible.sync="visible" title="Hello world"> <p>Try Element</p> </el-dialog> </div></body> <!-- import Vue before Element --> <script src="https://unpkg.com/vue/dist/vue.js"></script> <!-- import JavaScript --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script> new Vue({ el: '#app', data: function() { return { visible: false } } }) </script></html>
清爽圖標
說:騎手進店切牛排 來源/看看新聞
新民晚報訊(記者 徐馳)近日,一名身穿“餓了么”制服的外賣小哥引發熱議,而“躥紅”的原因,并不是因為他送餐速度快或是送單數量多,而是他在餐廳里做起了菜。這一幕被市民拍下上傳至網絡后,引發網友熱議。為此,“餓了么”回應記者:公司目前正在調查此事。
據了解,當時,該網友在經過古北1699廣場內的一家牛排店時,驚訝地發現一名送餐員男子,正在店內忙著切配、裝盒。網友隨即將這一幕拍下,并指出,這樣的行為并不妥當。但該名騎手抬了一下頭后,并未搭理,又開始“埋頭苦干”。
照片一經傳播,立刻引起廣大網友熱議。不少網友認為,外賣員穿在身上的送餐服長期與外界接觸,沾染大量灰塵和汽車尾氣,接觸食材和餐具,非常不衛生;也有網友認為,餐飲人員從業必須有健康證,而照片里的外賣小哥是否持有健康證,也不得而知。而設施餐廳讓外賣員直接進入餐廳做菜,是否存在監管疏漏?事發后,網友隨后也向相關部門舉報。
圖說:騎手配菜挺熟練
記者與“餓了么”方面取得聯系。一名客服人員表示,已記錄下相關情況,并會將事情反饋給公司相關部門。
其實,新民晚報曾報道過外賣小哥為了加快配送速度,親自“掌勺”的新聞(詳見《外賣界的“清流”還是“泥石流”?嫌棄出菜速度慢 外賣小哥親自下廚》 http://newsxmwb.xinmin.cn/shanghaitan/2017/09/12/31276199.html )而隨后相關企業也表示,在公司的行為規范中,并不允許外賣員私自進入后廚,炒菜、配菜等。
來源/東方IC
去年9月1日,《外賣配送服務規范》正式施行,規定了外賣服務機構須具備法人資質、固定辦公場所,要求外賣配送服務隊伍要規模化,配送人員使用的配送車、配送箱、頭盔等都要符合規定。
餓了么監控系統 EMonitor :是一款服務于餓了么所有技術部門的一站式監控系統,覆蓋了系統監控、容器監控、網絡監控、中間件監控、業務監控、接入層監控以及前端監控的數據存儲與查詢。每日處理總數據量近 PB ,每日寫入指標數據量百T,每日指標查詢量幾千萬,配置圖表個數上萬,看板個數上千。
CAT:是基于 Java 開發的實時應用監控平臺,為美團點評提供了全面的實時監控告警服務。
本文通過對比分析下兩者所做的事情為契機討論監控系統或許該有的面貌,以及淺談下監控系統發展的各個階段。
首先要強調的是這里我們只能拿到 GitHub 上開源版 CAT 的最新版 3.0.0 ,所以是基于此進行對比。接下來說說 CAT 做了哪些事情?
抽象出監控模型
抽象出 Transaction、Event、Heartbeat、Metric 4 種監控模型。
針對 Transaction 和 Event 都固定了兩個維度, type 和 name ,并且針對 type 和 name 進行分鐘級聚合成報表并展示曲線
采樣鏈路
針對上述 Transaction、Event 的 type 和 name 分別有對應的分鐘級的采樣鏈路
自定義的 Metric 打點
目前支持 Counter 和 Timer 類型的打點,支持 tag ,單機內單個 Metric 的 tag 組合數限制 1000 。并且有簡單的監控看板,如下圖所示:
與其他組件集成
比如和 Mybatis 集成,在客戶端開啟相關的 sql 執行統計,并將該統計劃分到 Transaction 統計看板中的 type=SQL 的一欄下。
告警
可以針對上述的 Transaction、Event 等做一些簡單的閾值告警。
餓了么 EMonitor 借鑒了 CAT 的相關思想,同時又進行了改進。
引入 Transaction、Event 的概念
針對 Transaction 和 Event 都固定了兩個維度, type 和 name ,不同地方在于聚合用戶發過來的數據。
CAT 的架構圖如下所示:
CAT 的消費機需要做如下兩件事情:
EMonitor 的架構圖如下所示:
EMonitor 分兩路對數據進行隔離處理:
所以 EMonitor 和 CAT 的一個很大不同點就在于對指標的處理上, EMonitor 交給專業的時序數據庫來做,而 CAT 自己做聚合就顯得功能非常受限,如下所示:
但是CAT也有自己的優勢:
采樣鏈路
目前 CAT 和 EMonitor 都可以通過 type 和 name 來過濾采樣鏈路,不同點在于:
EMonitor 的鏈路如下所示
自定義的 Metric 打點
EMonitor 支持 Counter、Timer、Histogram、Payload、Gauge 等等多種形式的打點方式,并且支持 tag :
也就是任意 Metric 打點都可以流經 EMonitor 進行處理了并輸送到LinDB時序數據庫中。至此, EMonitor 就可以將任何監控指標統一在一起了,比如機器監控都可以通過 EMonitor 來保存了,這為一站式監控系統奠定了基礎。
自定義 Metric 看板
CAT只有一個簡易的 Metric 看板 EMonitor 針對 Metric 開發了一套可以媲美Grafana 的指標看板,相比 Grafana 的優勢:
類 SQL 的配置查詢指標方式如下所示
看板整體如下所示:
移動端顯示如下:
與其他組件集成
目前 EMonitor 已經打通了 IaaS 層、 PaaS 層、應用層的所有鏈路和指標的監控,再也不用在多個監控系統中切換來切換去了,如下所示:
以打通餓了么分庫分表中間件 DAL 為例:
可以根據機房、執行狀態、表、操作類型(比如 Insert、Update、Select 等)進行過濾查看:
再以打通餓了么 SOA 服務為例:
告警
可以針對所有的監控指標配置如下告警方式:
日志監控階段
本階段實現方式:程序打日志,使用ELK來存儲和查詢程序的運行日志, ELK 也能簡單顯示指標曲線。
排障過程:一旦有問題,則去 ELK 中搜索可能的異常日志來進行分析排障。
鏈路監控階段
上一個階段存在的問題: ELK 只是基于一行一行日志進行聚合或者搜索分析,日志之間沒有上下文關聯。很難知道一次請求耗時較長究竟耗時在哪個階段。
本階段實現方式: CAT 橫空出世,通過建模抽象出 Transaction、Metric 等監控模型,將鏈路分析和簡單的報表帶入了大家的視野。
告警方式:針對報表可以進行閾值監控排障過程:一旦有告警,可以通過點擊報表來詳細定位到是哪個 type 或 name 有一定問題,順便找到對應的鏈路,查看詳細的信息。
指標監控階段
上一階段存在的問題: CAT 對自定義指標支持的比較弱,也無法實現或者展現更加多樣的查詢聚合需求。
本階段的實現方式:支持豐富的 Metric 指標,將鏈路上的一些報表數據也可以劃分到指標中,交給專業的時序數據庫來做指標的存儲和查詢,對接或者自研豐富的指標看板如 Grafana 。
告警方式:針對指標進行更加豐富的告警策略排障過程:一旦有告警,可能需要到各個系統上查看指標看板,粗略定位根因,再結合鏈路總和分析。
平臺打通整合階段
上一階段存在的問題:系統監控、中間件和業務監控、部分業務監控、鏈路監控與指標監控都各搞一套數據收集、預處理、存儲、查詢、展現、告警流程,各個系統處理數據格式、使用方式不統一。
本階段的實現方式:打通從系統層面、容器層面、中間件層面、業務層面等等的可能的鏈路和指標監控,統一數據的處理流程,同時整合發布、變更、告警與監控曲線結合,成為一站式監控平臺。
告警方式:可以統一的針對各個層面的監控數據做統一化的告警排障過程:只需要在一個監控系統中就可以查看到所有的監控曲線和鏈路信息。
目前我們 EMonitor 已完成這個階段,將公司之前存在已久的 3 套獨立的監控系統統一整合成現如今的一套監控系統。
深度分析階段
上一階段存在的問題:
總之:之前的階段都是去做一個監控平臺,用戶查詢什么指標就展示相應的數據,監控平臺并不去關心用戶所存儲數據的內容。現在呢就需要轉變思路,監控平臺需要主動去幫用戶分析里面所存儲的數據內容。
本階段的實現方式:所要做的就是把幫用戶分析的過程抽象出來,為用戶構建應用大盤和業務大盤,以及為大盤做相關的根因分析。
根因分析:一個大盤有很多的環節,每個環節綁定有很多的指標,每次某個告警出來有可能需要詳細的分析下每個環節的指標,比如消費 kafka 的延遲上升,有各種各樣的原因都可能導致,每次告警排查都需要將分析流程再全部人為分析排查下,非常累,所以需要將定位根因的過程通過建模抽象下,來進行統一解決。
趨勢報表分析:主動幫用戶發現一些逐漸惡化的問題點,比如用戶發布之后,接口耗時增加,很可能用戶沒有發現,雖然當前沒有問題,但是很有可能在明天的高峰期就會暴露問題,這些都是已經實實在在發生的事故。
要想做主動分析,還深度依賴指標下鉆分析,即某個指標調用量下降了,能主動分析出是哪些 tag 維度組合導致的下降,這是上述很多智能分析的基礎,這一塊也不簡單。
告警方式:可以統一的針對各個層面的監控數據做統一化的告警排障過程: NOC 根據業務指標或者業務大盤快速得知是哪些業務或者應用出先了問題,應用的 owner 通過應用大盤的體檢得知相關的變動信息,比如是 redis 波動、database 波動、上下游應用的某個方法波動等等,來達到快速定位問題目的,或者通過對大盤執行根因分析來定位到根因。
三者關系如下圖所示:
三者的確都不可或缺,相輔相成,但是我想說以下幾點:
參考鏈接:
CAT:http://github.com/dianping/cat
深度剖析開源分布式監控CAT:
http://tech.meituan.com/2018/11/01/cat-in-depth-java-application-monitoring.html
作者信息:
李剛,網名乒乓狂魔,餓了么監控組研發專家,餓了么內部時序數據庫LinDB項目負責人,目前致力于監控的智能分析領域。
本文轉載于公眾號:架構師社區
*請認真填寫需求信息,我們會在24小時內與您取得聯系。