摘要:架構(gòu)相關(guān)概念監(jiān)控虛擬機監(jiān)控指標(biāo)收集緩沖區(qū)監(jiān)控指標(biāo)。這是一個指標(biāo),與類似,可以對指標(biāo)數(shù)據(jù)進行采樣。內(nèi)存區(qū)域的最大字節(jié)數(shù)內(nèi)存區(qū)域的初始化字節(jié)數(shù)內(nèi)存池使用情況內(nèi)存池最大數(shù)內(nèi)存池初始化數(shù)線程區(qū)域監(jiān)控。線程峰值總啟動線程數(shù)量,指標(biāo)。
簡介
Prometheus 是一套開源的系統(tǒng)監(jiān)控報警框架。它啟發(fā)于 Google 的 borgmon 監(jiān)控系統(tǒng),由工作在 SoundCloud 的 google 前員工在 2012 年創(chuàng)建,作為社區(qū)開源項目進行開發(fā),并于 2015 年正式發(fā)布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成為受歡迎度僅次于 Kubernetes 的項目。
特性
強大的多維度數(shù)據(jù)模型:
時間序列數(shù)據(jù)通過 metric 名和鍵值對來區(qū)分。
所有的 metrics 都可以設(shè)置任意的多維標(biāo)簽。
數(shù)據(jù)模型更隨意,不需要刻意設(shè)置為以點分隔的字符串。
可以對數(shù)據(jù)模型進行聚合,切割和切片操作。
支持雙精度浮點類型,標(biāo)簽可以設(shè)為全 unicode。
靈活而強大的查詢語句(PromQL):在同一個查詢語句,可以對多個 metrics 進行乘法、加法、連接、取分?jǐn)?shù)位等操作。
易于管理: Prometheus server 是一個多帶帶的二進制文件,可直接在本地工作,不依賴于分布式存儲。
高效:平均每個采樣點僅占 3.5 bytes,且一個 Prometheus server 可以處理數(shù)百萬的 metrics。
使用 pull 模式采集時間序列數(shù)據(jù),這樣不僅有利于本機測試而且可以避免有問題的服務(wù)器推送壞的 metrics。
可以采用 push gateway 的方式把時間序列數(shù)據(jù)推送至 Prometheus server 端。
可以通過服務(wù)發(fā)現(xiàn)或者靜態(tài)配置去獲取監(jiān)控的 targets。
有多種可視化圖形界面。
易于伸縮。
架構(gòu) 相關(guān)概念 hotspot 監(jiān)控Java Hotspot虛擬機監(jiān)控指標(biāo)收集
BufferPoolsExportsJVM緩沖區(qū)監(jiān)控指標(biāo)。
bufferPool指標(biāo)是從MBean獲取的,BufferPoolsExports構(gòu)造函數(shù):
public BufferPoolsExports() { try { final Class> bufferPoolMXBeanClass = Class.forName("java.lang.management.BufferPoolMXBean"); bufferPoolMXBeans.addAll(accessBufferPoolMXBeans(bufferPoolMXBeanClass)); getName = bufferPoolMXBeanClass.getMethod("getName"); getMemoryUsed = bufferPoolMXBeanClass.getMethod("getMemoryUsed"); getTotalCapacity = bufferPoolMXBeanClass.getMethod("getTotalCapacity"); getCount = bufferPoolMXBeanClass.getMethod("getCount"); } catch (ClassNotFoundException e) { LOGGER.fine("BufferPoolMXBean not available, no metrics for buffer pools will be exported"); } catch (NoSuchMethodException e) { LOGGER.fine("Can not get necessary accessor from BufferPoolMXBean: " + e.getMessage()); } }
獲取Mean類對象
獲取可訪問的MBean實例并添加到成員變量中
獲取getName方法Method對象(緩沖池名稱)
獲取getMemoryUsed方法的Method對象(估算的jvm已使用內(nèi)存大小)
獲取getTotalCapacity方法的Method對象(預(yù)估的總的緩沖池大小)
獲取getCount方法的Method對象(緩沖池中大致的數(shù)量)
collect()方法返回buffer pool指標(biāo)收集器收集的所有指標(biāo)信息。
jvm_buffer_pool_used_bytesjvm緩沖區(qū)使用情況,包括Code Cache(編譯后的代碼緩存,不同版本的jvm默認(rèn)大小不同)、PS Old Gen(老年代)、PS Eden Space(伊甸園)、PS Survivor Space(幸存者)、PS Perm Gen(永久代)。
給定jvm的估算緩沖區(qū)大小。這個metrics數(shù)據(jù)沒有收集到,可能和jvm的版本有關(guān),部署服務(wù)器使用的是jdk 6。
jvm_buffer_pool_used_buffers給定jvm的已使用緩沖區(qū)大小。這個metrics沒有收集到,可能和jvm的版本有關(guān),部署服務(wù)器使用的是jdk 6。
ClassLoadingExports提供jvm類加載指標(biāo)。
jvm類加載指標(biāo)數(shù)據(jù)由ClassLoadingMXBean提供。
當(dāng)前jvm已加載類數(shù)量。
從jvm運行開始加載的類的數(shù)量,這是一個Counter指標(biāo),遞增。
jvm_classes_unloaded_totaljvm運行后卸載的類數(shù)量,這是一個Counter指標(biāo)。生產(chǎn)環(huán)境一直是0。
GarbageCollectorExports提供jvm 垃圾收集器指標(biāo),指標(biāo)數(shù)據(jù)有GarbageCollectorMXBean列表提供。
jvm_gc_collection_seconds這是一個Summary指標(biāo),與Histogram類似,可以對指標(biāo)數(shù)據(jù)進行采樣。
內(nèi)存分配情況指標(biāo),這個指標(biāo)因java版本不兼容而沒有做監(jiān)控。
MemoryPoolsExportsjvm 內(nèi)存區(qū)域指標(biāo)。
jvm_memory_bytes_usedjvm已用內(nèi)存區(qū)域。
Committed (bytes) of a given JVM memory area
jvm_memory_bytes_maxjvm內(nèi)存區(qū)域的最大字節(jié)數(shù)
jvm_memory_bytes_initjvm內(nèi)存區(qū)域的初始化字節(jié)數(shù)
jvm_memory_pool_bytes_usedjvm內(nèi)存池使用情況
jvm_memory_pool_bytes_committedCommitted bytes of a given JVM memory pool.
jvm_memory_pool_bytes_maxjvm內(nèi)存池最大數(shù)
jvm_memory_pool_bytes_initjvm內(nèi)存池初始化數(shù)
ThreadExportsjvm線程區(qū)域監(jiān)控。
jvm_threads_currentjvm當(dāng)前線程數(shù)。
jvm_threads_daemonjvm后臺線程數(shù)。
jvm_threads_peakjvm線程峰值
jvm_threads_started_totaljvm總啟動線程數(shù)量,Counter指標(biāo)。
jvm_threads_deadlocked死鎖線程數(shù)量
jvm_threads_deadlocked_monitorCycles of JVM-threads that are in deadlock waiting to acquire object monitors
jvm_threads_state當(dāng)前線程的狀態(tài)
jvm版本信息
jvm_info版本信息,可以看到生產(chǎn)環(huán)境使用的是:1.6.0.29-b11
StandardExports所有prometheus 客戶端共有的標(biāo)準(zhǔn)指標(biāo)。
process_cpu_seconds_total用戶和系統(tǒng)的總cpu使用時間
process_start_time_secondsStart time of the process since unix epoch in seconds
process_open_fds打開的文件描述符數(shù)量
process_max_fds看支持打開的最大文件描述符數(shù)量
PromQLtodo
參考資料Prometheus 入門與實踐
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74209.html
摘要:比如定義了基礎(chǔ)的數(shù)據(jù)類型以及對應(yīng)的方法收集事件次數(shù)等單調(diào)遞增的數(shù)據(jù)收集當(dāng)前的狀態(tài),比如數(shù)據(jù)庫連接數(shù)收集隨機正態(tài)分布數(shù)據(jù),比如響應(yīng)延遲收集隨機正態(tài)分布數(shù)據(jù),和是類似的庫的詳細解析可以參考本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 概述 Prometheus從2016年加入CNCF,到2018年8月畢業(yè),現(xiàn)在已經(jīng)成為Kubernetes的官方監(jiān)控方案,接下來的幾篇文章將詳細解讀Promethu...
摘要:比如定義了基礎(chǔ)的數(shù)據(jù)類型以及對應(yīng)的方法收集事件次數(shù)等單調(diào)遞增的數(shù)據(jù)收集當(dāng)前的狀態(tài),比如數(shù)據(jù)庫連接數(shù)收集隨機正態(tài)分布數(shù)據(jù),比如響應(yīng)延遲收集隨機正態(tài)分布數(shù)據(jù),和是類似的庫的詳細解析可以參考本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 概述 Prometheus從2016年加入CNCF,到2018年8月畢業(yè),現(xiàn)在已經(jīng)成為Kubernetes的官方監(jiān)控方案,接下來的幾篇文章將詳細解讀Promethu...
摘要:前言是一個開源和社區(qū)驅(qū)動的監(jiān)控報警時序數(shù)據(jù)庫的項目。集群上部署的應(yīng)用監(jiān)控部署在集群上的應(yīng)用。通過和的接口采集。相應(yīng),配置文件官方也提供了一份,今天我們就解讀一下該配置文件。對于服務(wù)的終端節(jié)點,也需要加注解,為則會將作為監(jiān)控目標(biāo)。 前言 Prometheus 是一個開源和社區(qū)驅(qū)動的監(jiān)控&報警&時序數(shù)據(jù)庫的項目。來源于谷歌BorgMon項目。現(xiàn)在最常見的Kubernetes容器管理系統(tǒng)中,...
摘要:監(jiān)控告警是運營系統(tǒng)最核心的功能之一,騰訊內(nèi)部有一套很成熟的監(jiān)控告警平臺,而且開發(fā)運維同學(xué)已經(jīng)習(xí)慣這套平臺,如果我們針對容器再開發(fā)一個監(jiān)控告警平臺,會花費很多精力,而且沒有太大的意義。也是一款付費監(jiān)控解決方案,計劃收費方案是美分小時。 如今,越來越多的公司開始使用 Docker 了,現(xiàn)在來給大家看幾組數(shù)據(jù): 2 / 3 的公司在嘗試了 Docker 后最終使用了它 也就是說 Docker...
摘要:也就是說整個監(jiān)控系統(tǒng)不是部署在中。非的怎么監(jiān)控是今天需要討論的問題。官方給出的配置聯(lián)邦機制也實現(xiàn)了的擴展。我們的集群外監(jiān)控的方案就基于此。在同一個數(shù)據(jù)中心,每個監(jiān)控其他的。上一級的監(jiān)控數(shù)據(jù)中心級別的。 前言 有時候?qū)τ谝粋€公司,k8s集群或是所謂的caas只是整個技術(shù)體系的一部分,往往這個時候監(jiān)控系統(tǒng)不僅僅要k8s集群以及k8s中部署的應(yīng)用,而且要監(jiān)控傳統(tǒng)部署的項目。也就是說整個監(jiān)控系...
閱讀 1840·2021-11-23 09:51
閱讀 1294·2021-11-18 10:02
閱讀 971·2021-10-25 09:44
閱讀 2109·2019-08-26 18:36
閱讀 1630·2019-08-26 12:17
閱讀 1154·2019-08-26 11:59
閱讀 2751·2019-08-23 15:56
閱讀 3363·2019-08-23 15:05