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