当前位置:网站首页>手册不全,如何手工刨出TongWeb的監控信息?
手册不全,如何手工刨出TongWeb的監控信息?
2022-07-19 14:18:00 【蘿蔔白菜。】
前言
TongWeb提供幾類監控接口,如何通過這些接口獲取信息? 我們通過TongWeb7.0.4.2版本講解下獲取方式。注:換個版本就不一定對了。
一、通過JMX接口獲取Mbean信息
TongWeb的JMX默認開啟,通過server.log獲取JMX url,更多見:https://blog.csdn.net/realwangpu/article/details/109506744
[INFO] [main] [systemout] [tuserport:0;jcport:0]
[INFO] [main] [admin] [URL for the Standard JMXConnectorServer : (service:jmx:rmi:///jndi/rmi://192.168.163.1:7200/jmxrmi)]
[INFO] [main] [core] [Starting service TONGWEB]
[INFO] [main] [core] [Starting Servlet Engine: TongWeb]
編寫JMX程序,主要獲取的信息能常有:JVM內存、線程池、數據源連接池、應用session數、應用請求數等,demo如下:
package com.tong;
import java.util.HashMap;
import java.util.Map;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
public class TestJMX {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
// 創建JMX 的URL
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://127.0.0.1:7200/jmxrmi");
// 構造獲取連接所使用的認證信息,使用安全域的用戶。
Map env = new HashMap();
env.put("jmx.remote.credentials", new String[] { "thanos", "thanos123.com" });
JMXConnector connector = JMXConnectorFactory.connect(url, env);
MBeanServerConnection mbsc = connector.getMBeanServerConnection();
//指定ObjectName
ObjectName mbeanName = new ObjectName("TONGWEB:type=ThreadPool,name=\"http-nio2-0.0.0.0-8088\"");
Object obj = mbsc.getAttribute(mbeanName, "maxThreads");
System.out.println("8088 maxThreads Attribute is " + obj.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}想獲取相關的監控值,主要問題是ObjectName的獲取。因為TongWeb手册上不全、不同TongWeb小版本號的ObjectName也不一樣,所以想獲取真正的ObjectName只有一條路:通過打開 jconsole手工查找相應的監控值,一字訣:刨。
注意:一定要注意TongWeb的小版本號,比如:有的TongWeb版本8088端口的ObjectName為: TONGWEB:type=ThreadPool,name="http-nio2-0.0.0.0-8088" ,而有的TongWeb版本8088端口的ObjectName為: TONGWEB:type=ThreadPool,name="http-nio2-8088" ;如下圖換為無敵浩克Hulk數據源後,監控值更不同了。

二、通過rest接口獲取TongWeb信息
在應用程序中導入 HttpClient4 所需 jar 包 httpclient-4.x.jar、 httpcore-4.x.jar、commons-logging.jar,${TW_HOME}/lib/agent 目錄下的 common-7.0.jar 文件。demo如下:
package com.tong;
import com.tongweb.httpclient.utils.HttpClient4Util;
public class TestRest {
public static void main(String[] args) {
String result = null;
try {
//注意改用一個thanos外的用戶,否則會踢出已登錄控制臺的thanos用戶
result = HttpClient4Util.execute("/rest/api/listener_detail", "GET", "thanos", "thanos123.com", "127.0.0.1",
"9060", null);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}注意:這個rest 接口只有手册提供的部分接口,手册提供就提供了,沒提供的就不知道了,不能像jconsole一樣去刨。
三、通過集中管理獲取所有節點監控值
采用集中管理方式,通過heimdall管理TongWeb各個節點,然後訪問 http://127.0.0.1:9060/heimdall/notinrealm/rest/monitor/ibm/view 即可得到各個TongWeb節點的運行狀態、內存、JDBC數據源、線程池、應用的監控信息的json數據。
{
"nodes": [
{
"monitorList": [
{
"appname": "",
"dbname": "",
"monitorName": "nodestatus",
"monitorType": "warn",
"monitorValue": "stopped",
"servletName": "",
"threadPoolName": ""
},
{
"appname": "",
"dbname": "",
"monitorName": "OOM",
"monitorType": "warn",
"monitorValue": "",
"servletName": "",
"threadPoolName": ""
}
],
"nodeHome": "D:\\TongWeb7042\\TW7E\\domains\\aa",
"nodeIp": "192.168.163.1",
"nodeStatus": "stopped"
}
]
}边栏推荐
- Luogu p2422 good feeling solution
- 2022年中国AI医学影像行业概览报告
- 活动预告|Apache Doris x Apache SeaTunnel 联合 Meetup 开启报名!
- Introduction:Multiple DataFrames
- 第二届「绿树杯」数学竞赛排名与评析
- Homework on the first day of summer rhcsa training
- Compréhension initiale de la fonction - partie 2
- Android开发大厂面试,做好这3个准备,规划好自己
- asterisk: rejected because extension not found in context ‘from-ipphone‘
- Is it true that tongdaxin opens an account? Is it safe for tongdaxin to open an account?
猜你喜欢
![[7.15] code source - [neat array 2] [ternary cycle] [reverse pair on tree] [sequence of cochlea]](/img/86/8300586819e76502134e8467dc28a3.png)
[7.15] code source - [neat array 2] [ternary cycle] [reverse pair on tree] [sequence of cochlea]

Use of Google browser developer tools (Master!)

Uniapp Gaode map positioning function

暑期rhcsa培训第一天作业

Huawei wireless devices are configured with static load balancing

谷歌浏览器开发者工具的使用(掌握!)

Tencent cloud object storage operation process

非凸優化問題經典必看綜述“從對稱性到幾何性”,羅切斯特大學等

FreeRTOS个人笔记-支持多优先级

4 a company has branches in six cities C1, C2, C3... C6. The connection between cities Ci and CJ (I, j=1,2,3,... 6) and the cost are listed in the following weighted adjacency matrix C
随机推荐
asterisk:No compatible codecs, not accepting this offer!
STL string output and modification
Huawei technologies:jonathan Krolikowski | from design to deployment, zero contact deep reinforcement learning WLANs
unity 实现UI-背包装备拖拽功能
【Acwing】第60场周赛 题解
Take a look at try{}catch{}
Colliding Mice碰撞老鼠工程分析
华为无线设备配置智能漫游
A review of classical must see for Nonconvex Optimization Problems "from symmetry to geometry", University of Rochester, et al
NFT市场格局仍未变化,Okaleido能否掀起新一轮波澜?
FreeRTOS implementation of idle tasks and blocking delay
毕设-基于SSM在线预约挂号系统
分析并HOOK SSHD来劫持密码
FreeRTOS personal notes - multi priority support
非凸优化问题经典必看综述“从对称性到几何性”,罗切斯特大学等
No.3 advanced assembly
Introduction:Multiple DataFrames
After 2000, he was hired as a special associate researcher of Nanjing University. He went to primary school at the age of 4 and was admitted to Nanjing University at the age of 14!
JVM性能优化
[Flink] Flink will report an error if it fails to set checkpoints once. Setlerablecheckpointfailurenumber does not work