Apache Ignite 2.8 引入的新指標系統(New Metrics System)的完整說明

這段文檔是關于 Apache Ignite 2.8 引入的“新指標系統(New Metrics System)” 的完整說明。這是 Ignite 監控體系的一次重大升級,相比舊的、分散的統計方式,新系統更統一、靈活、可擴展。

我們來逐層拆解、通俗易懂地理解這個新指標系統的架構和使用方法。


🌟 一、為什么要“新指標系統”?

在 Ignite 2.8 之前:

  • 指標分散在 JMX、緩存配置、數據區配置中
  • 難以統一查看
  • 擴展性差

Ignite 2.8 開始,引入了統一的 Metrics System(指標系統),目標是:

? 統一收集、集中管理、多通道導出


🧱 二、新指標系統的核心概念

1. Metrics(指標)

  • 每個指標是一個“名字 + 值”的組合。
  • 值可以是:
    • 簡單類型:long, double, String
    • 復雜對象:比如直方圖(Histogram)
  • 示例:
    • io.datastorage.StorageSize → 當前存儲大小(單位字節)
    • cache.myCache.CacheHits → 緩存命中次數

2. Registers(指標注冊表 / 分組)

  • 指標不是雜亂無章的,而是按功能分組管理,這種分組叫 Register(注冊表)
  • 每個 Register 有名字,比如:
    • io.datastorage → 存儲相關指標
    • cache.myCache → 名為 myCache 的緩存指標
  • 指標全名 = 注冊表名.指標名
    • 例如:cache.myCache.CacheHits

💡 類比:就像文件夾結構

cache.myCache/├── CacheHits├── CacheMisses└── OffHeapEntries

3. Exporters(導出器)—— 指標“出口”

這是新系統最強大的地方:同一個指標,可以通過多種方式“輸出”

Ignite 內置了 4 種導出方式(Exporters):

導出器類名作用適用場景
JMXJmxMetricExporterSpi通過 JMX 暴露指標Java 監控工具(如 JConsole)
SQL ViewSqlViewMetricExporterSpi指標變成一張 SQL 表 SYS.METRICS用 SQL 查詢指標
LogLogExporterSpi定期打印指標到日志文件簡單日志分析
OpenCensusOpenCensusMetricExporterSpi接入 OpenCensus 生態(如 Prometheus、Zipkin)云原生監控

? 關鍵點:你可以在一個節點上同時啟用多個 Exporter,實現“一份指標,多端輸出”。


?? 三、如何配置?—— 啟用 Exporter

你需要在節點配置中指定使用哪些 Exporter:

XML 配置示例

<bean class="org.apache.ignite.configuration.IgniteConfiguration"><property name="metricExporterSpi"><list><!-- 通過 JMX 查看 --><bean class="org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi"/><!-- 通過 SQL 查看 --><bean class="org.apache.ignite.spi.metric.sql.SqlViewMetricExporterSpi"/><!-- 寫入日志 --><bean class="org.apache.ignite.spi.metric.log.LogExporterSpi"/></list></property>
</bean>

📌 注意:這是節點級配置,只對當前節點生效。


🔍 四、四種 Exporter 詳解

1. JMX Exporter(最傳統,功能最全)

  • 所有指標都可通過 JMX 訪問。
  • Histogram(直方圖)指標僅支持 JMX
  • 支持過濾:只導出某些 Register 的指標
JmxMetricExporterSpi jmxExporter = new JmxMetricExporterSpi();
// 只導出緩存相關的指標
jmxExporter.setExportFilter(mreg -> mreg.name().startsWith("cache."));
cfg.setMetricExporterSpi(jmxExporter);

💡 適合:Java 運維人員用 JConsole、VisualVM 查看。


2. SQL View Exporter(最方便!)

  • 指標被映射為一張系統視圖:SYS.METRICS
  • 你可以用任何 SQL 工具查詢!
SELECT name, value 
FROM SYS.METRICS 
WHERE name LIKE 'cache.myCache.%';

輸出示例:

NAMEVALUE
cache.myCache.CacheHits12345
cache.myCache.CacheMisses678
cache.myCache.OffHeapEntries9000

? 優勢:

  • 不用懂 JMX,會 SQL 就能查
  • 可集成到 BI 工具(如 Grafana、Tableau)
  • 適合開發、DBA 快速排查

3. Log Exporter(最簡單)

  • 每分鐘(默認)將所有指標打印到日志文件
  • 日志級別:INFO
[INFO] Metrics: cache.myCache.CacheHits=12345io.datastorage.StorageSize=1073741824thread.pool.size=20

? 適合:

  • 快速調試
  • 無監控系統時臨時分析
  • 日志審計

4. OpenCensus Exporter(最現代)

  • 集成 OpenCensus(現為 OpenTelemetry 前身)
  • 可將指標發送到:
    • Prometheus
    • Stackdriver
    • Zipkin
    • Jaeger
    • 等支持 OpenCensus 的后端
使用步驟:
  1. 加載 ignite-opencensus 模塊
  2. 配置 Exporter
  3. 設置 OpenCensus 的 StatsCollector 將數據發往目標系統
支持的配置參數:
參數說明
filter過濾要導出的指標
period導出周期(如 10s)
sendInstanceName是否添加實例名標簽
sendNodeId是否添加節點 ID 標簽
sendConsistentId是否添加節點一致 ID 標簽

? 適合:

  • 云原生環境
  • 已有 Prometheus + Grafana 監控棧
  • 需要與微服務鏈路追蹤集成

📊 五、Histogram(直方圖)指標詳解

某些性能指標是分布式的,比如“SQL 查詢耗時”,不能只看平均值,要看分布。

Ignite 支持 Histogram(直方圖) 指標,僅通過 JMX 提供

示例:一個耗時直方圖

假設邊界為 [10ms, 100ms],則生成以下 JMX 屬性:

JMX 屬性名含義
queryTime_0_10耗時 < 10ms 的次數
queryTime_10_100耗時 10~100ms 的次數
queryTime_100_inf耗時 > 100ms 的次數

💡 你可以據此繪制響應時間分布圖,判斷是否存在慢查詢。


? 六、新 vs 舊 指標系統對比

特性舊系統新系統(2.8+)
統一性分散在各處統一注冊與管理
可擴展性支持自定義 Exporter
多通道輸出支持 JMX/SQL/Log/OpenCensus
SQL 查詢支持?? SYS.METRICS
云原生集成?? OpenCensus
配置方式各自為政統一在 metricExporterSpi

🛠? 七、最佳實踐建議

  1. 生產環境推薦組合

    <property name="metricExporterSpi"><list><bean class="org.apache.ignite.spi.metric.sql.SqlViewMetricExporterSpi"/><bean class="org.apache.ignite.spi.metric.opencensus.OpenCensusMetricExporterSpi"/></list>
    </property>
    
    • 用 SQL 做日常查詢
    • 用 OpenCensus 接入 Prometheus + Grafana
  2. 開發/測試環境

    • 加上 LogExporterSpi,方便看日志
  3. 避免過度收集

    • 如果不需要 Histogram,不要開啟
    • 使用 filter 減少不必要的指標輸出
  4. 自定義 Exporter

    • 實現 MetricExporterSpi 接口
    • 可對接 Kafka、Elasticsearch、InfluxDB 等

? 一句話總結

Ignite 新指標系統是一個“統一采集、多路分發”的監控中樞:它把所有指標按組(Register)管理,并允許你通過 JMX、SQL、日志或 OpenCensus 等多種方式實時查看,特別適合現代監控體系(如 Prometheus + Grafana)。


📌 類比記憶:

比喻解釋
Metrics水滴(一個個數據點)
Registers水桶(分類裝水)
Exporters水管(把水引到不同地方)
Node Config水泵控制面板(決定開哪幾根水管)

如果你想,我可以幫你:

  • 寫一個完整的 SYS.METRICS 常用查詢清單
  • 生成一份 Prometheus + Grafana 的監控面板配置
  • 提供自定義 Exporter 的代碼模板

需要嗎?😊

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91350.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91350.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91350.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【氮化鎵】GaN同質外延p-i-n二極管中星形與三角形擴展表面缺陷的電子特性

2025年7月23日,美國國家標準與技術研究院(NIST)與美國海軍研究實驗室的Andrew J. Winchester等人在《Applied Physics Letters》期刊發表了題為《Electronic properties of extended surface defects in homoepitaxial GaN diodes》的文章,基于光電發射電子顯微術、導電原子…

使用 Scrapy 框架定制爬蟲中間件接入淘寶 API 采集商品數據

一、引言 在電商數據分析、市場調研等領域&#xff0c;獲取淘寶平臺上的商品數據是一項常見需求。淘寶提供了 API 接口&#xff0c;允許開發者通過授權的方式獲取商品信息。本文將介紹如何使用 Scrapy 框架定制爬蟲中間件&#xff0c;實現對淘寶 API 的接入&#xff0c;從而高…

Jmeter全局變量跨線程組的使用

一、線程組1中從數據庫中查詢到字段值二、BeanShell取樣器中設置為全局變量#為什么說props.put("Out1",Out);其實是設置Out1為Jmeter的屬性了呢&#xff1f; 因為在后面的調試取樣器運行結果中&#xff0c;會發現如果只打開顯示變量開關&#xff0c;是看不到Out1運行…

前端技術棧詳解

前端技術棧是指構建現代Web應用程序所需的一系列技術和工具的集合。以下是當前主流前端技術棧的詳細解析&#xff1a; 一、核心基礎技術 1. HTML5 作用&#xff1a;網頁內容的結構化標記關鍵特性&#xff1a; 語義化標簽&#xff08;<header>, <section>, <arti…

Git Pull 時遇到 Apply 和 Abort 選項?詳解它們的含義與應對策略

在使用 Git 進行團隊協作時&#xff0c;git pull 是最常用的命令之一&#xff0c;用于拉取遠程倉庫的最新代碼并合并到本地分支。但有時執行 git pull 后&#xff0c;Git 會提示 ?Apply&#xff08;應用&#xff09;?? 和 ?Abort&#xff08;中止&#xff09;?? 兩個選項…

暑期算法訓練.11

目錄 47. 力扣203 移除鏈表元素 47.1 題目解析&#xff1a; ?編輯 47.2 算法思路&#xff1a; 47.3 代碼演示&#xff1a; ?編輯 48. 力扣2.兩數相加 48.1 題目解析&#xff1a; ?編輯 48.2 算法思路; 48.3 代碼演示&#xff1a; 48.4 總結反思&#xff1a; …

nl2sql grpo強化學習訓練,加大數據量和輪數后,準確率沒提升,反而下降了,如何調整

在NL2SQL任務中使用GRPO強化學習訓練時&#xff0c;增加數據量和訓練輪數后準確率下降&#xff0c;通常是由過擬合、訓練不穩定、獎勵函數設計不合理、數據質量問題或探索-利用失衡等原因導致的。以下是具體的診斷思路和調整策略&#xff0c;幫助定位問題并優化性能&#xff1a…

PHP/Java/Python實現:如何有效防止惡意文件上傳

文章目錄 木馬病毒防范:文件上傳如何徹底防止偽造文件類型 引言 一、文件類型偽造的原理與危害 1.1 常見偽造手段 1.2 潛在危害 二、防御體系設計 2.1 防御架構 三、核心防御技術實現 3.1 服務端驗證實現 3.1.1 文件內容檢測(Python示例) 3.1.2 擴展名與內容雙重驗證(Java示…

SpringBoot系列之基于Redis的分布式限流器

SpringBoot系列之基于Redis的分布式限流器 SpringBoot 系列之基于 Redis 的分布式限流器 圖文并茂,代碼即拷即用,支持 4 種算法(固定窗口 / 滑動窗口 / 令牌桶 / 漏桶) 一、為什么要用分布式限流? 單機 Guava-RateLimiter 在集群下會 各玩各的,流量漂移,無法全局控量。…

面試遇到的問題2

Redisson的看門狗相關問題 首先要明確一點&#xff0c;看門狗機制的使用方式是&#xff1a;在加鎖的時候不加任何參數&#xff0c;也就是&#xff1a; RLock lock redisson.getLock("myLock"); try {lock.lock(); // 阻塞式加鎖// 業務邏輯... } finally {lock.unl…

Linux—進程概念與理解

目錄 1.馮諾依曼體系結構 小結&#xff1a; 2.操作系統 概念&#xff1a; 結構示意圖&#xff1a; 理解操作系統&#xff1a; 用戶使用底層硬件層次圖&#xff1a;?編輯 3.進程 概念 結構示意圖 task_ struct內容分類 典型用法示例 觀察進程: 了解 PID PPID 查…

LeetCode 面試經典 150_數組/字符串_買賣股票的最佳時機(7_121_C++_簡單)(貪心)

LeetCode 面試經典 150_數組/字符串_買賣股票的最佳時機&#xff08;7_121_C_簡單&#xff09;題目描述&#xff1a;輸入輸出樣例&#xff1a;題解&#xff1a;解題思路&#xff1a;思路一&#xff08;貪心算法&#xff09;&#xff1a;代碼實現代碼實現&#xff08;思路一&…

Ubuntu 18.04 repo sync報錯:line 0: Bad configuration option: setenv

repo sync時報 line 0: Bad configuration option: setenv因為 Ubuntu 18.04 默認的 openssh-client 是 7.6p1&#xff0c;還不支持 setenv&#xff0c;但是.repo/repo/ssh.py 腳本中明確地傳入了 SetEnv 參數給 ssh&#xff0c;而你的 OpenSSH 7.6 不支持這個參數。需要按如下…

bug記錄-stylelint

BUG1不支持Vue文件內聯style樣式解決&#xff1a; "no-invalid-position-declaration": null

前端開發(HTML,CSS,VUE,JS)從入門到精通!第一天(HTML5)

一、HTML5 簡介1&#xff0e;HTML全稱是 Hyber Text Markup Language&#xff0c;超文本標記語言&#xff0c;它是互聯網上應用最廣泛的標記語言&#xff0c;簡單說&#xff0c;HTML 頁面就等于“普通文本HTML標記&#xff08;HTML標簽&#xff09;“。2&#xff0e;HTML 總共經…

智慧收銀系統開發進銷存:便利店、水果店、建材與家居行業的—仙盟創夢IDE

在數字化轉型的浪潮中&#xff0c;收銀系統已不再局限于簡單的收款功能&#xff0c;而是成為企業進銷存管理的核心樞紐。從便利店的快消品管理到建材家居行業的大宗商品調度&#xff0c;現代收銀系統通過智能化技術重塑了傳統商業模式。本文將深入探討收銀系統在不同行業進銷存…

三維掃描相機:工業自動化的智慧之眼——遷移科技賦能智能制造新紀元

在當今工業4.0時代&#xff0c;自動化技術正重塑生產流程&#xff0c;而核心工具如三維掃描相機已成為關鍵驅動力。作為工業自動化領域的“智慧之眼”&#xff0c;三維掃描相機通過高精度三維重建能力&#xff0c;解決了傳統制造中的效率瓶頸和精度痛點。遷移科技&#xff0c;自…

Jmeter的元件使用介紹:(九)監聽器詳解

監聽器主要是用來監聽腳本執行的取樣器結果。Jmeter的默認監聽器有&#xff1a;查看結果樹、聚合報告、匯總報告、用表格查看結果&#xff0c;斷言結果、圖形結果、Beanshell監聽器、JSR223監聽器、比較斷言可視化器、后端監聽器、郵件觀察器&#xff0c;本文介紹最常用的監聽器…

聯通元景萬悟 開源,搶先體驗!!!

簡介&#xff1a; 元景萬悟智能體平臺是一款面向企業級場景的一站式、商用license友好的智能體開發平臺&#xff0c;是業界第一款go語言&#xff08;后端&#xff09;開發的智能體開發平臺&#xff08;7月19日&#xff09;&#xff0c;coze studio開源是7月26日&#xff0c;同時…

Git之本地倉庫管理

一.什么是Git在學習工作中&#xff0c;我們經常會遇到改文檔的場景。一個文檔可能會被我們修改多次&#xff0c;而最終真正使用的可能是最先的幾版。而如果我們直接在原文檔上修改&#xff0c;就會導致無法找到最先的幾次。這也就導致我們要對我們所有的版本進行維護&#xff0…