HM Interface
HM provides API for external data access in the format below:
http://ip:port/hm/cache/q
HM interface allows query of cached profile data, monitoring data and iplink data. The default exposed query port is 8765. Below are instances to query the specifized types of data.
1. Profile Data
Query all profile data
POST localhost:8765/hm/cache/q { "intent":"profile", "request":{ } }
Returned result
Below is the format of the result returned: {rs: "{"UAV@http://127.0.0.1:8080/apphub/…{}}}\..."}"} Below is the format of detalied contents in rs, wherein the key, composed of {appgroup}@{appurl}, is the unique identifier of each instance and the value is the profile data of the instance { UAV@http://127.0.0.1:8080/:"{...}" UAV@http://127.0.0.1:8080/apphub/:"{...}" UAV@http://127.0.0.1:10101/:"{...}" UAV@http://127.0.0.1:10102/:"{...}" UAV@jse://127.0.0.1/com.alibaba.rocketmq.broker.BrokerStartup-2144:"{...}" UAV@jse://127.0.0.1/com.alibaba.rocketmq.namesrv.NamesrvStartup-3980:"{...}" UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424:"{...}" } Below is the format of the profile data { appdes:"" appgroup:"UAV" appid:"ROOT" appmetrics:"{"M24hr_UsrLog":{}}" appurl:"http://127.0.0.1/" cpt.clients:"[]" cpt.filters:"{"org.apache.tomcat.websocket.server.WsFilter":{"dyn":{"servletNames":[],"urlPatterns":["/*"],"filterName":"Tomcat WebSocket (JSR356) Filter"}}}" cpt.listeners:"{"org.apache.tomcat.websocket.server.WsContextListener":{"dyn":{}},"org.apache.tomcat.websocket.server.WsSessionListener":{"dyn":{}}}" cpt.services:"{}" host:"DESKTOP-84FNUC2" ip:"127.0.0.1" jars.lib:"@LAZY" logs.log4j:"{}" mofmeta:"{"NetCardIndex":"0","NetCardName":""}" state:"1" svrid:"E:/UAVIDE/tomcat/apache-tomcat-7.0.65---E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0" time:1512455925270 webapproot:"E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ROOT" }
Query the profile data of a specifized appgroup
The instance below queries all the profile data of UAV
POST localhost:8765/hm/cache/q { "intent":"profile", "request":{ "fkey":"appgroup", "fvalue":"UAV" } }
Returned result
The format is identical with that when all profile data is queried. But the result only includes the profile data of a specifized appgroup.Query the profile data of a specifized appurl
The instance below queries the profile data of all instances of the appurl http://127.0.0.1:8080/apphub/
POST localhost:8765/hm/cache/q { "intent":"profile", "request":{ "fkey":"appurl", "fvalue":"http://127.0.0.1:8080/apphub/" } }
Returned result
The format is identical with that when all profile data is queried. But the result only includes the profile data of a specifized appurl.Query the lib data of an application instance in a specifized user group
The instance below queries the jar package data under lib of an application instance with the appurl as http://127.0.0.1:8080/apphub/ and the appgroup as UAV
POST localhost:8765/hm/cache/q { "intent":"profile.detail", "request":{ "target":"profile.info.jarlib", "field":"UAV@http://127.0.0.1:8080/apphub/" } }
Returned result
Below is the format of the result returned {rs: "{"UAV@http://127.0.0.1:8080/apphub/…reditease.uav.hook.httpclients-1.0-sync3.jar\"}"}"} Below is the format of detalied contents in rs, wherein the key is the application identifier and the value is the jar package data of the application instance {UAV@http://127.0.0.1:8080/apphub/: "{"com.creditease.uav.logging-1.0.jar":"file:/E:/UA…m.creditease.uav.hook.httpclients-1.0-sync3.jar"}"} Below is the detailed content of jar package data, wherein the key is the name of jar package and the value is the absolute path of jar package { aopalliance-repackaged-2.4.0-b31.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/aopalliance-repackaged-2.4.0-b31.jar" aredis-api-1.4.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/aredis-api-1.4.jar" com.creditease.uav.base-1.0.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.base-1.0.jar" com.creditease.uav.cache.redis-1.0.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.cache.redis-1.0.jar" com.creditease.uav.fastjson-1.2.6.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.fastjson-1.2.6.jar" com.creditease.uav.helper-1.0.jar:"file:/E:/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.creditease.uav.console/WEB-INF/lib/com.creditease.uav.helper-1.0.jar" com.creditease.uav.hook.httpclients-1.0-async.jar:"file:/E:/UAVCode/uavGitLab/ce-datamonitorsystem/com.creditease.uav.monitorframework.buildComponent/target/build/com.creditease.uav.appfrk/com.creditease.uav.hook.httpclients-1.0-async.jar" com.creditease.uav.hook.httpclients-1.0-sync3.jar:"file:/E:/UAVCode/uavGitLab/ce-datamonitorsystem/com.creditease.uav.monitorframework.buildComponent/target/build/com.creditease.uav.appfrk/com.creditease.uav.hook.httpclients-1.0-sync3.jar" .... }
Query the data of client components of all application instances
POST localhost:8765/hm/cache/q { "intent":"clients", "request":{ } }
Returned result
Below is the format of the result returned {rs: "{"C@UAV@http://127.0.0.1:10102/":"[{\"values\"…lasticsearch.bootstrap.Elasticsearch-13424":"[]"}"} Below is the format of detailed contents in rs, wherein the key is the application identifier and the value is the client-side data included in the instance { C@UAV@http://127.0.0.1:8080/:"[...]" C@UAV@http://127.0.0.1:8080/apphub/:"[...]" C@UAV@http://127.0.0.1:10101/:"[...]" C@UAV@http://127.0.0.1:10102/:"[...]" C@UAV@jse://127.0.0.1/com.alibaba.rocketmq.broker.BrokerStartup-2144:"[...]" C@UAV@jse://127.0.0.1/com.alibaba.rocketmq.namesrv.NamesrvStartup-3980:"[...]" C@UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424:"[...]" } Below is the detailed content of the client data of an instance [ {"values":{"urls":{"/ah/app":{"ACpost":1512455355327,"ts":1512455355327},"/ah/group":{"ACpost":1512455355321,"ts":1512455355321}},"type":"apache.http.AsyncClient","ts":1512455355327,"state":"-1"},"id":"http://127.0.0.1:8011"}, {"values":{"urls":{"ap":{"ACauth":1512455530875,"ACget":1512458763341,"ACconfig":1512455530875,"AChmget":1512455528761,"AChmset":1512455355384,"AChgetall":1512455528756,"ts":1512458763341}},"type":"redis.client.Aredis","svr":"redis","ts":1512458763341,"state":"1"},"id":"redis://127.0.0.1:6379"}, {"values":{"urls":{"/hm/cache/q":{"ACpost":1512458763356,"ts":1512458763356}},"type":"apache.http.AsyncClient","ts":1512458763356,"state":"1"},"id":"http://127.0.0.1:8765"} ]
2. Monitoring Data
The example below queried the err and RC data of the application http://127.0.0.1:8080/com.creditease.uav.console with the IP as 127.0.0.1. The time range queried is between 1512450873892 and 1512450933892. It also supports the query of such metrics as appResp.warn, appResp.EXT, appResp.tmax, appResp.tsum, appResp.tavg, appResp.tmin and appResp.count.
POST localhost:8765/hm/cache/q
{
"intent":"monitor",
"request":{
"cache.query.json":"{
\"start\":1512450873892,
\"end\":1512450933892,
\"queries\":[
{
\"aggregator\":\"avg\",
\"metric\":\"appResp.err\",
\"tags\":{
\"ip\":\"127.0.0.1\",
\"pgid\":\"E/u003a/UAVIDE/tomcat/apache-tomcat-7.0.65---E/u003a/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0\",
\"instid\":\"http/u003a//127.0.0.1/u003a8080/apphub---apphub\"
}
},
{
\"aggregator\":\"avg\",
\"metric\":\"appResp.RC\",
\"tags\":{
\"ip\":\"127.0.0.1\",
\"pgid\":\"E/u003a/UAVIDE/tomcat/apache-tomcat-7.0.65---E/u003a/UAVIDE/defaultworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0\",
\"instid\":\"http/u003a//127.0.0.1/u003a8080/apphub---apphub\",
\"ptag\":\"*\"
}
}
]
}"
}
}
Returned result
Below is the format of the result returned
{rs: "[{"metric":"appResp.RC200","tags":{"ip":"127.0.0.1…}]"}
Below is the format of the detailed content in rs
[
{metric: "appResp.RC200", tags: {…}, dps: {…}}
{metric: "appResp.RC304", tags: {…}, dps: {…}}
{metric: "appResp.RC302", tags: {…}, dps: {…}}
{metric: "appResp.err", tags: {…}, dps: {…}}
]
Tags are basically identical with those in the request parameter. The difference lies in the fact that if there is ptag: "*” in the request parameter, then the result returned shall be further classified. Take appResp.RC as an example. The result returned shall be classified based on RC200, RC304 and RC302.
Below is the format of the detailed content in dps
{
1512460980270:347
1512460995260:349
1512461010270:353
1512461025270:353
}
3. IPlink Data
POST localhost:8765/hm/cache/q
{
"intent":"iplnk",
"request":{
"appgpids":"[
\"UAV@http://127.0.0.1:8080/apphub/\",
\"UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424\"
]"
}
}
Returned result
Below is the format of the result returned
{rs: "{"UAV@jse://127.0.0.1/org.elasticsearch.bootst…56.1\":1512462439074},\"ts\":1512462439074}"}}"}
Below is the format of detailed contents in rs, wherein the key is the application identifier and the value is the iplink data
{
UAV@http://127.0.0.1:8080/apphub/:{...}
UAV@jse://127.0.0.1/org.elasticsearch.bootstrap.Elasticsearch-13424:{}
}
Below is the format of the detailed content of iplink data
{
browser://127.0.0.1:8080/apphub:"{"urls":{"/rs/gui/loadTemp":1512455530051,"/rs/godeye/profile/q/iplink":1512462406887,"/uavapp_godeye/appmonitor/main.html":1512462378880,"/rs/godeye/profile/q/cache":1512462439074,"/rs/godeye/monitor/q/hm":1512462406898,"/rs/gui/login":1512455528725,"/rs/gui/loadMainMenu":1512455528745,"/rs/gui/jumpAppPage":1512455529989,"/rs/gui/loadUserManageInfo":1512455528765},"clients":{"user://192.168.56.1":1512462439074},"ts":1512462439074}"
browser://127.0.0.1:8080/apphub-ts:"1512462439074"
}
http://ip:port/ivc/q
Users are allowed to query the lightweight invocation chain data via this interface, with the default query port being 7799
1. Instance of Query for the Invocation Chain Data
POST localhost:7799/ivc/q
{
"intent":"qApp",
"request":{
"appuuid":"http://127.0.0.1:8080/apphub---apphub",
"stime":"1512377369878",
"etime":"1512463769878",
indexdate:"2017-12-7",//The date when the invocation chain is generated. Optional if logs generated within the current week are to be queried
"eptype":"E,S",
"from":"0",
"size":"100",
"sort":"cost=DESC"
}
}
Returned result
Below is the format of the result returned, wherein rs is the invocation chain data and count is the total number of data
{
rs:[{"traceid":"127.0.0.1_8080_1512463713021_56_6….console","state":"200" ,"class":"","eptype":"E"}]",
count: "25"
}
Below is the format of the detailed content in rs
[
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 835, ipport: "127.0.0.1:8080", method: "loadTemp", …}
{traceid: "127.0.0.1_8080_1512463713886_53_7", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 180, ipport: "127.0.0.1:8080", method: "createValidataCode", …}
{traceid: "127.0.0.1_8080_1512463740450_55_11", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 28, ipport: "127.0.0.1:8080", method: "loadUserManageInfo", …}
{traceid: "127.0.0.1_8080_1512463740398_54_8", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 20, ipport: "127.0.0.1:8080", method: "login", …}
{traceid: "127.0.0.1_8080_1512463743000_56_17", appuuid: "http://127.0.0.1:8080/apphub---apphub", cost: 14, ipport: "127.0.0.1:8080", method: "getMonitorData", …}
...
}
Below is the format of the detailed content of each invocation chain
{
appgroup:"UAV"
appid:"com.creditease.uav.console"
appuuid:"http://127.0.0.1/apphub---apphub"
class:"com.creditease.uav.apphub.rest.GUIService"
cost:835
epinfo:"http.service,mtd=GET,src=10.10.168.155"
eptype:"E"
ipport:"127.0.0.1:8080"
method:"loadTemp"
parentid:"N"
spanid:"1"
state:"200"
stime:1512463713021
traceid:"127.0.0.1_8080_1512463713021_56_6"
url:"http://localhost:8080/apphub/rs/gui/loadTemp"
}
2. Instance of Query for Invocation Chain Details
POST localhost:7799/ivc/q
{
"intent":"qTrace",
"request":{
"traceid":"127.0.0.1_8080_1512463713021_56_6",
"from":"0",
"size":"1000",
"sort":"spanid=ASC,stime=ASC,epinfo=ASC"
}
}
Returned result
Below is the format of the result returned, wherein rs is the invocation chain details and count is the total number of data
{
rs: "[{"traceid":"127.0.0.1_8080_1512463713021_56_6...ase.uav.httpasync.HttpAsyncClient","eptype":"C"}]",
count: "8"
}
Below is the format of the detailed content in rs
[
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 835, ipport: "127.0.0.1:8080", method: "loadTemp", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 100, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 75, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 73, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 59, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 58, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 96, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
{traceid: "127.0.0.1_8080_1512463713021_56_6", appuuid: "http://127.0.0.1:8080/apphub---aphub", cost: 18, ipport: "127.0.0.1:8080", method: "doHttpOutboundAsyncInternal", …}
]
The format of the detailed content for each log is identical with the content structure of the invocation chain data
http://ip:port/slw/q
Users are allowed query the heavyweight invocation chain data via this interface, with the default query port being 7799
POST localhost:7799/slw/q
{
"intent":"qParams",
"request":{
"traceid":"127.0.0.1_8080_1512528400374_94_10",
"spanid":"1.1",
"epinfo":"apache.http.AsyncClient",
"appid":"apphub"
}
}
Returned result
Below is the format of the result returned, wherein rs is the heavyweight invocation chain data and count is the total number of data
{
rs: "[{"traceid":"127.0.0.1_8080_1512528400374_94_1...values\\":{\\\\\\\\\\\\\\\"urls\\"}]",
count: "1"
}
Below is the format of the detailed content in rs
[
{
appgroup:"UAV"
appid:"apphub"
appuuid:"http://127.0.0.1:8080/apphub---apphub"
epinfo:"apache.http.AsyncClient"
rpc_req_body:"{"intent":"profile","request":{},"responseAsJsonString":"{}"}"
rpc_req_head:"{"param.http.head.span":"127.0.0.1_8080_1512528400374_94_10&1.1&1&","UAV-Client-Src":"http://127.0.0.1:8080/apphub"}{}"
rpc_rsp_body:"{"rs":"{\"UAV@jse://127.0.0.1/edu.umd.cs.findb....":{\\\\\\\"urls\"
rpc_rsp_head:"{"Content-length":"113376","Date":"Wed, 06 Dec 2017 02:46:40 GMT"}"
spanid:"1.1"
traceid:"127.0.0.1_8080_1512528400374_94_10"
}
]
http://ip:port/jta/q
Users are allowed to query the thread analysis data via this interface, with the default query port being 5566
1. Instance of Query for the Thread Analysis Data
POST localhost:5566/jta/q
{
"intent":"qDistinct",
"request":{"ipport":"127.0.0.1:8080"}
}
Returned result
Below is the format of the result returned, wherein rs is the thread analysis data and count is the total number of data
{
rs: "[{"threadcount":120,"time":"1512537011959","user":…ount":120,"time":"1512531600647","user":"admin"}]",
count: "3"
}
Below is the format of the detailed content in rs
[
{threadcount: 120, time: "1512537011959", user: "admin"}
{threadcount: 120, time: "1512536880350", user: "admin"}
{threadcount: 120, time: "1512531600647", user: "admin"}
]
2. Instance of Query for Thread Analysis Details
POST localhost:5566/jta/q
{
"intent":"qField",
"request":{
"stime":"1512537011959",
"etime":"1512537011959",
"ipport":"127.0.0.1:8080",
"from":"0",
"size":"5000",
"sort":
"percpu=DESC"
}
}
Returned result
Below is the format of the result returned, wherein rs is the detailed data of each thread analysis and count is the total number of data
{
rs: "[{"ipport":"127.0.0.1:8080","appgroup":"UNKNO…9a501b9000 nid=0x2309 waiting on condition\r\n"}]",
count: "120"
}
Below is the format of the detailed content in rs
[
{ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 6.699999809265137, pid: "", …}
{ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
{ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
{ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
{ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
{ipport: "127.0.0.1:8080", appgroup: "UNKNOWN", pname: "", percpu: 0, pid: "", …}
...
]
Below is the format of the content of each thread information
{
appgroup:"UNKNOWN"
info:""ContainerBackgroundProcessor[StandardEngine[Catalina]]" #53 daemon prio=5 os_prio=0 tid=0x00007f9a50705800 nid=0x256e waiting on condition [0x00007f99f8ad8000]
↵java.lang.Thread.State: TIMED_WAITING (sleeping)
↵at java.lang.Thread.sleep(Native Method)
↵at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1355)
↵at java.lang.Thread.run(Thread.java:745)
↵"
ipport:"127.0.0.1:8080"
percpu:6.699999809265137
permem:11
pid:""
pname:""
state:"TIMED_WAITING (sleeping)"
tid:"9582"
time:1512537011959
timeadd:"0:56.37"
user:"admin"
}
http://ip:port/hm/query
HM interface allows users to query the history monitoring data and nodeInfo. The default exposed query port is 8765. Below is a instance to query a specifized type of data.
Query nodeInfo data
The example below is to query process metrics.
POST localhost:8765/hm/query
{
"request": {
"opentsdb.query.json":"{
\"start\":1512544020000,
\"end\":1512544140000,
\"queries\":[{
\"aggregator\":\"sum\",
\"downsample\":\"1m-avg\",
\"metric\":\"procState.conn\",
\"tags\":{
\"instid\":\"127.0.0.0.1_org.elasticsearch.bootstrap.Elasticsearch_10508\"
}
}]
}",
"datastore.name": "MT_Monitor"
}
}
wherein “start” and “end” denote the starting time and the ending time , “queries” denote the query conditions, “metric” denotes the name of a performance metric and “tags” denote the query conditions of a specific process
Returned result
Below is the format of the data returned:
{
"rs": "[{
"metric":"procState.conn",
"tags":{
"pgid":"org.elasticsearch.bootstrap.Elasticsearch",
"instid":"127.0.0.1_org.elasticsearch.bootstrap.Elasticsearch_10508",
"ip":"127.0.0.1"
},
"aggregateTags":[],
"dps":{
"1512544020":14.0,
"1512544080":14.0,
"1512544140":14.0
}
}]"
}
wherein, “metric” denotes the name of a performance metric, “tags” denote the query conditions and “dps” denotes the history data returned
http://ip:port/hb/query
This interface allows users to query the cached nodeInfo. The default exposed query port is 8020. Below are instances to query specifized types of data.
1. Query the Heartbeat Data of All Containers
POST localhost:8020/hb/query
{
"intent":"node",
"request":{
}
}
Returned result
Below is the format of the data returned:
{
"rs": "{
"938300339801718784":"{
"clientTimestamp": 1512546163627,
"group": "",
"host": "DESKTOP-KDVH36F",
"id": "938300339801718784",
"info": {
"os.io.disk": "{"
E: ":{
"disk\_read":"0.00",
"total":"46079996",
"use":"18136596",
"useRate":"39%",
"free":"27943400",
"disk\_write":"0.00"
},
"D: ":{
"disk\_read":"0.00",
"total":"77163516",
"use":"14794732",
"useRate":"19%",
"free":"62368784",
"disk\_write":"0.00"
},
"C: ":{
"disk\_read":"0.00",
"total":"125576188",
"use":"53220416",
"useRate":"42%",
"free":"72355772",
"disk\_write":"0.00"
}
}",
"node.pid": "15412",
"node.hbserver": "127.0.0.1:8010",
"os.cpu.maxmem": "17058336768",
"os.arch": "amd64",
"node.services": "{
"nodeoperagent-NodeOperHttpServer-/node/ctrl":"http: //localhost: 10101/node/ctrl"}",
"node.state": "1",
"os.type": "Windows 10",
"os.java.vm": "Java HotSpot\(TM\) 64-Bit Server VM",
"node.feature": "{"hbclientagent":\["HeartBeatClientAgent"\],
"procscan":\["ProcDetectAgent"\],
"nodeoperagent":\["NodeOperAgent"\],
"threadanalysis":\["ThreadAnalysisAgent"\],
"collectclient":\["CollectDataAgent"\],
"logagent":\["LogAgent"\],
"procwatch":\["ProcWatchAgent"\],
"notifyagent":\["GlobalNotificationAgent"\],
"monitoragent":\["MonitorAgent"\]}",
"node.profile": "agent",
"os.mac": "F4:96:34:86:B9:EC",
"os.cpu.number": "8",
"os.java.ver": "1.8.0\_131",
"node.tags": "Elasticsearch, UAV.AppHub, Monitor Agent, jar, BrokerStartup, NamesrvStartup, Health Manager,",
"os.cpu.load": "9",
"node.version": "1.0",
"node.procs": "{......}",
"os.java.home": "D:\java\jdk1.8.0\_131\jre",
"os.conn.cur": "-1",
"os.cpu.freemem": "8731549696",
"node.root": "D:\GITStoreXinJian\ce-datamonitorsystem\com.creditease.uav.agent.buildComponent\target\build",
"os.cpu.avgload": "-100"
},
"ip": "localhost",
"name": "Monitor Agent",
"serverTimestamp": 1512546163630
}",
"938300359816974336":"{.....}"
}"
}
Below is the content of node.procs:
"{"12464":{
"name":"java","pid":"12464","ports":\[\],
"tags":{
"main":"com.creditease.mscp.boot.MSCPBoot",
"jargs":"-agentlib: jdwp=transport=dt\_socket,suspend=y,
address=localhost: 55338-javaagent:
D: \GITStoreXinJian\ce-datamonitorsystem\com.creditease.uav.monitorframework.buildComponent\target\build\com.creditease.uav.agent\com.creditease.uav.monitorframework.agent-1.0-agent.jar-Dfile.encoding=UTF-8",
"jflags":"",
"watch":"false",
"conn\_8765":"0",
"conn":"3",
"memRate":"7.88",
"mem":"1312536",
"conn\_10102":"0",
"conn\_55639":"1",
"cpu":"22.78"
,"conn\_8020":"0",
"conn\_8010":"2",
"conn\_8011":"0",
"conn\_9000":"0",
"conn\_5566":"0",
"disk\_read":"0.27","disk\_write":"55.96"
}
},
"15412":{
"name":"java","pid":"15412","ports":\[\],
"tags":{
"main":"com.creditease.mscp.boot.MSCPBoot",
"jargs":"-agentlib: jdwp=transport=dt\_socket,suspend=y,
address=localhost: 55182-javaagent:
D: \GITStoreXinJian\ce-datamonitorsystem\com.creditease.uav.monitorframework.buildComponent\target\build\com.creditease.uav.agent\com.creditease.uav.monitorframework.agent-1.0-agent.jar-Dfile.encoding=UTF-8",
"jflags":"",
"watch":"false",
"conn":"1",
"memRate":"1.68",
"mem":"280076",
"conn\_10101":"0",
"cpu":"11.39",
"conn\_55263":"1",
"disk\_read":"20.36",
"disk\_write":"33.41"
}
},
"16292":{.......},
"4484":{.......},
"17272":{......},
"10508":{......}
}"
2. Query the Heartbeat Data of Containers with a Specifized IP
POST localhost:8020/hb/query
{
"intent":"node",
"request":{
"fkey":"ip",
"fvalue":"127.0.0.1"
}
}
The structure of the data returned is identical with that when the heartbeat data of all containers is queried. But the result only includes the heatbeat data of the container with the specifized IP.
3. Query the Heartbeat Data of Containers in a Specifized Group
Take UAV as an example (separate the names of multiple groups with comma)
POST localhost:8020/hb/query
{
"intent":"node",
"request":{
"fkey":"group",
"fvalue":"UAV"
}
}
The structure of the data returned is identical with that when the heartbeat data of all containers is queried. But the result only includes the heatbeat data of the container in the specifized group.
4. Query the Heartbeat Data of the Registered Server in a Container
Take nodeoperagent-NodeOperHttpServer-/node/ctrl as an example
POST localhost:8020/hb/query
{
"intent":"services",
"request":{
"service":"nodeoperagent-NodeOperHttpServer-/node/ctrl"
}
}
Below is the format of the data returned:
{
"rs":"[\"http://127.0.0.1/node/ctrl\"]"
}