使用jstat报告自定义JVM指标集
我一直缺少在JStat中配置自定義標頭的可能性 。 當然,有很多預定義的數(shù)據(jù)集,但是如果我們可以創(chuàng)建自己的數(shù)據(jù)集,那就更好了。 正如您可能已經(jīng)設(shè)計的那樣,我正在寫這篇文章,因為這樣的功能當然可用:)不幸的是,我在任何文檔中都沒有找到它,所以現(xiàn)在我將嘗試填補這一空白。
我們要做的第一件事是為自定義描述符提供可能的JStat選項。 該描述符只是一個文本文件,其中包含我們稱為“ jstat規(guī)范語言”的內(nèi)容。 為了使該自定義文件可用于JStat,我們應(yīng)將其放在以下路徑中:
如果要查看捆綁的選項,請參考OpenJDK存儲庫中的文件 。
規(guī)范語言與json文件非常相似,并且包含選項元素組。 每個選項都應(yīng)被威脅為一組列,這些列可以在單個jstat執(zhí)行中顯示。 僅舉一些預定義的選項:gcnew,gccause或printcompilation。
每個選項元素都包含幾個列段。 我認為列的含義很明顯:)而且,在此描述符中最重要的只是列規(guī)范。
每列必須至少包含兩個節(jié)點: header和data 。 標頭用于描述列,并且可以使用特殊的字符^對齊,我將其稱為“抓地力”。 Grip表示它將標題粘貼在列的特定側(cè)面,因此:
- ^名稱將向左對齊,
- ^名稱^將居中,
- 名稱^將在右側(cè)對齊。
下一個重要節(jié)點是數(shù)據(jù)列。 它使用PerfCounter度量標準,并且能夠進行一些基本的算術(shù)運算-例如加,減,除,乘以及使用括號將運算分組。 您還可以分組如果您想查看通過此機制可用的所有指標,則可以調(diào)用
$jcmd <PID> PerfCounter.print并查看輸出值。
樣本最小文件內(nèi)容可以像這樣:
option customgc {column {header "Tenuring"data sun.gc.policy.tenuringThreshold} }當我們使用以下命令調(diào)用它時:
$jstat -customgc <PID> 1s 3我們將看到類似以下內(nèi)容:
Tenuring 6 4 5我們還可以使用這些操作來顯示例如聯(lián)合年輕一代的用法:
option customgc {column {header "YoungC"data sun.gc.generation.0.space.0.used + sun.gc.generation.0.space.1.used + sun.gc.generation.0.space.2.used} }另外還有四列用于設(shè)置我們的列的布局。
| 生的 | 1個 | 沒有縮放 |
| 百分 | 1/100 | 轉(zhuǎn)換成百分比 |
| ? | 1024 | 公斤 |
| 中號 | 1024 * 1024 | 兆 |
| G | 1024 * 1024 * 1024 | 千兆 |
| ? | 10 ^ -9 | 納米 |
| ü | 10 ^ -6 | 微 |
| 米 | 10 ^ -3 | 毫 |
| 我們 | 10 ^ -6 | 微秒 |
| 多發(fā)性硬化癥 | 10 ^ -3 | 毫秒 |
| s | 1個 | 秒 |
| 分 | 1/60 | 分鐘 |
| H | 1/3600 | 小時 |
現(xiàn)在,讓我們看一看優(yōu)美的示例,該示例將展示我們?nèi)绾问褂闷渌麑傩?#xff1a;
option customgc {column {header "YoungC^"data sun.gc.generation.0.space.0.used + sun.gc.generation.0.space.1.used + sun.gc.generation.0.space.2.usedalign rightscale Mwidth 7format "0.0"}column {header "OldC^"data sun.gc.generation.1.space.0.usedalign rightscale Mwidth 7format "0.0"} }產(chǎn)生:
YoungC OldC67.7 161.037.8 165.492.2 182.8主題結(jié)束:)祝你好運!
翻譯自: https://www.javacodegeeks.com/2015/03/using-jstat-to-report-custom-jvm-metric-sets.html
總結(jié)
以上是生活随笔為你收集整理的使用jstat报告自定义JVM指标集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate陷阱
- 下一篇: 两个tplink无线路由器怎么桥接如何用