摘要:架構(gòu)相關(guān)概念監(jiān)控虛擬機(jī)監(jiān)控指標(biāo)收集緩沖區(qū)監(jiān)控指標(biāo)。這是一個(gè)指標(biāo),與類(lèi)似,可以對(duì)指標(biāo)數(shù)據(jù)進(jìn)行采樣。內(nèi)存區(qū)域的最大字節(jié)數(shù)內(nèi)存區(qū)域的初始化字節(jié)數(shù)內(nèi)存池使用情況內(nèi)存池最大數(shù)內(nèi)存池初始化數(shù)線程區(qū)域監(jiān)控。線程峰值總啟動(dòng)線程數(shù)量,指標(biāo)。
簡(jiǎn)介
Prometheus 是一套開(kāi)源的系統(tǒng)監(jiān)控報(bào)警框架。它啟發(fā)于 Google 的 borgmon 監(jiān)控系統(tǒng),由工作在 SoundCloud 的 google 前員工在 2012 年創(chuàng)建,作為社區(qū)開(kāi)源項(xiàng)目進(jìn)行開(kāi)發(fā),并于 2015 年正式發(fā)布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成為受歡迎度僅次于 Kubernetes 的項(xiàng)目。
特性
強(qiáng)大的多維度數(shù)據(jù)模型:
時(shí)間序列數(shù)據(jù)通過(guò) metric 名和鍵值對(duì)來(lái)區(qū)分。
所有的 metrics 都可以設(shè)置任意的多維標(biāo)簽。
數(shù)據(jù)模型更隨意,不需要刻意設(shè)置為以點(diǎn)分隔的字符串。
可以對(duì)數(shù)據(jù)模型進(jìn)行聚合,切割和切片操作。
支持雙精度浮點(diǎn)類(lèi)型,標(biāo)簽可以設(shè)為全 unicode。
靈活而強(qiáng)大的查詢(xún)語(yǔ)句(PromQL):在同一個(gè)查詢(xún)語(yǔ)句,可以對(duì)多個(gè) metrics 進(jìn)行乘法、加法、連接、取分?jǐn)?shù)位等操作。
易于管理: Prometheus server 是一個(gè)多帶帶的二進(jìn)制文件,可直接在本地工作,不依賴(lài)于分布式存儲(chǔ)。
高效:平均每個(gè)采樣點(diǎn)僅占 3.5 bytes,且一個(gè) Prometheus server 可以處理數(shù)百萬(wàn)的 metrics。
使用 pull 模式采集時(shí)間序列數(shù)據(jù),這樣不僅有利于本機(jī)測(cè)試而且可以避免有問(wèn)題的服務(wù)器推送壞的 metrics。
可以采用 push gateway 的方式把時(shí)間序列數(shù)據(jù)推送至 Prometheus server 端。
可以通過(guò)服務(wù)發(fā)現(xiàn)或者靜態(tài)配置去獲取監(jiān)控的 targets。
有多種可視化圖形界面。
易于伸縮。
架構(gòu) 相關(guān)概念 hotspot 監(jiān)控Java Hotspot虛擬機(jī)監(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類(lèi)對(duì)象
獲取可訪問(wèn)的MBean實(shí)例并添加到成員變量中
獲取getName方法Method對(duì)象(緩沖池名稱(chēng))
獲取getMemoryUsed方法的Method對(duì)象(估算的jvm已使用內(nèi)存大?。?/p>
獲取getTotalCapacity方法的Method對(duì)象(預(yù)估的總的緩沖池大?。?/p>
獲取getCount方法的Method對(duì)象(緩沖池中大致的數(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ū)大小。這個(gè)metrics數(shù)據(jù)沒(méi)有收集到,可能和jvm的版本有關(guān),部署服務(wù)器使用的是jdk 6。
jvm_buffer_pool_used_buffers給定jvm的已使用緩沖區(qū)大小。這個(gè)metrics沒(méi)有收集到,可能和jvm的版本有關(guān),部署服務(wù)器使用的是jdk 6。
ClassLoadingExports提供jvm類(lèi)加載指標(biāo)。
jvm類(lèi)加載指標(biāo)數(shù)據(jù)由ClassLoadingMXBean提供。
當(dāng)前jvm已加載類(lèi)數(shù)量。
從jvm運(yùn)行開(kāi)始加載的類(lèi)的數(shù)量,這是一個(gè)Counter指標(biāo),遞增。
jvm_classes_unloaded_totaljvm運(yùn)行后卸載的類(lèi)數(shù)量,這是一個(gè)Counter指標(biāo)。生產(chǎn)環(huán)境一直是0。
GarbageCollectorExports提供jvm 垃圾收集器指標(biāo),指標(biāo)數(shù)據(jù)有GarbageCollectorMXBean列表提供。
jvm_gc_collection_seconds這是一個(gè)Summary指標(biāo),與Histogram類(lèi)似,可以對(duì)指標(biāo)數(shù)據(jù)進(jìn)行采樣。
內(nèi)存分配情況指標(biāo),這個(gè)指標(biāo)因java版本不兼容而沒(méi)有做監(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后臺(tái)線程數(shù)。
jvm_threads_peakjvm線程峰值
jvm_threads_started_totaljvm總啟動(dòng)線程數(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 客戶(hù)端共有的標(biāo)準(zhǔn)指標(biāo)。
process_cpu_seconds_total用戶(hù)和系統(tǒng)的總cpu使用時(shí)間
process_start_time_secondsStart time of the process since unix epoch in seconds
process_open_fds打開(kāi)的文件描述符數(shù)量
process_max_fds看支持打開(kāi)的最大文件描述符數(shù)量
PromQLtodo
參考資料Prometheus 入門(mén)與實(shí)踐
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74209.html
摘要:比如定義了基礎(chǔ)的數(shù)據(jù)類(lèi)型以及對(duì)應(yīng)的方法收集事件次數(shù)等單調(diào)遞增的數(shù)據(jù)收集當(dāng)前的狀態(tài),比如數(shù)據(jù)庫(kù)連接數(shù)收集隨機(jī)正態(tài)分布數(shù)據(jù),比如響應(yīng)延遲收集隨機(jī)正態(tài)分布數(shù)據(jù),和是類(lèi)似的庫(kù)的詳細(xì)解析可以參考本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 Prometheus從2016年加入CNCF,到2018年8月畢業(yè),現(xiàn)在已經(jīng)成為Kubernetes的官方監(jiān)控方案,接下來(lái)的幾篇文章將詳細(xì)解讀Promethu...
摘要:比如定義了基礎(chǔ)的數(shù)據(jù)類(lèi)型以及對(duì)應(yīng)的方法收集事件次數(shù)等單調(diào)遞增的數(shù)據(jù)收集當(dāng)前的狀態(tài),比如數(shù)據(jù)庫(kù)連接數(shù)收集隨機(jī)正態(tài)分布數(shù)據(jù),比如響應(yīng)延遲收集隨機(jī)正態(tài)分布數(shù)據(jù),和是類(lèi)似的庫(kù)的詳細(xì)解析可以參考本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 Prometheus從2016年加入CNCF,到2018年8月畢業(yè),現(xiàn)在已經(jīng)成為Kubernetes的官方監(jiān)控方案,接下來(lái)的幾篇文章將詳細(xì)解讀Promethu...
摘要:前言是一個(gè)開(kāi)源和社區(qū)驅(qū)動(dòng)的監(jiān)控報(bào)警時(shí)序數(shù)據(jù)庫(kù)的項(xiàng)目。集群上部署的應(yīng)用監(jiān)控部署在集群上的應(yīng)用。通過(guò)和的接口采集。相應(yīng),配置文件官方也提供了一份,今天我們就解讀一下該配置文件。對(duì)于服務(wù)的終端節(jié)點(diǎn),也需要加注解,為則會(huì)將作為監(jiān)控目標(biāo)。 前言 Prometheus 是一個(gè)開(kāi)源和社區(qū)驅(qū)動(dòng)的監(jiān)控&報(bào)警&時(shí)序數(shù)據(jù)庫(kù)的項(xiàng)目。來(lái)源于谷歌BorgMon項(xiàng)目。現(xiàn)在最常見(jiàn)的Kubernetes容器管理系統(tǒng)中,...
摘要:監(jiān)控告警是運(yùn)營(yíng)系統(tǒng)最核心的功能之一,騰訊內(nèi)部有一套很成熟的監(jiān)控告警平臺(tái),而且開(kāi)發(fā)運(yùn)維同學(xué)已經(jīng)習(xí)慣這套平臺(tái),如果我們針對(duì)容器再開(kāi)發(fā)一個(gè)監(jiān)控告警平臺(tái),會(huì)花費(fèi)很多精力,而且沒(méi)有太大的意義。也是一款付費(fèi)監(jiān)控解決方案,計(jì)劃收費(fèi)方案是美分小時(shí)。 如今,越來(lái)越多的公司開(kāi)始使用 Docker 了,現(xiàn)在來(lái)給大家看幾組數(shù)據(jù): 2 / 3 的公司在嘗試了 Docker 后最終使用了它 也就是說(shuō) Docker...
摘要:也就是說(shuō)整個(gè)監(jiān)控系統(tǒng)不是部署在中。非的怎么監(jiān)控是今天需要討論的問(wèn)題。官方給出的配置聯(lián)邦機(jī)制也實(shí)現(xiàn)了的擴(kuò)展。我們的集群外監(jiān)控的方案就基于此。在同一個(gè)數(shù)據(jù)中心,每個(gè)監(jiān)控其他的。上一級(jí)的監(jiān)控?cái)?shù)據(jù)中心級(jí)別的。 前言 有時(shí)候?qū)τ谝粋€(gè)公司,k8s集群或是所謂的caas只是整個(gè)技術(shù)體系的一部分,往往這個(gè)時(shí)候監(jiān)控系統(tǒng)不僅僅要k8s集群以及k8s中部署的應(yīng)用,而且要監(jiān)控傳統(tǒng)部署的項(xiàng)目。也就是說(shuō)整個(gè)監(jiān)控系...
閱讀 1999·2021-11-23 09:51
閱讀 1446·2021-11-18 10:02
閱讀 1037·2021-10-25 09:44
閱讀 2170·2019-08-26 18:36
閱讀 1693·2019-08-26 12:17
閱讀 1228·2019-08-26 11:59
閱讀 2804·2019-08-23 15:56
閱讀 3432·2019-08-23 15:05