HBase 監控 | HBase Metrics 初探(一)

来源:https://www.cnblogs.com/zpb2016/archive/2020/04/08/12658165.html
-Advertisement-
Play Games

前言: 對於任意一個系統而言,做好監控都是非常重要的,HBase也不例外。經常,我們會從JMX中獲取相關指標來做展示、對HBase進行監控,那這些指標是怎麼生成的呢?如果你想自定義自己的監控指標又該怎麼做呢?基於好奇之心和學習的目的,最近打算學習一下HBase監控相關原理及實現,今天先簡單捋一捋思路 ...


前言:對於任意一個系統而言,做好監控都是非常重要的,HBase也不例外。經常,我們會從JMX中獲取相關指標來做展示、對HBase進行監控,那這些指標是怎麼生成的呢?如果你想自定義自己的監控指標又該怎麼做呢?基於好奇之心和學習的目的,最近打算學習一下HBase監控相關原理及實現,今天先簡單捋一捋思路。

1. 如何下手?

我一向比較喜歡先看項目所依賴的pom文件,打開HBase源碼,有兩個非常相關的模塊:

  • hbase-metrics-api

  • hbase-metrics

分別打開兩個子項目的pom文件查看,搜索關鍵詞'metrics'碰碰運氣,有兩個小發現:

  1. 子項目hbase-metrics依賴子項目hbase-metrics-api,子項目hbase-metrics-api大部分是介面類,而子項目hbase-metrics基本上是對子項目hbase-metrics-api介面類的實現類。

  2. 子項目hbase-metrics中有metrics相關繼承式依賴,如下:

<dependency>
    <groupId>io.dropwizard.metrics</groupId>
    <artifactId>metrics-core</artifactId>
</dependency>

那這是個什麼東西呢?憑直覺,要理解好HBase Metrics的實現,首先要先搞明白這是個什麼東東。本文接下來也主要圍繞io.dropwizard.metrics展開。

2. Dropwizard是什麼?

經過一番調研,總感覺dropwizard是上個世紀的產物。看下官網介紹:

Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services.

翻譯一下:

Dropwizard是一個Java框架,用於開發對操作友好的高性能RESTful Web服務。

感覺理解不太到位,RESTful Web服務也沒聽說過這個,百度掃掃盲吧!結果很意外,網上竟是Dropwizard與Spring Boot比較相關的文章。我抽兩條比較重要的:

  1. Dropwizard定位:微服務框架
  2. 兩者都有很強很大的社區支持。如果你更喜歡輕量,無疑Dropwizard勝出,如果你已經有Spring經驗,無疑使用Spring Boot。

好稀罕!真的是孤陋寡聞了嗎?竟然是跟Spring Boot相媲美的,也集成了眾多框架,Dropwizard metrics 就是其自帶的監控框架。下麵就介紹一下Dropwizard metrics。

3. Dropwizard metrics

看下官網介紹:

Metrics is a Java library which gives you unparalleled insight into what your code does in production.
Metrics provides a powerful toolkit of ways to measure the behavior of critical components in your production environment.
With modules for common libraries like Jetty, Logback, Log4j, Apache HttpClient, Ehcache, JDBI, Jersey and reporting backends like Graphite, Metrics provides you with full-stack visibility.

翻譯一下:

Metrics是一個Java庫,可讓您無比洞察代碼在生產中的功能。Metrics提供了一種功能強大的工具包,該工具包可用於衡量生產環境中關鍵組件的行為。藉助適用於常見庫(如Jetty,Logback,Log4j,Apache HttpClient,Ehcache,JDBI,Jersey)的模塊以及報告後端(如Graphite),Metrics可為您提供全棧可見性。

大白話:dropwizard-metrics是一個度量工具包,可集成於多種常見庫,提供全棧監控可見性。

“目前最為流行的 metrics 庫是來自 Coda Hale 的 dropwizard/metrics,該庫被廣泛地應用於各個知名的開源項目中。例如 Hadoop,Kafka,Spark,JStorm 中。”

然後我又不禁自己問自己了:市面上這麼多監控系統和框架,dropwizard-metrics處於什麼定位呢?

基於好奇,自己又展開了一番調研。

4. 監控體系梳理

提到監控,無非以下這些常見的辭彙:

Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront、Micrometer、Spring-actuator、Pinpoint、Zipkin、Skywalking、Grafana等等。

我從數據流的角度將以上框架大致分為三種:

  • 生產類監控指標框架:進行指標統計與監控,首先要生產指標數據,這類框架如Micrometer,我們也叫埋點類指標框架。
  • 消費類監控指標框架:有了指標數據,我們就要採集處理進行消費,這類框架如Ganglia、Prometheus、Influx等。
  • 展示類監控指標框架:這類框架主要用於數據圖標的前端展示,如:Graphite、Grafana等。

而今天我們瞭解到的Dropwizard-Metrics監控框架,就屬於生產類監控指標框架。那Dropwizard-Metrics監控框架與Micrometer有什麼關係嗎?如何做選擇呢?

回答是:沒有關係,並存關係。

我們知道,Spring2監控框架是基於Micrometer,並深度集成的。然而Hadoop、HBase則是基於Dropwizard-Metrics拓展開來,你猜是為什麼?先讀讀下麵一句話。

“springboot2在spring-boot-actuator中引入了micrometer,對1.x的metrics進行了重構,另外支持對接的監控系統也更加豐富(Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront)。1.x的metrics都有點對齊dropwizard-metrics的味道,而micrometer除了一些基本metrics與dropwizard-metrics相類似外,重點支持了tag。這是一個很重要的信號,標志著老一代的statsd、graphite逐步讓步於支持tag的influx以及prometheus。”

看著好像Micrometer更強大似的,簡直像Dropwizard-Metrics二代升級版呀!不僅對接的監控系統更加豐富,而且還重點支持了tag,對於偉大的集大成者、人人口中的強力膠——Spring而言,當然選擇爸爸版咯~

而像Hadoop、HBase之類的數據層軟體框架,或許我只能大概猜一猜了!

  • Micrometer固然強大,但我並不需要你那麼強大,Dropwizard-Metrics夠輕所以我選它!
  • 難道跟Spring家族是死對頭?
  • 或許真的是當初選錯了?
  • 還是Micrometer生的太晚了?

你猜呢?哈哈哈~ 魂力不足,不如繼續學習吧!隨後我們繼續深入Dropwizard-Metrics~

掃描二維碼關註博主公眾號

轉載請註明出處!歡迎關註本人微信公眾號【HBase工作筆記】


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言: 2020年3月7日晚7點,大佬張祥在微信群向大家詳細介紹了58同城HBase平臺及其生態的建設實踐與相關經驗,確實講得很好。今天花了點時間幫大家整理了一下,希望更多的沒有參與直播的朋友能夠看到它,也歡迎大家積極轉發一下,視頻與PPT 相關資料附於文末 。 亮點在哪 該分享的亮點在哪兒里呢?這 ...
  • 用單表接近一千萬數據(四列:int,兩個varchar,日期時間)測,發現幾個效率幾乎一致 count(0)=count(1)=count(數字)=count(*)>count(primary key)>count(column) 根據相關解釋: 1. count(指定的有效值)--執行計劃都會轉化 ...
  • 在高性能mysql第三版里,說到hash索引以下優缺點: 用MySQL(5.7.)測的時候發現可以範圍查詢。 ...
  • 我所做的商城項目前些時提了新需求,要求前臺搜索商品除了能通過商品名稱搜索到以外,還可以通過別個信息搜索,比如:商品編號、詳情內容描述等等,類似於全文搜索了。我首先想到的就是lucene,但是對代碼這樣的改動量就太大了。。。。目前線上版本如果做這種改動怕測試又出什麼么蛾子,如果又重新建表將這些信息另外 ...
  • 題目如下: 1.查詢sC表中的全部數據。2. 查詢電腦系學生的姓名和年齡3.查詢成績在70~80分的學生的學號、課程號和成績4.查詢電腦系年齡在18~20歲的男生姓名和年齡s.查詢C001課程的最高分6.查詢電腦系學生的最大年齡和最小年齡7.統計每個系的學生人數8.統計每]課程的選課人數和最高 ...
  • 一、MySQL體繫結構和存儲引擎 儘管各個平臺在底層(如線程)實現方面都各不相同,但MySQL基本上能保證在各個平臺上的物理結構的一致性。因此,用戶應該能很好的理解MySQL資料庫在所有這些平臺是如何運作的。 1.1 定義資料庫和實例 資料庫:物理操作系統文件或其他形式文件類型的集合。在MySQL數 ...
  • 情況: A機上有SSMS 18.x, B機上有SQL Server 2008 R2資料庫, C機上有Oracle Database 11.2.0.4.0資料庫 我想在A機用ssms連C機的oracle,一番瞭解,普遍做法是裝ODAC xcopy包,裡面有oledb組件,然後就可以在sqlserver ...
  • 1.簡介 當一個表數據量很大時候,很自然我們就會想到將表拆分成很多小表,在執行查詢時候就到各個小表去查,最後彙總數據集返回給調用者加快查詢速度。比如電商平臺訂單表,庫存表,由於長年累月讀寫較多,積累數據都是異常龐大的,這時候,我們可以想到表分區這個做法,降低運維和維護成本,提高讀寫性能。比如將前半年 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...